You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
1.8 KiB
82 lines
1.8 KiB
#!/bin/bash
|
|
|
|
# This script runs tests for the Go toolchain on target devices.
|
|
# It can be used for both ChromeOS and Android targets.
|
|
#
|
|
# Many of the test drivers that come from upstream do not support
|
|
# cross-compiling and running the tests remotely. The patches in
|
|
# the ./patch/ directory must be applied to the upstream sources
|
|
# to add this support.
|
|
#
|
|
# Usage: test_go [-v] [-vv] [-full] <target>...
|
|
# -v: enable verbose test output from compiler tests.
|
|
# -v: enable verbose test output from standard library tests.
|
|
# -full: run all standard library tests (without the -short flag).
|
|
|
|
verbose_run_test=""
|
|
verbose_go_test=""
|
|
testflags="-short"
|
|
while [[ "$1" == -* ]]
|
|
do
|
|
case "$1" in
|
|
-v) verbose_run_test="-v" ;;
|
|
-vv) verbose_go_test="-v" ;;
|
|
-full) testflags="-timeout=2h" ;;
|
|
*) echo "unrecognized flag: $1" ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
go_local build -o runtest test/run.go
|
|
runtest="${PWD}/runtest"
|
|
|
|
function run_test()
|
|
{
|
|
GOOS="$(go_${target} env GOOS)" GOARCH="$(go_${target} env GOARCH)" ${runtest} -n=1 ${verbose_run_test} -show_skips -summary -target="${target}" "$@"
|
|
}
|
|
|
|
function go_test()
|
|
{
|
|
go_${target} test -p=1 ${verbose_go_test} -exec="go_${target}_exec" ${testflags} "$@"
|
|
}
|
|
|
|
function go_test_target()
|
|
{
|
|
go_local test -p=1 ${verbose_go_test} ${testflags} "$@" -target="${target}"
|
|
}
|
|
|
|
for target in "$@"
|
|
do
|
|
echo
|
|
echo "## ${target}"
|
|
push_goroot ${target}
|
|
|
|
echo
|
|
echo "# test"
|
|
(cd test && run_test)
|
|
|
|
echo
|
|
echo "# std"
|
|
go_test std
|
|
|
|
echo
|
|
echo "# GOMAXPROCS=2 -cpu=1,2,4 runtime"
|
|
GOMAXPROCS=2 go_test -cpu=1,2,4 runtime
|
|
|
|
echo
|
|
echo "# -cpu=10 sync"
|
|
go_test -cpu=10 sync
|
|
|
|
echo
|
|
echo "# runtime crypto/x509 -target=${target}"
|
|
go_test_target runtime crypto/x509
|
|
|
|
echo
|
|
echo "# misc/cgo/{stdio,life}"
|
|
run_test misc/cgo/{stdio,life}
|
|
|
|
echo
|
|
echo "# misc/cgo/{test,testtls,nocgo}"
|
|
GOTRACEBACK=2 go_test ./misc/cgo/{test,testtls,nocgo}
|
|
done
|