On Thu, Jan 18, 2018 at 12:02 AM, Rainer Orth
<[email protected]> wrote:
>
>> On Thu, Jan 11, 2018 at 1:46 AM, Rainer Orth
>> <[email protected]> wrote:
>>>
>>>> On Wed, Jan 10, 2018 at 5:42 AM, Ian Lance Taylor <[email protected]> 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 <[email protected]>
* 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.