| #!/bin/bash |
| # Copyright 2014 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. |
| |
| # For testing Native Client on builders or locally. |
| # Builds a test file system and embeds it into package syscall |
| # in every generated binary. |
| # |
| # Assumes that sel_ldr binaries and go_nacl_$GOARCH_exec scripts are in $PATH; |
| # see ../misc/nacl/README. |
| |
| set -e |
| ulimit -c 0 |
| |
| # guess GOARCH if not set |
| naclGOARCH=$GOARCH |
| if [ -z "$naclGOARCH" ]; then |
| case "$(uname -m)" in |
| x86_64) |
| naclGOARCH=amd64p32 |
| ;; |
| armv7l) # NativeClient on ARM only supports ARMv7A. |
| naclGOARCH=arm |
| ;; |
| i?86) |
| naclGOARCH=386 |
| ;; |
| esac |
| fi |
| |
| # Check GOARCH. |
| case "$naclGOARCH" in |
| amd64p32) |
| if ! which sel_ldr_x86_64 >/dev/null; then |
| echo 'cannot find sel_ldr_x86_64' 1>&2 |
| exit 1 |
| fi |
| ;; |
| 386) |
| if ! which sel_ldr_x86_32 >/dev/null; then |
| echo 'cannot find sel_ldr_x86_32' 1>&2 |
| exit 1 |
| fi |
| ;; |
| arm) |
| if ! which sel_ldr_arm >/dev/null; then |
| echo 'cannot find sel_ldr_arm' 1>&2 |
| exit 1 |
| fi |
| ;; |
| *) |
| echo 'unsupported $GOARCH for nacl: '"$naclGOARCH" 1>&2 |
| exit 1 |
| esac |
| |
| if ! which go_nacl_${naclGOARCH}_exec >/dev/null; then |
| echo "cannot find go_nacl_${naclGOARCH}_exec, see ../misc/nacl/README." 1>&2 |
| exit 1 |
| fi |
| |
| unset GOOS GOARCH |
| if [ ! -f make.bash ]; then |
| echo 'nacltest.bash must be run from $GOROOT/src' 1>&2 |
| exit 1 |
| fi |
| |
| # the builder might have set GOROOT_FINAL. |
| export GOROOT=$(pwd)/.. |
| |
| # Build zip file embedded in package syscall. |
| echo "##### Building fake file system zip for nacl" |
| rm -f syscall/fstest_nacl.go |
| GOROOT_BOOTSTRAP=${GOROOT_BOOTSTRAP:-$HOME/go1.4} |
| gobin=$GOROOT_BOOTSTRAP/bin |
| GOROOT=$GOROOT_BOOTSTRAP $gobin/go run ../misc/nacl/mkzip.go -p syscall -r .. ../misc/nacl/testzip.proto syscall/fstest_nacl.go |
| |
| # Run standard build and tests. |
| export PATH=$(pwd)/../misc/nacl:$PATH |
| GOOS=nacl GOARCH=$naclGOARCH ./all.bash |