Commit d8a6ecc6 authored by Pavel Emelyanov's avatar Pavel Emelyanov

zdtm: Netns basic test

Only checks for lo, one simple ifaddr and two routes are handled. Sanity
test and nothing more.
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent a6439860
...@@ -51,6 +51,7 @@ TST_NOFILE = \ ...@@ -51,6 +51,7 @@ TST_NOFILE = \
pty00 \ pty00 \
tty00 \ tty00 \
mountpoints \ mountpoints \
netns \
session01 \ session01 \
# jobctl00 \ # jobctl00 \
......
#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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment