diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2016-07-22 18:15:38 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2016-07-22 18:15:38 +0000 |
commit | 22b955cca564a9a3a5b8c9d9dd1e295b7943c128 (patch) | |
tree | abdbd898676e1f853fca2d7e031d105d7ebcf676 /libgo/go/testing/example.go | |
parent | 9d04a3af4c6491536badf6bde9707c907e4d196b (diff) | |
download | gcc-22b955cca564a9a3a5b8c9d9dd1e295b7943c128.zip gcc-22b955cca564a9a3a5b8c9d9dd1e295b7943c128.tar.gz gcc-22b955cca564a9a3a5b8c9d9dd1e295b7943c128.tar.bz2 |
libgo: update to go1.7rc3
Reviewed-on: https://go-review.googlesource.com/25150
From-SVN: r238662
Diffstat (limited to 'libgo/go/testing/example.go')
-rw-r--r-- | libgo/go/testing/example.go | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/libgo/go/testing/example.go b/libgo/go/testing/example.go index 30baf27..fd8343f 100644 --- a/libgo/go/testing/example.go +++ b/libgo/go/testing/example.go @@ -9,14 +9,16 @@ import ( "fmt" "io" "os" + "sort" "strings" "time" ) type InternalExample struct { - Name string - F func() - Output string + Name string + F func() + Output string + Unordered bool } func RunExamples(matchString func(pat, str string) (bool, error), examples []InternalExample) (ok bool) { @@ -41,6 +43,12 @@ func RunExamples(matchString func(pat, str string) (bool, error), examples []Int return } +func sortLines(output string) string { + lines := strings.Split(output, "\n") + sort.Strings(lines) + return strings.Join(lines, "\n") +} + func runExample(eg InternalExample) (ok bool) { if *chatty { fmt.Printf("=== RUN %s\n", eg.Name) @@ -80,8 +88,16 @@ func runExample(eg InternalExample) (ok bool) { var fail string err := recover() - if g, e := strings.TrimSpace(out), strings.TrimSpace(eg.Output); g != e && err == nil { - fail = fmt.Sprintf("got:\n%s\nwant:\n%s\n", g, e) + got := strings.TrimSpace(out) + want := strings.TrimSpace(eg.Output) + if eg.Unordered { + if sortLines(got) != sortLines(want) && err == nil { + fail = fmt.Sprintf("got:\n%s\nwant (unordered):\n%s\n", out, eg.Output) + } + } else { + if got != want && err == nil { + fail = fmt.Sprintf("got:\n%s\nwant:\n%s\n", got, want) + } } if fail != "" || err != nil { fmt.Printf("--- FAIL: %s (%s)\n%s", eg.Name, dstr, fail) |