#!/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

goos=$(go env GOOS)

defer_panic_recover="
	defer
	defer2
"

effective_go="
	eff_bytesize
	eff_qr
	eff_sequence
	eff_unused2
"

error_handling="
	error
	error2
	error3
	error4
"

law_of_reflection="
	interface
	interface2
"

c_go_cgo="
	cgo1
	cgo2
	cgo3
	cgo4
"
# cgo1 and cgo2 don't run on freebsd, srandom has a different signature
if [ "$goos" == "freebsd" ]; then
	c_go_cgo="cgo3 cgo4"
fi
# cgo1 and cgo2 don't run on netbsd, srandom has a different signature
# cgo3 and cgo4 don't run on netbsd, since cgo cannot handle stdout correctly
if [ "$goos" == "netbsd" ]; then
	c_go_cgo=""
fi
# cgo3 and cgo4 don't run on openbsd, since cgo cannot handle stdout correctly
if [ "$goos" == "openbsd" ]; then
	c_go_cgo="cgo1 cgo2"
fi

timeout="
	timeout1
	timeout2
"

gobs="
	gobs1
	gobs2
"

json="
	json1
	json2
	json3
	json4
	json5
"

image_package="
	image_package1
	image_package2
	image_package3
	image_package4
	image_package5
	image_package6
"

all=$(echo $defer_panic_recover $effective_go $error_handling $law_of_reflection $c_go_cgo $timeout $gobs $json $image_package slices go1)

for i in $all; do
	go build $i.go
done

# Write to temporary file to avoid mingw bash bug.
TMPFILE="${TMPDIR:-/tmp}/gotest3.$USER"

function testit {
	./$1 >"$TMPFILE" 2>&1 || true
	x=$(echo $(cat "$TMPFILE")) # extra echo canonicalizes
	if ! echo "$x" | grep "$2" > /dev/null
	then
		echo $1 failed: '"'$x'"' is not '"'$2'"'
	fi
}


testit defer '^0 3210 2$'
testit defer2 '^Calling g. Printing in g 0 Printing in g 1 Printing in g 2 Printing in g 3 Panicking! Defer in g 3 Defer in g 2 Defer in g 1 Defer in g 0 Recovered in f 4 Returned normally from f.$'

testit eff_bytesize '^1.00YB 9.09TB$'
testit eff_sequence '^\[-1 2 6 16 44\]$'

testit go1 '^Christmas is a holiday: true Sleeping for 0.123s.*go1.go already exists$'

testit interface2 "^type: float64$"

testit json1 "^$"
testit json2 "the reciprocal of i is"
testit json3 "Age is int 6"
testit json4 "^$"

testit image_package1 "^X is 2 Y is 1$"
testit image_package2 "^3 4 false$"
testit image_package3 "^3 4 true$"
testit image_package4 "^image.Point{X:2, Y:1}$"
testit image_package5 "^{255 0 0 255}$"
testit image_package6 "^8 4 true$"

rm -f $all "$TMPFILE"
