]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: Show arch/os when something in TestAssembly fails
authorKirill Smelkov <kirr@nexedi.com>
Mon, 13 Feb 2017 19:28:26 +0000 (22:28 +0300)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 13 Feb 2017 20:30:31 +0000 (20:30 +0000)
It is not always obvious from the first glance when looking at
TestAssembly failure in which context the code was generated. For
example x86 and x86-64 are similar, and those of us who do not work with
assembly every day can even take s390x version as something similar to x86.

So when something fails lets print the whole test context - this
includes os and arch which were previously missing. An example failure:

before:

--- FAIL: TestAssembly (40.48s)
        asm_test.go:46: expected:       MOVWZ   \(.*\),
                go:
                import "encoding/binary"
                func f(b []byte) uint32 {
                        return binary.LittleEndian.Uint32(b)
                }

                asm:"".f t=1 size=160 args=0x20 locals=0x0
...

after:

--- FAIL: TestAssembly (40.43s)
        asm_test.go:46: linux/s390x: expected:  MOVWZ   \(.*\),
                go:
                import "encoding/binary"
                func f(b []byte) uint32 {
                        return binary.LittleEndian.Uint32(b)
                }

                asm:"".f t=1 size=160 args=0x20 locals=0x0

Motivated-by: #18946#issuecomment-279491071
Change-Id: I61089ceec05da7a165718a7d69dec4227dd0e993
Reviewed-on: https://go-review.googlesource.com/36881
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/compile/internal/gc/asm_test.go

index c9b2e2f8b4be815400abcc7e13b869f1777615b1..44e715ffa39bcdcc20eceb90b3a4920b321a5e03 100644 (file)
@@ -43,7 +43,7 @@ func TestAssembly(t *testing.T) {
                }
                for _, r := range test.regexps {
                        if b, err := regexp.MatchString(r, asm); !b || err != nil {
-                               t.Errorf("expected:%s\ngo:%s\nasm:%s\n", r, test.function, asm)
+                               t.Errorf("%s/%s: expected:%s\ngo:%s\nasm:%s\n", test.os, test.arch, r, test.function, asm)
                        }
                }
        }