58 lines
1.7 KiB
Bash
Executable File
58 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
. .envrc
|
|
|
|
_build_and_file() {
|
|
file "$(bazel run --color=yes --curses=yes --run_under=echo "$@")" | \
|
|
tee /dev/stderr
|
|
}
|
|
|
|
_test() {
|
|
local name=$1
|
|
local glob=$2
|
|
shift; shift;
|
|
>&2 echo "================================================================"
|
|
>&2 echo "Testing $name and looking for '$glob':"
|
|
>&2 echo " bazel build $* //test:hello"
|
|
>&2 echo
|
|
if _build_and_file "$@" //test:hello | grep -q "$glob"; then
|
|
>&2 echo "OK $name"
|
|
return 0
|
|
else
|
|
>&2 echo "FAIL $name: glob does not match"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
_test "Host" \
|
|
"ELF 64-bit.* x86-64.* dynamically linked"
|
|
|
|
_test "darwin_amd64" \
|
|
"Mach-O 64-bit x86_64 executable" \
|
|
--platforms @zig_sdk//:darwin_amd64_platform
|
|
|
|
# hello world on darwin/arm64 requires OSX SDK via `zig cc --sysroot=<...>`.
|
|
# see https://github.com/ziglang/zig/issues/10299#issuecomment-989595215
|
|
#_test "darwin_arm64" \
|
|
# "Mach-O 64-bit arm64 executable" \
|
|
# --platforms @zig_sdk//:darwin_arm64_platform
|
|
|
|
_test "linux_amd64_gnu" \
|
|
"ELF 64-bit.* x86-64.* dynamically linked" \
|
|
--platforms @zig_sdk//:linux_amd64_platform
|
|
|
|
_test "linux_amd64_musl" \
|
|
"ELF 64-bit.* x86-64.* statically linked" \
|
|
--platforms @zig_sdk//:linux_amd64_platform \
|
|
--extra_toolchains @zig_sdk//:linux_amd64_musl_toolchain
|
|
|
|
_test "linux_arm64_gnu" \
|
|
"ELF 64-bit.* ARM aarch64.* dynamically linked" \
|
|
--platforms @zig_sdk//:linux_arm64_platform
|
|
|
|
_test "linux_arm64_musl" \
|
|
"ELF 64-bit.* ARM aarch64.* statically linked" \
|
|
--platforms @zig_sdk//:linux_arm64_platform \
|
|
--extra_toolchains @zig_sdk//:linux_arm64_musl_toolchain
|