#!/bin/sh
# 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.

export E=""
case X"$GOARCH" in
Xamd64)
	export A=6
	;;
X386)
	export A=8
	;;
Xarm)
	export A=5
	export E="${GORUN:-qemu-arm -cpu cortex-a8}"
	;;
*)
	echo 1>&2 run: unsupported '$GOARCH'
	exit 1
esac

export G=${A}g
export L=${A}l
export GOTRACEBACK=0

PATH=/bin:/usr/bin:/usr/local/bin:${GOBIN:-$HOME/bin}:`pwd`

RUNFILE=/tmp/gorun-$$-$USER
TMP1FILE=/tmp/gotest1-$$-$USER
TMP2FILE=/tmp/gotest2-$$-$USER
FAILEDFILE=/tmp/gotest3-$$-$USER

# don't run the machine out of memory: limit individual processes to 4GB.
# on thresher, 3GB suffices to run the tests; with 2GB, peano fails.
ulimit -v 4000000


for i in $(cat arm-pass.txt)
do
	export F=$(basename $i .go)
	dir=$(dirname $i)
	export D=$dir
	sed '/^\/\//!q' $i | sed 's@//@@; $d' |sed 's|./\$A.out|$E &|' >$RUNFILE
	if ! sh $RUNFILE >$TMP1FILE 2>&1
	then
		echo
		echo "===========" $i
		cat $TMP1FILE
		echo >&2 fail: $i
		touch $FAILEDFILE
	elif test -s $TMP1FILE
	then
		echo
		echo "===========" $i
		cat $TMP1FILE
	elif [ $dir = "bugs" ]
	then
		echo $i succeeded with no output.
	fi
done | # clean up some stack noise
	egrep -v '^(r[0-9a-z]+|[cfg]s)  +0x'  |
	sed '/tmp.*Bus error/s/.*Bus/Bus/; /tmp.*Trace.BPT/s/.*Trace/Trace/
		s!'$RUNFILE'!$RUNFILE!g
		s/ PC=0x[0-9a-f]*/ PC=xxx/
		s/^pc: 0x[0-9a-f]*/pc: xxx/
		/^Trace\/breakpoint trap/d
		/^Trace\/BPT trap/d
		s!'$GOROOT'!$GOROOT!g
		/RUNFILE/ s/line 1: *[0-9]*/line 1: PID/
		/^\$RUNFILE: line 1: PID Trace\/breakpoint trap/d
		/^qemu: uncaught target signal 11 (Segmentation fault) - exiting/d' > run.out

failed=0
rm  -f $RUNFILE $TMP1FILE $TMP2FILE *.$A $A.out
diffmsg=""
if ! diff run.out golden-arm.out
then
	diffmsg="; test output differs"
	failed=1
fi

notinbugs=$(sed '/^== bugs/q' run.out | grep -c '^BUG')
inbugs=$(sed '1,/^== bugs/d' run.out | grep -c '^BUG')

echo 2>&1 $inbugs known bugs';' $notinbugs unexpected bugs$diffmsg

if [ "$failed" != "0" ]; then
	echo FAILED
fi

exit $failed
