mirror of
https://github.com/golang/go
synced 2024-11-24 21:50:11 -07:00
b88e532a9e
Just like https://golang.org/cl/34783 Given cgo.go: 1 package main 2 3 /* 4 long double x = 0; 5 */ 6 import "C" 7 8 func main() { 9 _ = C.x 10 _ = C.x 11 } Before: ./cgo.go:10:6: unexpected: 16-byte float type - long double After: ./cgo.go:9:6: unexpected: 16-byte float type - long double The above test case is not portable. So it is tested on only amd64. Change-Id: If0b84cf73d381a22e2ada71c8e9a6e6ec77ffd2e Reviewed-on: https://go-review.googlesource.com/54950 Reviewed-by: Ian Lance Taylor <iant@golang.org>
79 lines
1.8 KiB
Bash
Executable File
79 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright 2013 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.
|
|
|
|
check() {
|
|
file=$1
|
|
line=$(grep -n 'ERROR HERE' $file | sed 's/:.*//')
|
|
if [ "$line" = "" ]; then
|
|
echo 1>&2 misc/cgo/errors/test.bash: BUG: cannot find ERROR HERE in $file
|
|
exit 1
|
|
fi
|
|
expect $file $file:$line:
|
|
}
|
|
|
|
expect() {
|
|
file=$1
|
|
shift
|
|
if go build -gcflags=-C $file >errs 2>&1; then
|
|
echo 1>&2 misc/cgo/errors/test.bash: BUG: expected cgo to fail on $file but it succeeded
|
|
exit 1
|
|
fi
|
|
if ! test -s errs; then
|
|
echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error output for $file but saw none
|
|
exit 1
|
|
fi
|
|
for error; do
|
|
if ! fgrep $error errs >/dev/null 2>&1; then
|
|
echo 1>&2 misc/cgo/errors/test.bash: BUG: expected error output for $file to contain \"$error\" but saw:
|
|
cat 1>&2 errs
|
|
exit 1
|
|
fi
|
|
done
|
|
}
|
|
|
|
check err1.go
|
|
check err2.go
|
|
check err3.go
|
|
if [ $(go env GOARCH) == "amd64" ]; then # If we find a portable test case, we can remove this.
|
|
check err4.go
|
|
fi
|
|
check issue7757.go
|
|
check issue8442.go
|
|
check issue11097a.go
|
|
check issue11097b.go
|
|
expect issue13129.go C.ushort
|
|
check issue13423.go
|
|
expect issue13635.go C.uchar C.schar C.ushort C.uint C.ulong C.longlong C.ulonglong C.complexfloat C.complexdouble
|
|
check issue13830.go
|
|
check issue16116.go
|
|
check issue16591.go
|
|
check issue18889.go
|
|
expect issue18452.go issue18452.go:16 issue18452.go:17
|
|
|
|
if ! go build issue14669.go; then
|
|
exit 1
|
|
fi
|
|
if ! CGO_CFLAGS="-O" go build issue14669.go; then
|
|
exit 1
|
|
fi
|
|
|
|
if ! go run ptr.go; then
|
|
exit 1
|
|
fi
|
|
|
|
# The malloc.go test should crash.
|
|
rm -f malloc.out
|
|
if go run malloc.go >malloc.out 2>&1; then
|
|
echo '`go run malloc.go` succeeded unexpectedly'
|
|
cat malloc.out
|
|
rm -f malloc.out
|
|
exit 1
|
|
fi
|
|
rm -f malloc.out
|
|
|
|
rm -rf errs _obj
|
|
exit 0
|