diff --git a/src/all-arm.bash b/src/all-arm.bash index fc194dcb8c5..81cba295e93 100755 --- a/src/all-arm.bash +++ b/src/all-arm.bash @@ -8,6 +8,15 @@ bash make-arm.bash # TODO(kaib): add in proper tests #bash run.bash -5g -o hello.5 /home/kaib/work/go/hello.go -5l -o 5.out hello.5 -qemu-arm -cpu cortex-a8 5.out|grep -q "Hello World" + +set -e + +xcd() { + echo + echo --- cd $1 + builtin cd $1 +} + +(xcd ../test +./run-arm +) || exit $? diff --git a/test/arm-pass.txt b/test/arm-pass.txt new file mode 100644 index 00000000000..a8de6c388c7 --- /dev/null +++ b/test/arm-pass.txt @@ -0,0 +1,207 @@ + 64bit.go + assign.go + blank1.go + bugs/bug136.go + bugs/bug169.go + bugs/bug190.go + bugs/bug193.go + bugs/bug196.go + bugs/bug198.go + chan/perm.go + cmp2.go + cmp3.go + cmp4.go + cmp5.go + const1.go + const2.go + convert3.go + convlit.go + convlit1.go + declbad.go + empty.go + escape1.go + fixedbugs/bug000.go + fixedbugs/bug001.go + fixedbugs/bug002.go + fixedbugs/bug003.go + fixedbugs/bug004.go + fixedbugs/bug005.go + fixedbugs/bug007.go + fixedbugs/bug008.go + fixedbugs/bug009.go + fixedbugs/bug013.go + fixedbugs/bug014.go + fixedbugs/bug015.go + fixedbugs/bug016.go + fixedbugs/bug017.go + fixedbugs/bug020.go + fixedbugs/bug021.go + fixedbugs/bug022.go + fixedbugs/bug023.go + fixedbugs/bug024.go + fixedbugs/bug026.go + fixedbugs/bug030.go + fixedbugs/bug031.go + fixedbugs/bug035.go + fixedbugs/bug036.go + fixedbugs/bug037.go + fixedbugs/bug038.go + fixedbugs/bug039.go + fixedbugs/bug040.go + fixedbugs/bug046.go + fixedbugs/bug049.go + fixedbugs/bug050.go + fixedbugs/bug051.go + fixedbugs/bug053.go + fixedbugs/bug057.go + fixedbugs/bug058.go + fixedbugs/bug061.go + fixedbugs/bug062.go + fixedbugs/bug063.go + fixedbugs/bug064.go + fixedbugs/bug065.go + fixedbugs/bug066.go + fixedbugs/bug068.go + fixedbugs/bug070.go + fixedbugs/bug071.go + fixedbugs/bug072.go + fixedbugs/bug073.go + fixedbugs/bug074.go + fixedbugs/bug076.go + fixedbugs/bug077.go + fixedbugs/bug078.go + fixedbugs/bug080.go + fixedbugs/bug081.go + fixedbugs/bug082.go + fixedbugs/bug083.go + fixedbugs/bug085.go + fixedbugs/bug086.go + fixedbugs/bug087.go + fixedbugs/bug088.go + fixedbugs/bug089.go + fixedbugs/bug090.go + fixedbugs/bug091.go + fixedbugs/bug093.go + fixedbugs/bug094.go + fixedbugs/bug096.go + fixedbugs/bug097.go + fixedbugs/bug098.go + fixedbugs/bug099.go + fixedbugs/bug102.go + fixedbugs/bug103.go + fixedbugs/bug104.go + fixedbugs/bug106.go + fixedbugs/bug107.go + fixedbugs/bug108.go + fixedbugs/bug109.go + fixedbugs/bug110.go + fixedbugs/bug111.go + fixedbugs/bug112.go + fixedbugs/bug113.go + fixedbugs/bug114.go + fixedbugs/bug115.go + fixedbugs/bug116.go + fixedbugs/bug118.go + fixedbugs/bug119.go + fixedbugs/bug120.go + fixedbugs/bug121.go + fixedbugs/bug122.go + fixedbugs/bug123.go + fixedbugs/bug125.go + fixedbugs/bug126.go + fixedbugs/bug127.go + fixedbugs/bug128.go + fixedbugs/bug129.go + fixedbugs/bug130.go + fixedbugs/bug131.go + fixedbugs/bug132.go + fixedbugs/bug133.go + fixedbugs/bug135.go + fixedbugs/bug137.go + fixedbugs/bug139.go + fixedbugs/bug140.go + fixedbugs/bug141.go + fixedbugs/bug142.go + fixedbugs/bug143.go + fixedbugs/bug144.go + fixedbugs/bug145.go + fixedbugs/bug146.go + fixedbugs/bug147.go + fixedbugs/bug148.go + fixedbugs/bug149.go + fixedbugs/bug150.go + fixedbugs/bug151.go + fixedbugs/bug153.go + fixedbugs/bug154.go + fixedbugs/bug155.go + fixedbugs/bug156.go + fixedbugs/bug157.go + fixedbugs/bug158.go + fixedbugs/bug159.go + fixedbugs/bug161.go + fixedbugs/bug163.go + fixedbugs/bug164.go + fixedbugs/bug165.go + fixedbugs/bug166.go + fixedbugs/bug167.go + fixedbugs/bug168.go + fixedbugs/bug170.go + fixedbugs/bug171.go + fixedbugs/bug172.go + fixedbugs/bug173.go + fixedbugs/bug174.go + fixedbugs/bug175.go + fixedbugs/bug176.go + fixedbugs/bug178.go + fixedbugs/bug179.go + fixedbugs/bug181.go + fixedbugs/bug182.go + fixedbugs/bug183.go + fixedbugs/bug185.go + fixedbugs/bug186.go + fixedbugs/bug188.go + fixedbugs/bug189.go + fixedbugs/bug191.go + fixedbugs/bug192.go + fixedbugs/bug194.go + fixedbugs/bug195.go + fixedbugs/bug197.go + fixedbugs/bug200.go + fixedbugs/bug201.go + fixedbugs/bug202.go + fixedbugs/bug203.go + fixedbugs/bug205.go + fixedbugs/bug206.go + func1.go + func2.go + func3.go + func4.go + gc1.go + helloworld.go + import1.go + indirect.go + indirect1.go + initializerr.go + interface/convert1.go + interface/convert2.go + interface/explicit.go + interface/fail.go + interface/pointer.go + interface/receiver1.go + interface/recursive.go + interface/struct.go + iota.go + ken/complit.go + ken/label.go + ken/mfunc.go + ken/simpprint.go + ken/simpswitch.go + ken/simpvar.go + method1.go + method2.go + method3.go + parentype.go + printbig.go + rename1.go + simassign.go + varinit.go diff --git a/test/run-arm b/test/run-arm new file mode 100755 index 00000000000..f34271d0328 --- /dev/null +++ b/test/run-arm @@ -0,0 +1,81 @@ +#!/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="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 + +failed=0 + +PATH=/bin:/usr/bin:/usr/local/bin:${GOBIN:-$HOME/bin}:`pwd` + +RUNFILE=/tmp/gorun-$$-$USER +TMP1FILE=/tmp/gotest1-$$-$USER +TMP2FILE=/tmp/gotest2-$$-$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; s|//||g; s|./\$A.out|$E &|' $i >$RUNFILE + if ! sh $RUNFILE >$TMP1FILE 2>$TMP2FILE + then + echo + echo "===========" $i + cat $TMP1FILE + cat $TMP2FILE + echo >&2 fail: $i + elif test -s $TMP1FILE || test -s $TMP2FILE + then + echo + echo "===========" $i + cat $TMP1FILE + cat $TMP2FILE + 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 + /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 + +case $failed in +1) + echo FAIL +esac +rm -f $RUNFILE $TMP1FILE $TMP2FILE *.$A $A.out + +exit $failed