]> Cypherpunks repositories - gostls13.git/commitdiff
build: make all.bash run on Ubuntu ARM
authorRuss Cox <rsc@golang.org>
Wed, 22 Sep 2010 05:30:42 +0000 (15:30 +1000)
committerAndrew Gerrand <adg@golang.org>
Wed, 22 Sep 2010 05:30:42 +0000 (15:30 +1000)
Sent from my phone.

R=adg
CC=golang-dev
https://golang.org/cl/2192049

doc/install.html
src/pkg/Makefile
src/run.bash
test/run

index d184a7209b2df9bfb71da17b4beaa8ad85a45797..2591de94153966193470df6120c229e203752f85 100644 (file)
@@ -44,10 +44,10 @@ architectures.
        <code>arm</code> (a.k.a. <code>ARM</code>); <code>5g,5l,5c,5a</code>
 </dt>
 <dd>
-       Still a work in progress.
-       It only supports Linux binaries, floating point is weak, and the
-       optimizer is not enabled.
-       Tested against QEMU and an android phone.
+       Incomplete.
+       It only supports Linux binaries, floating point is weak,
+       it has code generation bugs, and the optimizer is not enabled.
+       Tested against a Nexus One.
 </dd>
 </dl>
 
index da44167c3471ebdf35eb54a4432c8e144fcd5b3d..78bb4b8df85626d71bbbd83cfdd0ae0e5cdc6e2e 100644 (file)
@@ -9,6 +9,8 @@
 #
 # to rebuild the dependency information in Make.deps.
 
+include ../Make.inc
+
 all: install
 
 DIRS=\
@@ -197,6 +199,69 @@ NOTEST+=time         # no syscall.Kill, syscall.SIGCHLD for sleep tests
 NOTEST+=websocket    # no network
 endif
 
+ifeq ($(GOARCH),arm)
+# Tests that fail, probably 5g bugs.
+# Disable so that dashboard all.bash can catch regressions.
+NOTEST+=archive/tar
+NOTEST+=asn1
+NOTEST+=big
+NOTEST+=bytes
+NOTEST+=cmath
+NOTEST+=compress/gzip
+NOTEST+=compress/zlib
+NOTEST+=crypto/aes
+NOTEST+=crypto/block
+NOTEST+=crypto/blowfish
+NOTEST+=crypto/ocsp
+NOTEST+=crypto/rc4
+NOTEST+=crypto/rsa
+NOTEST+=crypto/subtle
+NOTEST+=crypto/tls
+NOTEST+=crypto/x509
+NOTEST+=debug/dwarf
+NOTEST+=debug/elf
+NOTEST+=debug/macho
+NOTEST+=encoding/base64
+NOTEST+=encoding/binary
+NOTEST+=encoding/pem
+NOTEST+=exp/datafmt
+NOTEST+=exp/eval
+NOTEST+=expvar
+NOTEST+=flag
+NOTEST+=fmt
+NOTEST+=go/printer
+NOTEST+=gob
+NOTEST+=http
+NOTEST+=image/png
+NOTEST+=io
+NOTEST+=json
+NOTEST+=log
+NOTEST+=math
+NOTEST+=mime
+NOTEST+=mime/multipart
+NOTEST+=net
+NOTEST+=netchan
+NOTEST+=os
+NOTEST+=os/signal
+NOTEST+=patch
+NOTEST+=reflect
+NOTEST+=regexp
+NOTEST+=rpc
+NOTEST+=rpc/jsonrpc
+NOTEST+=scanner
+NOTEST+=strconv
+NOTEST+=strings
+NOTEST+=syslog
+NOTEST+=tabwriter
+NOTEST+=template
+NOTEST+=testing/quick
+NOTEST+=time
+NOTEST+=utf16
+NOTEST+=utf8
+NOTEST+=websocket
+NOTEST+=xml
+endif
+
 TEST=\
        $(filter-out $(NOTEST),$(DIRS))
 
index 304b3e9f5af7148eda972777fc10e59eb193be0b..4341d9da6e3beb4cfb37f9b925375c5fc90be804 100755 (executable)
@@ -59,6 +59,7 @@ fi
 GOMAXPROCS=10 gomake test
 ) || exit $?
 
+[ "$GOARCH" == arm ] ||
 (xcd cmd/gofmt
 if $rebuild; then
        gomake clean;
@@ -75,6 +76,7 @@ fi
 time gomake test
 ) || exit $?
 
+[ "$GOARCH" == arm ] ||
 (xcd ../misc/cgo/stdio
 if [[ $(uname | tr A-Z a-z | sed 's/mingw/windows/') != *windows* ]]; then
        gomake clean
@@ -93,6 +95,7 @@ if [[ $(uname | tr A-Z a-z | sed 's/mingw/windows/') != *windows* ]]; then
 fi
 ) || exit $?
 
+[ "$GOARCH" == arm ] ||
 (xcd ../test/bench
 if [[ $(uname | tr A-Z a-z | sed 's/mingw/windows/') != *windows* ]]; then
        ./timing.sh -test
index 016094c90af7bcf91502cec79f002c2a05f7a155..bb709cc9f9e41bf53197c65306573ebec62cec28 100755 (executable)
--- a/test/run
+++ b/test/run
@@ -49,12 +49,32 @@ ulimit -c 0
 
 true >pass.out >times.out
 
+exclude=false  # exclude nothing
+golden=golden.out
+
+filterout() {
+       grep '^'"$2"'$' $1 >/dev/null
+}
+
+if [ "$GOARCH" = "arm" ]; then
+       if [ "$GORUN" = "" ]; then
+               exclude="filterout fail-arm-native.txt"
+               golden=golden-arm-native.out
+       else
+               exclude="filterout fail-arm.txt"
+               golden=golden-arm.out
+       fi
+fi
+
 for dir in . ken chan interface nilptr syntax fixedbugs bugs
 do
        echo
        echo '==' $dir'/'
        for i in $(ls $dir/*.go 2>/dev/null)
-       do
+       do (
+               if $exclude $i; then
+                       exit 0  # continues for loop
+               fi
                export F=$(basename $i .go)
                export D=$dir
                sed '/^\/\//!q' $i | sed 's@//@@; $d' |sed 's|./\$A.out|$E &|g' >$RUNFILE
@@ -87,7 +107,7 @@ do
                        echo $i >>pass.out
                fi
                echo $(awk 'NR==1{print $2}' $TMP2FILE) $D/$F >>times.out
-       done
+       done
 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/
@@ -103,9 +123,9 @@ done | # clean up some stack noise
                /Segmentation fault/d
                /^qemu: uncaught target signal 11 (Segmentation fault) - exiting/d' > run.out
 
-rm  -f $RUNFILE $TMP1FILE $TMP2FILE *.$A *.a $A.out
+rm -f $RUNFILE $TMP1FILE $TMP2FILE *.$A *.a $A.out
 diffmsg=""
-if ! diff golden.out run.out
+if ! diff $golden run.out
 then
        diffmsg="; test output differs"
        failed=1