Rewrite TestRunNetHost to compare namespaces

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
This commit is contained in:
Alexander Morozov 2014-12-29 12:56:07 -08:00
parent 74ee405a27
commit e98c08a88f
1 changed files with 20 additions and 6 deletions

View File

@ -2708,18 +2708,32 @@ func TestRunNonLocalMacAddress(t *testing.T) {
func TestRunNetHost(t *testing.T) {
defer deleteAllContainers()
iplinkHost, err := exec.Command("ip", "link", "list").CombinedOutput()
hostNet, err := os.Readlink("/proc/1/ns/net")
if err != nil {
t.Fatal(err)
}
iplinkCont, err := exec.Command(dockerBinary, "run", "--net=host", "busybox", "ip", "link", "list").CombinedOutput()
cmd := exec.Command(dockerBinary, "run", "--net=host", "busybox", "readlink", "/proc/self/ns/net")
out2, _, err := runCommandWithOutput(cmd)
if err != nil {
t.Fatal(err)
t.Fatal(err, out2)
}
if !bytes.Equal(iplinkHost, iplinkCont) {
t.Fatalf("Container network:\n%s\nis not equal to host network:\n%s", iplinkCont, iplinkHost)
out2 = strings.Trim(out2, "\n")
if hostNet != out2 {
t.Fatalf("Net namespace different with --net=host %s != %s\n", hostNet, out2)
}
logDone("run - host network")
cmd = exec.Command(dockerBinary, "run", "busybox", "readlink", "/proc/self/ns/net")
out2, _, err = runCommandWithOutput(cmd)
if err != nil {
t.Fatal(err, out2)
}
out2 = strings.Trim(out2, "\n")
if hostNet == out2 {
t.Fatalf("Net namespace should be different without --net=host %s == %s\n", hostNet, out2)
}
logDone("run - net host mode")
}