On Thu, Jan 18, 2018 at 12:02 AM, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote: > >> On Thu, Jan 11, 2018 at 1:46 AM, Rainer Orth >> <r...@cebitec.uni-bielefeld.de> wrote: >>> >>>> On Wed, Jan 10, 2018 at 5:42 AM, Ian Lance Taylor <i...@golang.org> wrote: >>>>> >>>>> Whoops, there's a bug on big-endian 32-bit systems. I'm testing >>>>> https://golang.org/cl/87135. >>>> >>>> Committed as follows. >>> >>> thanks, that fixed quite a lot of the failures. >>> >>> However, many others remain, too many to report here. I've filed PR >>> go/83787 to capture those. >> >> Thanks. I found the problem: there is a new function makechan that >> takes a size argument of type int, and the old makechan, that took >> int64, is now makechan64. Since the size argument was the last one, >> this worked fine except on 32-bit big-endian systems. Fixed with this >> patch. Bootstrapped and tested on x86_64-pc-linux-gnu and >> sparc-sun-solaris2.12. Committed to mainline. > > great, thanks for fixing this. > > One related question: I mentioned in passing in the PR that four go test > invocations in gotools would hang indefinitely. I noticed that they > weren't called with -test.timeout, unlike libgo's gotest. However, in > exceptional cases like this this probably can't be helped short of > adding an external timeout mechanism.
Thanks, I missed that. This patch adds -test.timeout arguments to at least set a timeout where possible. I used the same 240s value used by libgo by default. Bootstrapped and ran gotools testsuite on x86_64-pc-linux-gnu. Committed to mainline. Ian 2018-01-18 Ian Lance Taylor <i...@golang.org> * Makefile.am (GOTOOLS_TEST_TIMEOUT): Define. (check-go-tool): Pass -test.timeout with GOTOOLS_TEST_TIMEOUT. (check-cgo-test, check-carchive-test, check-vet): Likewise. * Makefile.in: Rebuild.
Index: Makefile.am =================================================================== --- Makefile.am (revision 256398) +++ Makefile.am (working copy) @@ -161,6 +161,9 @@ uninstall-local: GOTESTFLAGS = +# Number of seconds before tests time out. +GOTOOLS_TEST_TIMEOUT = 240 + # Run tests using the go tool, and frob the output to look like that # generated by DejaGNU. The main output of this is two files: # gotools.sum and gotools.log. @@ -234,11 +237,11 @@ check-go-tool: go$(EXEEXT) $(noinst_PROG cp $(libgodir)/objabi.go check-go-dir/src/cmd/internal/objabi/ @abs_libgodir=`cd $(libgodir) && $(PWD_COMMAND)`; \ abs_checkdir=`cd check-go-dir && $(PWD_COMMAND)`; \ - echo "cd check-go-dir/src/cmd/go && $(ECHO_ENV) GOPATH=$${abs_checkdir} $(abs_builddir)/go$(EXEEXT) test -test.short -test.v" > cmd_go-testlog + echo "cd check-go-dir/src/cmd/go && $(ECHO_ENV) GOPATH=$${abs_checkdir} $(abs_builddir)/go$(EXEEXT) test -test.short -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > cmd_go-testlog $(CHECK_ENV) \ GOPATH=`cd check-go-dir && $(PWD_COMMAND)`; \ export GOPATH; \ - (cd check-go-dir/src/cmd/go && $(abs_builddir)/go$(EXEEXT) test -test.short -test.v) >> cmd_go-testlog 2>&1 || echo "--- $${fl}: go test cmd/go (0.00s)" >> cmd_go-testlog + (cd check-go-dir/src/cmd/go && $(abs_builddir)/go$(EXEEXT) test -test.short -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v) >> cmd_go-testlog 2>&1 || echo "--- $${fl}: go test cmd/go (0.00s)" >> cmd_go-testlog grep '^--- ' cmd_go-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2 # check-runtime runs `go test runtime` in our environment. @@ -269,11 +272,11 @@ check-cgo-test: go$(EXEEXT) $(noinst_PRO $(MKDIR_P) cgo-test-dir/misc/cgo cp -r $(libgomiscdir)/cgo/test cgo-test-dir/misc/cgo/ @abs_libgodir=`cd $(libgodir) && $(PWD_COMMAND)`; \ - echo "cd cgo-test-dir/misc/cgo/test && $(ECHO_ENV) GOTRACEBACK=2 $(abs_builddir)/go$(EXEEXT) test -test.short -test.v" > cgo-testlog + echo "cd cgo-test-dir/misc/cgo/test && $(ECHO_ENV) GOTRACEBACK=2 $(abs_builddir)/go$(EXEEXT) test -test.short -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > cgo-testlog $(CHECK_ENV) \ GOTRACEBACK=2; \ export GOTRACEBACK; \ - (cd cgo-test-dir/misc/cgo/test && $(abs_builddir)/go$(EXEEXT) test -test.short -test.v) >> cgo-testlog 2>&1 || echo "--- $${fl}: go test misc/cgo/test (0.00s)" >> cgo-testlog + (cd cgo-test-dir/misc/cgo/test && $(abs_builddir)/go$(EXEEXT) test -test.short -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v) >> cgo-testlog 2>&1 || echo "--- $${fl}: go test misc/cgo/test (0.00s)" >> cgo-testlog grep '^--- ' cgo-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2 # check-carchive-test runs `go test misc/cgo/testcarchive/carchive_test.go` @@ -283,11 +286,11 @@ check-carchive-test: go$(EXEEXT) $(noins $(MKDIR_P) carchive-test-dir/misc/cgo cp -r $(libgomiscdir)/cgo/testcarchive carchive-test-dir/misc/cgo/ @abs_libgodir=`cd $(libgodir) && $(PWD_COMMAND)`; \ - echo "cd carchive-test-dir/misc/cgo/testcarchive && $(ECHO_ENV) LIBRARY_PATH=`echo $${abs_libgodir}/.libs` $(abs_builddir)/go$(EXEEXT) test -test.v carchive_test.go" > carchive-testlog + echo "cd carchive-test-dir/misc/cgo/testcarchive && $(ECHO_ENV) LIBRARY_PATH=`echo $${abs_libgodir}/.libs` $(abs_builddir)/go$(EXEEXT) test -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v carchive_test.go" > carchive-testlog $(CHECK_ENV) \ LIBRARY_PATH=`echo $${abs_libgodir}/.libs:$${LIBRARY_PATH} | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; \ export LIBRARY_PATH; \ - (cd carchive-test-dir/misc/cgo/testcarchive && $(abs_builddir)/go$(EXEEXT) test -test.v carchive_test.go) >> carchive-testlog 2>&1 || echo "--- $${fl}: go test misc/cgo/testcarchive (0.00s)" >> carchive-testlog + (cd carchive-test-dir/misc/cgo/testcarchive && $(abs_builddir)/go$(EXEEXT) test -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v carchive_test.go) >> carchive-testlog 2>&1 || echo "--- $${fl}: go test misc/cgo/testcarchive (0.00s)" >> carchive-testlog grep '^--- ' carchive-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2 # check-vet runs `go test cmd/vet` in our environment. @@ -297,11 +300,11 @@ check-vet: go$(EXEEXT) $(noinst_PROGRAMS cp -r $(cmdsrcdir)/vet check-vet-dir/src/cmd/ @abs_libgodir=`cd $(libgodir) && $(PWD_COMMAND)`; \ abs_checkdir=`cd check-vet-dir && $(PWD_COMMAND)`; \ - echo "cd check-vet-dir/src/cmd/vet && $(ECHO_ENV) GOPATH=$${abs_checkdir} $(abs_builddir)/go$(EXEEXT) test -test.short -test.v" > cmd_vet-testlog + echo "cd check-vet-dir/src/cmd/vet && $(ECHO_ENV) GOPATH=$${abs_checkdir} $(abs_builddir)/go$(EXEEXT) test -test.short -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > cmd_vet-testlog $(CHECK_ENV) \ GOPATH=`cd check-vet-dir && $(PWD_COMMAND)`; \ export GOPATH; \ - (cd check-vet-dir/src/cmd/vet && $(abs_builddir)/go$(EXEEXT) test -test.short -test.v) >> cmd_vet-testlog 2>&1 || echo "--- $${fl}: go test cmd/vet (0.00s)" >> cmd_vet-testlog + (cd check-vet-dir/src/cmd/vet && $(abs_builddir)/go$(EXEEXT) test -test.short -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v) >> cmd_vet-testlog 2>&1 || echo "--- $${fl}: go test cmd/vet (0.00s)" >> cmd_vet-testlog grep '^--- ' cmd_vet-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2 # The check targets runs the tests and assembles the output files.