]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/trace: skip GoroutineInSyscall in case time order err
authorHana Kim <hakim@google.com>
Mon, 9 Apr 2018 14:31:10 +0000 (10:31 -0400)
committerHyang-Ah Hana Kim <hyangah@gmail.com>
Tue, 10 Apr 2018 17:09:30 +0000 (17:09 +0000)
All tests involving trace collection and parsing
still need handling of failures caused by #16755
(Timestamp issue)

Fixes #24738

Change-Id: I6cd0f9c6f49854a22fad6fce1a00964c168aa614
Reviewed-on: https://go-review.googlesource.com/105821
Reviewed-by: Peter Weinberger <pjw@google.com>
src/cmd/trace/trace_unix_test.go

index 19a8af0d4db520211dddcabcbca9fe6cffff2514..fec060e121aef8f936299a1ac025ecd047f48db5 100644 (file)
@@ -8,10 +8,10 @@ package main
 
 import (
        "bytes"
-       "internal/trace"
+       traceparser "internal/trace"
        "io/ioutil"
        "runtime"
-       rtrace "runtime/trace"
+       "runtime/trace"
        "sync"
        "syscall"
        "testing"
@@ -68,13 +68,15 @@ func TestGoroutineInSyscall(t *testing.T) {
 
        // Collect and parse trace.
        buf := new(bytes.Buffer)
-       if err := rtrace.Start(buf); err != nil {
+       if err := trace.Start(buf); err != nil {
                t.Fatalf("failed to start tracing: %v", err)
        }
-       rtrace.Stop()
+       trace.Stop()
 
-       res, err := trace.Parse(buf, "")
-       if err != nil {
+       res, err := traceparser.Parse(buf, "")
+       if err == traceparser.ErrTimeOrder {
+               t.Skipf("skipping due to golang.org/issue/16755 (timestamps are unreliable): %v", err)
+       } else if err != nil {
                t.Fatalf("failed to parse trace: %v", err)
        }