From cb986def671cd244e4682a476cff51c4cff2d8f8 Mon Sep 17 00:00:00 2001 From: Quentin Smith Date: Wed, 5 Oct 2016 14:37:25 -0400 Subject: [PATCH] syscall: relax TestUnshare Fixes #17224. Some systems have more than just "lo" in a fresh network namespace, due to IPv6. Instead of testing for exactly 3 lines of output (implying 1 interface), just test to make sure that the unshare call resulted in fewer interfaces than before. This should still verify that unshare did something. Change-Id: Iaf84c2b0e673fc207059d62e2f4dd7583a753419 Reviewed-on: https://go-review.googlesource.com/30372 Reviewed-by: Brad Fitzpatrick Reviewed-by: Jessica Frazelle Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/syscall/exec_linux_test.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/syscall/exec_linux_test.go b/src/syscall/exec_linux_test.go index aaffa067bc..7a4b571760 100644 --- a/src/syscall/exec_linux_test.go +++ b/src/syscall/exec_linux_test.go @@ -162,6 +162,12 @@ func TestUnshare(t *testing.T) { t.Fatal(err) } + orig, err := ioutil.ReadFile(path) + if err != nil { + t.Fatal(err) + } + origLines := strings.Split(strings.TrimSpace(string(orig)), "\n") + cmd := exec.Command("cat", path) cmd.SysProcAttr = &syscall.SysProcAttr{ Unshareflags: syscall.CLONE_NEWNET, @@ -178,8 +184,8 @@ func TestUnshare(t *testing.T) { } lines := strings.Split(sout, "\n") - if len(lines) != 3 { - t.Fatalf("Expected 3 lines of output, got %d", len(lines)) + if len(lines) >= len(origLines) { + t.Fatalf("Got %d lines of output, want <%d", len(lines), len(origLines)) } } -- 2.48.1