diff options
| author | Jakob Unterwurzacher | 2021-12-08 18:53:15 +0100 | 
|---|---|---|
| committer | Jakob Unterwurzacher | 2021-12-08 18:53:15 +0100 | 
| commit | a48d6c30410753eb16ae94e6bfc54ca7abb7d128 (patch) | |
| tree | 717d900a0e3e0e6529d94bc72b8c9650db9f54b7 | |
| parent | ec186c13cebeea48112aa9a863c278ffc23db197 (diff) | |
test.bash, crossbuild: catch MacOS test build failures
Regression test for https://github.com/rfjakob/gocryptfs/issues/623
Fixes https://github.com/rfjakob/gocryptfs/issues/623
| -rwxr-xr-x | crossbuild.bash | 10 | ||||
| -rwxr-xr-x | test.bash | 8 | 
2 files changed, 16 insertions, 2 deletions
| diff --git a/crossbuild.bash b/crossbuild.bash index 25eeb91..a9fc6ae 100755 --- a/crossbuild.bash +++ b/crossbuild.bash @@ -7,9 +7,13 @@ function build {  	go build -tags without_openssl -o /dev/null  } -set -eux +function compile_tests { +	for i in $(go list ./...) ; do +		go test -c -tags without_openssl -o /dev/null "$i" > /dev/null +	done +} -cd "$(dirname "$0")" +set -eux  export GO111MODULE=on  export CGO_ENABLED=0 @@ -22,6 +26,8 @@ GOOS=linux  GOARCH=arm64         build  # MacOS on Intel  GOOS=darwin GOARCH=amd64 build +# Catch tests that don't work on MacOS (takes a long time so we only run it once) +time GOOS=darwin GOARCH=amd64 compile_tests  # MacOS on Apple Silicon M1.  # Go 1.16 added support for the M1 and added ios/arm64, @@ -93,4 +93,12 @@ if find . -type f -name \*.go -print0 | xargs -0 grep -E 'syscall.(Setegid|Seteu  	exit 1  fi +if find . -type f -name \*.go -print0 | xargs -0 grep '\.Creat('; then +	# MacOS does not have syscall.Creat(). Creat() is equivalent to Open(..., O_CREAT|O_WRONLY|O_TRUNC, ...), +	# but usually you want O_EXCL instead of O_TRUNC because it is safer, so that's what we suggest +	# instead. +	echo "$MYNAME: Please use Open(..., O_CREAT|O_WRONLY|O_EXCL, ...) instead of Creat()! https://github.com/rfjakob/gocryptfs/issues/623" +	exit 1 +fi +  ) 200> "$LOCKFILE" | 
