meta: cross-compile tests for other geese

For now this is just darwin/windows, but we'll eventually add support
for {free,open}bsd

Signed-off-by: evalexpr <wilkinsphysics@gmail.com>
This commit is contained in:
evalexpr
2020-02-12 21:39:58 +00:00
committed by Dave Anderson
parent ae89a7a65d
commit e5481f33d3
2 changed files with 57 additions and 1 deletions

38
test.sh Executable file
View File

@ -0,0 +1,38 @@
#!/usr/bin/env bash
function remove_test_files {
rm -f ./*test{,.exe}
}
function fail {
printf '%s\n' "$1" >&2
# If we fail, clean up after ourselves
remove_test_files
exit 1
}
function main {
test_dirs=()
while IFS= read -r -d '' file
do
dir=$(dirname "$file")
if [[ ! " ${test_dirs[*]} " =~ ${dir} ]]; then
test_dirs+=("$dir")
fi
done < <(find . -type f -iname '*_test.go' -print0)
for goos in openbsd darwin windows
do
for dir in "${test_dirs[@]}"; do
echo "Testing GOOS=$goos in dir $dir"
GOOS="$goos" go test -c "./$dir" || fail "Test failed using $goos and $dir"
done
done
# If all goes well, we should still clean up the test files
echo "Test complete"
remove_test_files
}
main "$@"