summaryrefslogtreecommitdiff
path: root/src/pkg/exp/eval/test.bash
blob: 5d9ba1ae7f04b31ca97a6ab3c76f83c6a9e02d44 (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
#!/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.

# Run the interpreter against all the Go test programs
# that begin with the magic
#	// $G $D/$F.go && $L $F.$A && ./$A.out
# line and do not contain imports.

set -e

GOBIN="${GOBIN:-$HOME/bin}"

"$GOBIN"/gomake
"$GOBIN"/6g main.go && "$GOBIN"/6l main.6
(
for i in $(egrep -l '// \$G (\$D/)?\$F\.go \&\& \$L \$F\.\$A && \./\$A\.out' "$GOROOT"/test/*.go "$GOROOT"/test/*/*.go)
do
	if grep '^import' $i >/dev/null 2>&1
	then
		true
	else
		if "$GOROOT"/usr/austin/eval/6.out -f $i >/tmp/out 2>&1 && ! test -s /tmp/out
		then
			echo PASS $i
		else
			echo FAIL $i
			(
				echo '>>> ' $i
				cat /tmp/out
				echo
			) 1>&3
		fi
	fi
done | (tee /dev/fd/2 | awk '{print $1}' | sort | uniq -c) 2>&1
) 3>test.log