mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-30 22:05:36 +00:00
zdtm: Netns basic test
Only checks for lo, one simple ifaddr and two routes are handled. Sanity test and nothing more. Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
@@ -51,6 +51,7 @@ TST_NOFILE = \
|
|||||||
pty00 \
|
pty00 \
|
||||||
tty00 \
|
tty00 \
|
||||||
mountpoints \
|
mountpoints \
|
||||||
|
netns \
|
||||||
session01 \
|
session01 \
|
||||||
# jobctl00 \
|
# jobctl00 \
|
||||||
|
|
||||||
|
61
test/zdtm/live/static/netns.c
Normal file
61
test/zdtm/live/static/netns.c
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "zdtmtst.h"
|
||||||
|
|
||||||
|
const char *test_doc = "Check that network environment (links, addresses and routes) are preserved";
|
||||||
|
const char *test_author = "Pavel Emelianov <xemul@parallels.com>";
|
||||||
|
|
||||||
|
static int test_fn(int argc, char **argv)
|
||||||
|
{
|
||||||
|
if (system("ip link set lo up")) {
|
||||||
|
fail("Can't set lo up");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (system("ip addr add 1.2.3.4 dev lo")) {
|
||||||
|
fail("Can't add addr on lo");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (system("ip route add 1.2.3.5 dev lo")) {
|
||||||
|
fail("Can't add route via lo");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (system("ip route add 1.2.3.6 via 1.2.3.5")) {
|
||||||
|
fail("Can't add route via lo (2)");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (system("ip link > ip.dump && ip addr >> ip.dump && ip route >> ip.dump")) {
|
||||||
|
fail("Can't save net config");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
test_daemon();
|
||||||
|
test_waitsig();
|
||||||
|
|
||||||
|
if (system("ip link > ip.rst && ip addr >> ip.rst && ip route >> ip.rst")) {
|
||||||
|
fail("Can't get net config");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (system("diff ip.rst ip.dump")) {
|
||||||
|
fail("Net config differs after restore");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
pass();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define CLONE_NEWNET 0x40000000
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
test_init_ns(argc, argv, CLONE_NEWNET, test_fn);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Reference in New Issue
Block a user