From f3b806b471e55925464e09c71a77bd25d1611906 Mon Sep 17 00:00:00 2001 From: gabriel klawitter Date: Mon, 1 Oct 2018 11:55:17 +0100 Subject: [PATCH] test.sh: use cargo --target for platforms other than linux, win or mac (#9650) * test.sh: use cargo --target for platforms other than linux, win or mac * drying test.sh script * run tests only when not cross-compiling * quote variable value --- .gitlab-ci.yml | 8 +++++ test.sh | 81 +++++++++++++++++++++++++++++++++++--------------- 2 files changed, 65 insertions(+), 24 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 509ef1262..56abf1871 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -53,6 +53,8 @@ cache: test-linux-rust-stable: &test stage: test + variables: + RUN_TESTS: "true" script: - scripts/gitlab/test.sh stable tags: @@ -60,6 +62,8 @@ test-linux-rust-stable: &test test-linux-rust-beta: stage: test + variables: + RUN_TESTS: "true" script: - scripts/gitlab/test.sh beta tags: @@ -68,6 +72,8 @@ test-linux-rust-beta: test-linux-rust-nightly: stage: test + variables: + RUN_TESTS: "true" script: - scripts/gitlab/test.sh nightly tags: @@ -80,6 +86,7 @@ test-darwin-rust-stable: CARGO_TARGET: x86_64-apple-darwin CC: gcc CXX: g++ + RUN_TESTS: "true" script: - scripts/gitlab/test.sh stable tags: @@ -107,6 +114,7 @@ test-windows-rust-stable: # No cargo caching, since fetch-locking on Windows gets stuck variables: CARGO_TARGET: x86_64-pc-windows-msvc + RUN_TESTS: "true" script: - sh scripts/gitlab/test.sh stable tags: diff --git a/test.sh b/test.sh index a3ed39e8d..8c33f5ee2 100755 --- a/test.sh +++ b/test.sh @@ -4,6 +4,7 @@ FEATURES="json-tests,ci-skip-issue" OPTIONS="--release" VALIDATE=1 +THREADS=8 case $1 in --no-json) @@ -29,31 +30,63 @@ esac set -e -if [ "$VALIDATE" -eq "1" ]; then -# Validate --no-default-features build -echo "________Validate build________" -time cargo check --no-default-features -time cargo check --manifest-path util/io/Cargo.toml --no-default-features -time cargo check --manifest-path util/io/Cargo.toml --features "mio" -# Validate chainspecs -echo "________Validate chainspecs________" -time ./scripts/validate_chainspecs.sh +validate () { + if [ "$VALIDATE" -eq "1" ] + then + echo "________Validate build________" + time cargo check $@ --no-default-features + time cargo check $@ --manifest-path util/io/Cargo.toml --no-default-features + time cargo check $@ --manifest-path util/io/Cargo.toml --features "mio" + + # Validate chainspecs + echo "________Validate chainspecs________" + time ./scripts/validate_chainspecs.sh + else + echo "# not validating due to \$VALIDATE!=1" + fi +} + +cpp_test () { + # Running the C++ example + echo "________Running the C++ example________" + cd parity-clib-examples/cpp && \ + mkdir -p build && \ + cd build && \ + cmake .. && \ + make -j $THREADS && \ + ./parity-example && \ + cd .. && \ + rm -rf build && \ + cd ../.. +} + +cargo_test () { + echo "________Running Parity Full Test Suite________" + git submodule update --init --recursive + time cargo test $OPTIONS --features "$FEATURES" --all $@ -- --test-threads $THREADS +} + + +if [ "$CARGO_TARGET" ] +then + validate --target $CARGO_TARGET +else + validate fi -# Running the C++ example -echo "________Running the C++ example________" -cd parity-clib-examples/cpp && \ - mkdir -p build && \ - cd build && \ - cmake .. && \ - make -j 8 && \ - ./parity-example && \ - cd .. && \ - rm -rf build && \ - cd ../.. +test "${RUN_TESTS}" = "true" && cpp_test + +if [ "$CARGO_TARGET" ] +then + + if [ "${RUN_TESTS}" = "true" ] + then + cargo_test --target $CARGO_TARGET $@ + else + cargo_test --no-run --target $CARGO_TARGET $@ + fi +else + cargo_test $@ +fi -# Running tests -echo "________Running Parity Full Test Suite________" -git submodule update --init --recursive -time cargo test $OPTIONS --features "$FEATURES" --all $1 -- --test-threads 8