summaryrefslogtreecommitdiff
path: root/src/run.bash
blob: 2741637a80ccffa1095794e0f8accc0d1f8bed9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#!/usr/bin/env bash
# Copyright 2009 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.

set -e
if [ "$1" = "--no-env" ]; then
	# caller has already run env.bash
	shift
else
	. ./env.bash
fi

unset MAKEFLAGS  # single-threaded make
unset CDPATH	# in case user has it set

# no core files, please
ulimit -c 0

# allow make.bash to avoid double-build of everything
rebuild=true
if [ "$1" = "--no-rebuild" ]; then
	rebuild=false
	shift
fi
		
xcd() {
	echo
	echo --- cd $1
	builtin cd "$GOROOT"/src/$1
}

if $rebuild; then
	if $USE_GO_TOOL; then
		echo
		echo '# Package builds'
		time go install -a -v std
	else
		(xcd pkg
			gomake clean
			time gomake install
		) || exit $?
	fi
fi

if $USE_GO_TOOL; then
	echo
	echo '# Package tests'
	time go test std -short
else
	(xcd pkg
	gomake testshort
	) || exit $?
fi

if $USE_GO_TOOL; then
	echo
	echo '# runtime -cpu=1,2,4'
	go test runtime -short -cpu=1,2,4
else
	(xcd pkg/runtime;
	gotest -short -cpu=1,2,4
	) || exit $?
fi

if $USE_GO_TOOL; then
	echo
	echo '# sync -cpu=10'
	go test sync -short -cpu=10
else
	(xcd pkg/sync;
	GOMAXPROCS=10 gomake testshort
	) || exit $?
fi

if $USE_GO_TOOL; then
	echo
	echo '# Build bootstrap scripts'
	./buildscript.sh
fi

(xcd pkg/exp/ebnflint
time gomake test
) || exit $?

[ "$CGO_ENABLED" != 1 ] ||
[ "$GOHOSTOS" == windows ] ||
(xcd ../misc/cgo/stdio
gomake clean
./test.bash
) || exit $?

[ "$CGO_ENABLED" != 1 ] ||
(xcd ../misc/cgo/life
gomake clean
./test.bash
) || exit $?

[ "$CGO_ENABLED" != 1 ] ||
[ "$GOHOSTOS" == windows ] ||
(xcd ../misc/cgo/test
gomake clean
gotest
) || exit $?

[ "$CGO_ENABLED" != 1 ] ||
[ "$GOHOSTOS" == windows ] ||
[ "$GOHOSTOS" == darwin ] ||
(xcd ../misc/cgo/testso
gomake clean
./test.bash
) || exit $?

(xcd ../doc/progs
time ./run
) || exit $?

[ "$GOARCH" == arm ] ||  # uses network, fails under QEMU
(xcd ../doc/codelab/wiki
gomake clean
gomake
gomake test
) || exit $?

for i in ../misc/dashboard/builder ../misc/goplay
do
	(xcd $i
	gomake clean
	gomake
	) || exit $?
done

[ "$GOARCH" == arm ] ||
(xcd ../test/bench/shootout
./timing.sh -test
) || exit $?

(xcd ../test/bench/go1
gomake test
) || exit $?

(xcd ../test
./run
) || exit $?

echo
echo ALL TESTS PASSED