Browse Source

Make sure that the test_rust.sh script fails when a test fails

Exit codes from find(1) seem not to be so reliable as we had hoped.

Closes ticket 26258; bugfix on 0.3.3.4-alpha when we fixed #25560
Nick Mathewson 5 years ago
parent
commit
9d06c41c6e
2 changed files with 12 additions and 7 deletions
  1. 4 0
      changes/bug26258_033
  2. 8 7
      src/test/test_rust.sh

+ 4 - 0
changes/bug26258_033

@@ -0,0 +1,4 @@
+  o Major bugfixes (rust, testing):
+    - Fix a bug where a failure in the rust unit tests would not actually
+      cause the build to fail. Fixes bug 26258; bugfix on 0.3.3.4-alpha.
+

+ 8 - 7
src/test/test_rust.sh

@@ -3,13 +3,14 @@
 
 set -e
 
-CARGO_TARGET_DIR="${abs_top_builddir:-../../..}/src/rust/target" \
+
+for cargo_toml in "${abs_top_srcdir:-../../..}"/src/rust/*/Cargo.toml; do
+    CARGO_TARGET_DIR="${abs_top_builddir:-../../..}/src/rust/target" \
     CARGO_HOME="${abs_top_builddir:-../../..}/src/rust" \
-    find "${abs_top_srcdir:-../../..}/src/rust" \
-    -mindepth 2 -maxdepth 2 \
-    -type f -name 'Cargo.toml' \
-    -exec "${CARGO:-cargo}" test --all-features ${CARGO_ONLINE-"--frozen"} \
-    --manifest-path '{}' \;
+    "${CARGO:-cargo}" test --all-features ${CARGO_ONLINE-"--frozen"} \
+    --manifest-path "$cargo_toml" || exitcode=1
+done
+
+exit $exitcode
 
-exit $?