82 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/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
 |