2017-04-29 13:17:22 +02:00
|
|
|
#!/bin/sh
|
2018-08-10 03:09:18 +02:00
|
|
|
# Test all Rust crates
|
2017-04-29 13:17:22 +02:00
|
|
|
|
2018-08-10 03:09:18 +02:00
|
|
|
set -e
|
2017-04-29 13:17:22 +02:00
|
|
|
|
2018-08-10 03:22:36 +02:00
|
|
|
export LSAN_OPTIONS=suppressions=${abs_top_srcdir:-../../..}/src/test/rust_supp.txt
|
2017-04-29 13:17:22 +02:00
|
|
|
|
2018-10-02 07:54:20 +02:00
|
|
|
# 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: //')
|
|
|
|
|
2018-08-10 03:09:18 +02:00
|
|
|
for cargo_toml_dir in "${abs_top_srcdir:-../../..}"/src/rust/*; do
|
|
|
|
if [ -e "${cargo_toml_dir}/Cargo.toml" ]; then
|
2019-02-13 14:04:12 +01:00
|
|
|
# shellcheck disable=SC2086
|
2018-08-10 03:54:26 +02:00
|
|
|
cd "${abs_top_builddir:-../../..}/src/rust" && \
|
2018-08-10 03:09:18 +02:00
|
|
|
CARGO_TARGET_DIR="${abs_top_builddir:-../../..}/src/rust/target" \
|
2019-02-01 19:53:40 +01:00
|
|
|
"${CARGO:-cargo}" test "${CARGO_ONLINE-'--frozen'}" \
|
2018-10-02 07:54:20 +02:00
|
|
|
--features "test_linking_hack" \
|
2019-02-01 19:53:40 +01:00
|
|
|
--target "$rustc_host" \
|
2019-02-13 14:04:12 +01:00
|
|
|
${EXTRA_CARGO_OPTIONS} \
|
2018-08-10 03:09:18 +02:00
|
|
|
--manifest-path "${cargo_toml_dir}/Cargo.toml" || exitcode=1
|
|
|
|
fi
|
2017-04-29 13:17:22 +02:00
|
|
|
done
|
|
|
|
|
|
|
|
exit $exitcode
|