#!/bin/rc -e # Copyright 2012 The Go Authors. All rights reserved. # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. rfork e eval `{go env} GOPATH = () # we disallow local import for non-local packages, if $GOROOT happens # to be under $GOPATH, then some tests below will fail # allow all.rc to avoid double-build of everything rebuild = true if(~ $1 --no-rebuild) shift if not { # Run only one process at a time on 9vx. if(~ $sysname vx32) pflag = (-p 1) echo '# Building packages and commands.' time go install -a -v $pflag std cmd echo } # we must unset GOROOT_FINAL before tests, because runtime/debug requires # correct access to source code, so if we have GOROOT_FINAL in effect, # at least runtime/debug test will fail. GOROOT_FINAL = () echo '# Testing packages.' time go test std cmd -short -timeout 240s echo # Temporary GCE builder hack until Plan 9 on GCE is fast enough. # See https://golang.org/issue/9491 if(~ $GOTESTONLY std) { echo echo PARTIAL TESTS PASSED: std exit } # We set GOMAXPROCS=2 in addition to -cpu=1,2,4 in order to test runtime bootstrap code, # creation of first goroutines and first garbage collections in the parallel setting. # TODO(bradfitz,0intro): make this not be 15 minutes once Plan 9 runs quickly on GCE. # Linux does 63 seconds on GCE, but Plan 9 was failing with 8 minutes. # See issue 8393 and 9491. # TODO(bradfitz,0intro): remove -v once we see some a successful build. echo '# GOMAXPROCS=2 runtime -cpu=1,2,4' GOMAXPROCS=2 go test runtime -v -short -timeout 15m -cpu 1,2,4 echo echo '# sync -cpu=10' go test sync -short -timeout 120s -cpu 10 echo fn xcd { echo echo '#' $1 cd $"GOROOT/src/$1 } echo echo '#' ../test/bench/go1 go test ../test/bench/go1 @{ xcd ../test GOMAXPROCS='' time go run run.go -v } echo echo ALL TESTS PASSED