mirror of
https://github.com/golang/go
synced 2024-11-12 02:00:23 -07:00
build: prevent the entire repo to be wiped out by cgo test scripts
Following the parallelization of some tests, a race condition can occur in testcarchive, testshared and testcshared. In some cases, it can result in the go env GOROOT command returning corrupted data, which are then passed to a rm command. Make the shell script more robust by not trusting the result of the go env GOROOT command. It does not really fix the issue, but at least prevent the entire repository to be deleted. Updates #13789 Change-Id: Iaf04a7bd078ed3a82e724e35c4b86e6f756f2a2f Reviewed-on: https://go-review.googlesource.com/18173 TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
28b95edff2
commit
dc5315c341
@ -16,6 +16,11 @@ fi
|
||||
|
||||
goos=$(go env GOOS)
|
||||
goarch=$(go env GOARCH)
|
||||
goroot=$(go env GOROOT)
|
||||
if [ ! -d "$goroot" ]; then
|
||||
echo 'misc/cgo/testcshared/test.bash cannnot find GOROOT' 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Directory where cgo headers and outputs will be installed.
|
||||
# The installation directory format varies depending on the platform.
|
||||
@ -30,10 +35,10 @@ androidpath=/data/local/tmp/testcshared-$$
|
||||
function cleanup() {
|
||||
rm -f libgo.$libext libgo2.$libext libgo4.$libext libgo.h libgo4.h
|
||||
rm -f testp testp2 testp3 testp4
|
||||
rm -rf pkg $(go env GOROOT)/${installdir}
|
||||
rm -rf pkg "${goroot}/${installdir}"
|
||||
|
||||
if [ "$goos" == "android" ]; then
|
||||
adb shell rm -rf $androidpath
|
||||
adb shell rm -rf "$androidpath"
|
||||
fi
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
Loading…
Reference in New Issue
Block a user