Home | History | Annotate | Download | only in errors
      1 #!/usr/bin/env bash
      2 
      3 # Copyright 2013 The Go Authors. All rights reserved.
      4 # Use of this source code is governed by a BSD-style
      5 # license that can be found in the LICENSE file.
      6 
      7 check() {
      8 	file=$1
      9 	line=$(grep -n 'ERROR HERE' $file | sed 's/:.*//')
     10 	if [ "$line" = "" ]; then
     11 		echo 1>&2 misc/cgo/errors/test.bash: BUG: cannot find ERROR HERE in $file
     12 		exit 1
     13 	fi
     14 	expect $file $file:$line:
     15 }
     16 
     17 expect() {
     18 	file=$1
     19 	shift
     20 	if go build $file >errs 2>&1; then
     21 		echo 1>&2 misc/cgo/errors/test.bash: BUG: expected cgo to fail on $file but it succeeded
     22 		exit 1
     23 	fi
     24 	if ! test -s errs; then
     25 		echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error output for $file but saw none
     26 		exit 1
     27 	fi
     28 	for error; do
     29 		if ! fgrep $error errs >/dev/null 2>&1; then
     30 			echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error output for $file to contain \"$error\" but saw:
     31 			cat 1>&2 errs
     32 			exit 1
     33 		fi
     34 	done
     35 }
     36 
     37 check err1.go
     38 check err2.go
     39 check err3.go
     40 check issue7757.go
     41 check issue8442.go
     42 check issue11097a.go
     43 check issue11097b.go
     44 expect issue13129.go C.ushort
     45 check issue13423.go
     46 expect issue13635.go C.uchar C.schar C.ushort C.uint C.ulong C.longlong C.ulonglong C.complexfloat C.complexdouble
     47 check issue13830.go
     48 check issue16116.go
     49 check issue16591.go
     50 
     51 if ! go build issue14669.go; then
     52 	exit 1
     53 fi
     54 if ! CGO_CFLAGS="-O" go build issue14669.go; then
     55 	exit 1
     56 fi
     57 
     58 if ! go run ptr.go; then
     59 	exit 1
     60 fi
     61 
     62 # The malloc.go test should crash.
     63 rm -f malloc.out
     64 if go run malloc.go >malloc.out 2>&1; then
     65 	echo '`go run malloc.go` succeeded unexpectedly'
     66 	cat malloc.out
     67 	rm -f malloc.out
     68 	exit 1
     69 fi
     70 rm -f malloc.out
     71 
     72 rm -rf errs _obj
     73 exit 0
     74