[pkg-go] Bug#860646: Failure analysis

Apollon Oikonomopoulos apoikos at debian.org
Tue May 2 10:55:22 UTC 2017


Hi,

The build failure is due to panicking_test producing different output on i386
than what is expected by the golden file. The difference is that all
occurrences of `runtime.call32' in the golden file are replaced by
`runtime.call16' in the actual output.

--- stretch/build/golang-github-jacobsa-ogletest-0.0~git20150610/obj-i686-linux-gnu/src/github.com/jacobsa/ogletest/test_cases/golden.panicking_test	2017-05-02 13:37:31.490452706 +0300
+++ golang-github-jacobsa-ogletest-0.0~git20150610/test_cases/golden.panicking_test	2017-05-02 13:18:21.000000000 +0300
@@ -6,7 +6,7 @@
 
 github.com/jacobsa/ogletest/somepkg_test.(*PanickingTest).ExplicitPanic
 	some_file.txt:0
-runtime.call16
+runtime.call32
 	some_file.txt:0
 reflect.Value.call
 	some_file.txt:0
@@ -24,7 +24,7 @@
 	some_file.txt:0
 github.com/jacobsa/ogletest/somepkg_test.(*PanickingTest).ExplicitPanicInHelperFunction
 	some_file.txt:0
-runtime.call16
+runtime.call32
 	some_file.txt:0
 reflect.Value.call
 	some_file.txt:0
@@ -40,7 +40,7 @@
 
 github.com/jacobsa/ogletest/somepkg_test.(*PanickingTest).NilPointerDerefence
 	some_file.txt:0
-runtime.call16
+runtime.call32
 	some_file.txt:0
 reflect.Value.call
 	some_file.txt:0

This is consistent with go's implementations of `reflectcall' for i386[1] and
amd64[2] respectively.

[1] https://golang.org/src/runtime/asm_386.s#L450
[2] https://golang.org/src/runtime/asm_amd64.s#L446

All in all, everything works as expected. Since part of the test output is
architecture-dependent, upstream's test suite should take that into account.
For the time being we could either disable this test completely on non-amd64
architectures, or patch integration_test.go to mangle all `runtime.call[0-9]+'
tokens before comparing output and expected streams.

Regards,
Apollon



More information about the Pkg-go-maintainers mailing list