diff options
Diffstat (limited to 'src/test/test_rust.sh')
-rwxr-xr-x | src/test/test_rust.sh | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/test_rust.sh b/src/test/test_rust.sh new file mode 100755 index 0000000000..00b3e88d37 --- /dev/null +++ b/src/test/test_rust.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# Test all Rust crates + +set -e + +export LSAN_OPTIONS=suppressions=${abs_top_srcdir:-../../..}/src/test/rust_supp.txt + +# When testing Cargo we pass a number of very specific linker flags down +# through Cargo. We do not, however, want these flags to affect things like +# build scripts, only the tests that we're compiling. To ensure this happens +# we unconditionally pass `--target` into Cargo, ensuring that `RUSTFLAGS` in +# the environment won't make their way into build scripts. +rustc_host=$(rustc -vV | grep host | sed 's/host: //') + +for cargo_toml_dir in "${abs_top_srcdir:-../../..}"/src/rust/*; do + if [ -e "${cargo_toml_dir}/Cargo.toml" ]; then + cd "${abs_top_builddir:-../../..}/src/rust" && \ + CARGO_TARGET_DIR="${abs_top_builddir:-../../..}/src/rust/target" \ + "${CARGO:-cargo}" test ${CARGO_ONLINE-"--frozen"} \ + --features "test_linking_hack" \ + --target $rustc_host \ + ${EXTRA_CARGO_OPTIONS} \ + --manifest-path "${cargo_toml_dir}/Cargo.toml" || exitcode=1 + fi +done + +exit $exitcode |