From 5bb6012396c237701785f49ea95c65ff1fb7601a Mon Sep 17 00:00:00 2001 From: Dmitry Novikov Date: Tue, 11 Jul 2023 19:34:38 +0200 Subject: [PATCH] ci: Speed up tests by giving correct arguments (#2917) --- .github/workflows/CI.yaml | 25 ++++++++---------------- Makefile | 10 +++++++++- gclient/tests/memory_dump.rs | 5 +++-- scripts/ci_build.sh | 4 ++-- scripts/src/test.sh | 38 ++++++++++++++++++++++++------------ 5 files changed, 48 insertions(+), 34 deletions(-) diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index fd47f48603b..54061692f01 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -182,16 +182,13 @@ jobs: run: ./scripts/gear.sh build examples-proc - name: "Test: Gear pallet tests with lazy pages" - run: | - cargo test -p pallet-gear --features=lazy-pages --release --locked - cargo test -p pallet-gear-debug --features=lazy-pages --release --locked - cargo test -p pallet-gear-payment --features=lazy-pages --release --locked + run: ./scripts/gear.sh test pallet --features lazy-pages --release --locked - name: "Test: Gear workspace" run: ./scripts/gear.sh test gear --exclude gclient --exclude gcli --exclude gsdk --features pallet-gear-debug/lazy-pages --release --locked - name: "Test: gsdk tests" - run: ./scripts/gear.sh test gsdk + run: ./scripts/gear.sh test gsdk --release - name: "Test: `gcli`" env: @@ -199,7 +196,7 @@ jobs: run: ./scripts/gear.sh test gcli --release --locked --retries 3 - name: "Test: Client tests" - run: ./scripts/gear.sh test client + run: ./scripts/gear.sh test client --release - name: "Test: Runtime benchmarks and benchmark tests work" run: | @@ -380,17 +377,15 @@ jobs: run: ./scripts/gear.sh build examples-proc - name: "Test: gsdk tests" - run: ./scripts/gear.sh test gsdk + run: ./scripts/gear.sh test gsdk --release - name: "Test: Client tests" - run: ./scripts/gear.sh test client + run: ./scripts/gear.sh test client --release - name: "Test: Lazy pages" run: >- cargo nextest run - -p pallet-gear - -p pallet-gear-debug - -p pallet-gear-payment + -p "pallet-*" -p gear-lazy-pages -p gear-runtime-interface --features=lazy-pages @@ -493,9 +488,7 @@ jobs: - name: "Test: Lazy pages" run: >- cargo xwin test - -p pallet-gear - -p pallet-gear-debug - -p pallet-gear-payment + -p "pallet-*" -p gear-lazy-pages -p gear-runtime-interface --features=lazy-pages @@ -556,9 +549,7 @@ jobs: - name: "Test: Lazy pages" run: >- cargo nextest run - -p pallet-gear - -p pallet-gear-debug - -p pallet-gear-payment + -p "pallet-*" -p gear-lazy-pages -p gear-runtime-interface --features=lazy-pages diff --git a/Makefile b/Makefile index 8cee5ed5bd3..37433dcd9d1 100644 --- a/Makefile +++ b/Makefile @@ -214,6 +214,10 @@ test-gear-release: examples # \ test-gsdk: node-release @ ./scripts/gear.sh test gsdk +.PHONY: test-gsdk-release +test-gsdk-release: node-release + @ ./scripts/gear.sh test gsdk --release + .PHONY: test-gcli test-gcli: node @ ./scripts/gear.sh test gcli @@ -232,7 +236,11 @@ test-pallet-release: .PHONY: test-client test-client: node-release examples - @ ./scripts/gear.sh test client --run-node + @ ./scripts/gear.sh test client + +.PHONY: test-client-release +test-client-release: node-release examples + @ ./scripts/gear.sh test client --release .PHONY: test-syscalls-integrity test-syscalls-integrity: diff --git a/gclient/tests/memory_dump.rs b/gclient/tests/memory_dump.rs index 45d899ae1e7..1c71b2a54b4 100644 --- a/gclient/tests/memory_dump.rs +++ b/gclient/tests/memory_dump.rs @@ -70,15 +70,16 @@ async fn memory_dump() -> Result<()> { // Check that blocks are still running assert!(listener.blocks_running().await?); // Calculate gas amount needed for initialization + let payload = b"15".to_vec(); let gas_info = api - .calculate_upload_gas(None, WASM_BINARY.to_vec(), vec![], 0, true) + .calculate_upload_gas(None, WASM_BINARY.to_vec(), payload.clone(), 0, true) .await?; // Upload and init the program let (message_id, program_id, _hash) = api .upload_program_bytes( WASM_BINARY, gclient::now_micros().to_le_bytes(), - b"15".to_vec(), + payload, gas_info.min_limit, 0, ) diff --git a/scripts/ci_build.sh b/scripts/ci_build.sh index 37042294c58..cfbb0140708 100755 --- a/scripts/ci_build.sh +++ b/scripts/ci_build.sh @@ -42,10 +42,10 @@ echo "Test: `gcli`" ./scripts/gear.sh test gcli --release --locked --retries 3 echo "Test: Client tests" - ./scripts/gear.sh test client + ./scripts/gear.sh test client --release echo "Test: gsdk tests" - ./scripts/gear.sh test gsdk + ./scripts/gear.sh test gsdk --release echo "Test: Runtime benchmarks and benchmark tests work" cargo build -p gear-cli --release --features=runtime-benchmarks,runtime-benchmarks-checkers diff --git a/scripts/src/test.sh b/scripts/src/test.sh index d64cb00aebc..1704653e6b3 100755 --- a/scripts/src/test.sh +++ b/scripts/src/test.sh @@ -41,25 +41,39 @@ workspace_test() { } gsdk_test() { - $CARGO test -p gsdk - $CARGO test -p gsdk --features vara-testing + if [ "$CARGO" = "cargo xwin" ]; then + $CARGO test -p gsdk "$@" + $CARGO test -p gsdk --features vara-testing "$@" + else + cargo nextest run -p gsdk --profile ci --no-fail-fast "$@" + cargo nextest run -p gsdk --features vara-testing --profile ci --no-fail-fast "$@" + fi } gcli_test() { - cargo nextest run -p gcli "$@" --profile ci --no-fail-fast - cargo nextest run -p gcli "$@" --features vara-testing --profile ci --no-fail-fast + if [ "$CARGO" = "cargo xwin" ]; then + $CARGO test -p gcli "$@" + $CARGO test -p gcli --features vara-testing "$@" + else + cargo nextest run -p gcli --profile ci --no-fail-fast "$@" + cargo nextest run -p gcli --features vara-testing --profile ci --no-fail-fast "$@" + fi } pallet_test() { - cargo test -p pallet-gear "$@" - cargo test -p pallet-gear-debug "$@" - cargo test -p pallet-gear-payment "$@" - cargo test -p pallet-gear-messenger "$@" - cargo test -p pallet-gear-gas "$@" + if [ "$CARGO" = "cargo xwin" ]; then + $CARGO test -p "pallet-*" "$@" + else + cargo nextest run -p "pallet-*" --profile ci --no-fail-fast "$@" + fi } client_tests() { - RUST_TEST_THREADS=1 $CARGO test -p gclient + if [ "$CARGO" = "cargo xwin" ]; then + $CARGO test -p gclient "$@" + else + cargo nextest run -p gclient --no-fail-fast "$@" + fi } validators() { @@ -81,12 +95,12 @@ run_fuzzer() { # TODO this is likely to be merged with `pallet_test` or `workspace_test` in #1802 syscalls_integrity_test() { - cargo test -p pallet-gear check_syscalls_integrity --features runtime-benchmarks "$@" + $CARGO test -p pallet-gear check_syscalls_integrity --features runtime-benchmarks "$@" } doc_test() { MANIFEST="$1" shift - __GEAR_WASM_BUILDER_NO_BUILD=1 SKIP_WASM_BUILD=1 SKIP_GEAR_RUNTIME_WASM_BUILD=1 SKIP_VARA_RUNTIME_WASM_BUILD=1 cargo test --doc --workspace --exclude runtime-fuzzer --exclude runtime-fuzzer-fuzz --manifest-path="$MANIFEST" -- "$@" + __GEAR_WASM_BUILDER_NO_BUILD=1 SKIP_WASM_BUILD=1 SKIP_GEAR_RUNTIME_WASM_BUILD=1 SKIP_VARA_RUNTIME_WASM_BUILD=1 $CARGO test --doc --workspace --exclude runtime-fuzzer --exclude runtime-fuzzer-fuzz --manifest-path="$MANIFEST" -- "$@" }