Try to determine the corresponding 32bit architecture from the current
GOARCH and run the tests under that architecture. This only works on a
GOOS/GOARCH that can execute binaries for the smaller architecture, such
as running linux/386 binaries under linux/amd64.
I tested that this works under linux/amd64 and darwin/amd64, the rest of
the architectures is guesswork.
While we still only run regular tests on Intel/Linux architectures, this
covers general integer overflow issues like #629.
# 64bit -> 32bit mapping for cross-checking. At least for amd64/386, the 64bit CPU can execute 32bit code but not the other way around, so we don't support cross-testing upwards.
cross-test= skip-test-32bit
definegoarch_pair
ifeq($$(GOARCH),$1)
GOARCH_CROSS=$2
cross-test = test-32bit
endif
endef
# By default, "cross" test with ourselves to cover unknown pairings.