| #!/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. | |
| set -e | |
| eval $(gomake --no-print-directory -f ../../src/Make.inc go-env) | |
| if [ -z "$O" ]; then | |
| echo 'missing $O - maybe no Make.$GOARCH?' 1>&2 | |
| exit 1 | |
| fi | |
| rm -f *.$O | |
| for i in \ | |
| file.go \ | |
| helloworld.go \ | |
| helloworld3.go \ | |
| echo.go \ | |
| cat.go \ | |
| cat_rot13.go \ | |
| sum.go \ | |
| sort.go \ | |
| sortmain.go \ | |
| print.go \ | |
| print_string.go \ | |
| sieve.go \ | |
| sieve1.go \ | |
| server1.go \ | |
| strings.go \ | |
| ; do | |
| $GC $i | |
| done | |
| function testit { | |
| $LD $1.$O | |
| x=$(echo $(./$O.out $2 2>&1)) # extra echo canonicalizes | |
| if [ "$x" != "$3" ] | |
| then | |
| echo $1 failed: '"'$x'"' is not '"'$3'"' | |
| fi | |
| } | |
| function testitpipe { | |
| $LD $1.$O | |
| x=$(echo $(./$O.out | $2 2>&1)) # extra echo canonicalizes | |
| if [ "$x" != "$3" ] | |
| then | |
| echo $1 failed: '"'$x'"' is not '"'$3'"' | |
| fi | |
| } | |
| testit helloworld "" "Hello, world; or Καλημέρα κόσμε; or こんにちは 世界" | |
| testit helloworld3 "" "hello, world can't open file; err=no such file or directory" | |
| testit echo "hello, world" "hello, world" | |
| testit sum "" "6" | |
| testit strings "" "" | |
| alphabet=abcdefghijklmnopqrstuvwxyz | |
| rot13=nopqrstuvwxyzabcdefghijklm | |
| echo $alphabet | testit cat "" $alphabet | |
| echo $alphabet | testit cat_rot13 "--rot13" $rot13 | |
| echo $rot13 | testit cat_rot13 "--rot13" $alphabet | |
| testit sortmain "" "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" | |
| testit print "" "18446744073709551615 -1 18446744073709551615 {77 Sunset Strip} [1 2 3 4] 18446744073709551615 {77 Sunset Strip} [1 2 3 4] 18446744073709551615 {77 Sunset Strip} [1 2 3 4]" | |
| testit print_string "" "77 Sunset Strip" | |
| testitpipe sieve "sed 10q" "2 3 5 7 11 13 17 19 23 29" | |
| testitpipe sieve "sed 10q" "2 3 5 7 11 13 17 19 23 29" | |
| # server hangs; don't run it, just compile it | |
| $GC server.go | |
| testit server1 "" "" | |
| rm -f $O.out *.$O |