From 6e111956ab4849976f9dcf46ecac575fa8105268 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Fri, 8 Nov 2019 09:25:51 +0100 Subject: [PATCH] syscall: skip TestSyscallNoError on mips{,le} On MIPS, Linux returns whether the syscall had an error in a separate register (R7), not using a negative return value as on other architectures. Thus, skip TestSyscallNoError as there is no error case for syscall.RawSyscall which it could test against. Also reformat the error output so the expected and gotten values are aligned so they're easier to compare. Fixes #35422 Change-Id: Ibc88f7c5382bb7ee8faf15ad4589ca1f9f017a06 Reviewed-on: https://go-review.googlesource.com/c/go/+/205898 Run-TryBot: Tobias Klauser Reviewed-by: Ian Lance Taylor Reviewed-by: Cherry Zhang --- src/syscall/syscall_linux_test.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/syscall/syscall_linux_test.go b/src/syscall/syscall_linux_test.go index 8a578639bd..e30a10b870 100644 --- a/src/syscall/syscall_linux_test.go +++ b/src/syscall/syscall_linux_test.go @@ -299,6 +299,14 @@ func TestSyscallNoError(t *testing.T) { t.Skip("skipping on non-32bit architecture") } + // See https://golang.org/issue/35422 + // On MIPS, Linux returns whether the syscall had an error in a separate + // register (R7), not using a negative return value as on other + // architectures. + if runtime.GOARCH == "mips" || runtime.GOARCH == "mipsle" { + t.Skipf("skipping on %s", runtime.GOARCH) + } + if os.Getuid() != 0 { t.Skip("skipping root only test") } @@ -363,7 +371,8 @@ func TestSyscallNoError(t *testing.T) { if filesystemIsNoSUID(tmpBinary) { t.Skip("skipping test when temp dir is mounted nosuid") } - t.Errorf("expected %s, got %s", want, got) + // formatted so the values are aligned for easier comparison + t.Errorf("expected %s,\ngot %s", want, got) } } -- 2.48.1