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) { func TestRunNetHost(t *testing.T) {
defer deleteAllContainers() defer deleteAllContainers()
iplinkHost, err := exec.Command("ip", "link", "list").CombinedOutput() hostNet, err := os.Readlink("/proc/1/ns/net")
if err != nil { if err != nil {
t.Fatal(err) 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 { if err != nil {
t.Fatal(err) t.Fatal(err, out2)
} }
if !bytes.Equal(iplinkHost, iplinkCont) { out2 = strings.Trim(out2, "\n")
t.Fatalf("Container network:\n%s\nis not equal to host network:\n%s", iplinkCont, iplinkHost) 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")
} }