From: Brad Fitzpatrick Date: Fri, 8 Nov 2019 19:18:17 +0000 (+0000) Subject: net/http: relax TestLinuxSendfile, trace all system calls, match n64:sendfile X-Git-Tag: go1.14beta1~293 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7a5e0fec099f19ae095609b08eb090b2e07998b5;p=gostls13.git net/http: relax TestLinuxSendfile, trace all system calls, match n64:sendfile Fixes #35423 Change-Id: Idb254d6a2c4b147d20e290411e4380df5cdcb306 Reviewed-on: https://go-review.googlesource.com/c/go/+/206178 Run-TryBot: Brad Fitzpatrick Reviewed-by: Ian Lance Taylor --- diff --git a/src/net/http/fs_test.go b/src/net/http/fs_test.go index 047bb04ad8..435e34be3a 100644 --- a/src/net/http/fs_test.go +++ b/src/net/http/fs_test.go @@ -1122,21 +1122,13 @@ func TestLinuxSendfile(t *testing.T) { } defer ln.Close() - syscalls := "sendfile,sendfile64" - switch runtime.GOARCH { - case "mips64", "mips64le", "s390x": - // strace on the above platforms doesn't support sendfile64 - // and will error out if we specify that with `-e trace='. - syscalls = "sendfile" - } - // Attempt to run strace, and skip on failure - this test requires SYS_PTRACE. - if err := exec.Command("strace", "-f", "-q", "-e", "trace="+syscalls, os.Args[0], "-test.run=^$").Run(); err != nil { + if err := exec.Command("strace", "-f", "-q", os.Args[0], "-test.run=^$").Run(); err != nil { t.Skipf("skipping; failed to run strace: %v", err) } var buf bytes.Buffer - child := exec.Command("strace", "-f", "-q", "-e", "trace="+syscalls, os.Args[0], "-test.run=TestLinuxSendfileChild") + child := exec.Command("strace", "-f", "-q", os.Args[0], "-test.run=TestLinuxSendfileChild") child.ExtraFiles = append(child.ExtraFiles, lnf) child.Env = append([]string{"GO_WANT_HELPER_PROCESS=1"}, os.Environ()...) child.Stdout = &buf @@ -1159,7 +1151,7 @@ func TestLinuxSendfile(t *testing.T) { Post(fmt.Sprintf("http://%s/quit", ln.Addr()), "", nil) child.Wait() - rx := regexp.MustCompile(`sendfile(64)?\(`) + rx := regexp.MustCompile(`\b(n64:)?sendfile(64)?\(`) out := buf.String() if !rx.MatchString(out) { t.Errorf("no sendfile system call found in:\n%s", out)