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.

Reply via email to