From d54e20708d9415e8cfe16f66ce7b8196f045d75a Mon Sep 17 00:00:00 2001 From: Andrei Sandu <54316454+sandreim@users.noreply.github.com> Date: Mon, 18 Jul 2022 13:55:38 +0300 Subject: [PATCH] Zombienet: paritydb test (#5310) * Add test Signed-off-by: Andrei Sandu * gitlab integration Signed-off-by: Andrei Sandu * tune test Signed-off-by: Andrei Sandu * Try waiting for nodes to be up before checks Signed-off-by: Andrei Sandu * Use js check for paritydb folder Signed-off-by: Andrei Sandu * artifacts true Signed-off-by: Andrei Sandu * change error message Signed-off-by: Andrei Sandu * debug Signed-off-by: Andrei Sandu * try again Signed-off-by: Andrei Sandu * use log line contains for test * bump zombienet verision for test * Is approval checking lag 0 on rocksdb ? Signed-off-by: Andrei Sandu * Is approval checking lag 1 with paritydb ? Signed-off-by: Andrei Sandu * update zombienet test for parityDb * Update zombienet_tests/misc/0001-check_paritydb.sh Co-authored-by: Chevdor Co-authored-by: Javier Viola Co-authored-by: Chevdor --- polkadot/.gitlab-ci.yml | 28 ++++++ .../misc/0001-check_paritydb.sh | 1 + .../misc/0001-paritydb.feature | 91 +++++++++++++++++++ .../zombienet_tests/misc/0001-paritydb.toml | 40 ++++++++ 4 files changed, 160 insertions(+) create mode 100644 polkadot/zombienet_tests/misc/0001-check_paritydb.sh create mode 100644 polkadot/zombienet_tests/misc/0001-paritydb.feature create mode 100644 polkadot/zombienet_tests/misc/0001-paritydb.toml diff --git a/polkadot/.gitlab-ci.yml b/polkadot/.gitlab-ci.yml index 5bbba30f4e..a46f3b5915 100644 --- a/polkadot/.gitlab-ci.yml +++ b/polkadot/.gitlab-ci.yml @@ -755,6 +755,34 @@ zombienet-test-parachains-upgrade-smoke-test: tags: - zombienet-polkadot-integration-test +zombienet-tests-misc-paritydb: + stage: stage3 + <<: *kubernetes-env + <<: *zombienet-refs + image: "docker.io/paritytech/zombienet:v1.2.49" + needs: + - job: publish-polkadot-debug-image + - job: publish-test-collators-image + artifacts: true + variables: + GH_DIR: "https://github.com/paritytech/polkadot/tree/${CI_COMMIT_SHORT_SHA}/zombienet_tests/misc" + before_script: + - echo "Zombie-net Tests Config" + - echo "${ZOMBIENET_IMAGE_NAME}" + - echo "${PARACHAINS_IMAGE_NAME} ${PARACHAINS_IMAGE_TAG}" + - echo "${GH_DIR}" + - export DEBUG=zombie,zombie::network-node + - export ZOMBIENET_INTEGRATION_TEST_IMAGE=${PARACHAINS_IMAGE_NAME}:${PARACHAINS_IMAGE_TAG} + - export COL_IMAGE=${COLLATOR_IMAGE_NAME}:${COLLATOR_IMAGE_TAG} + script: + - /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh + --github-remote-dir="${GH_DIR}" + --test="0001-paritydb.feature" + allow_failure: false + retry: 2 + tags: + - zombienet-polkadot-integration-test + zombienet-tests-malus-dispute-valid: stage: stage3 image: "${ZOMBIENET_IMAGE}" diff --git a/polkadot/zombienet_tests/misc/0001-check_paritydb.sh b/polkadot/zombienet_tests/misc/0001-check_paritydb.sh new file mode 100644 index 0000000000..127efe592d --- /dev/null +++ b/polkadot/zombienet_tests/misc/0001-check_paritydb.sh @@ -0,0 +1 @@ +ls /data/chains/rococo_local_testnet/paritydb/full 2>/dev/null diff --git a/polkadot/zombienet_tests/misc/0001-paritydb.feature b/polkadot/zombienet_tests/misc/0001-paritydb.feature new file mode 100644 index 0000000000..2ed448321f --- /dev/null +++ b/polkadot/zombienet_tests/misc/0001-paritydb.feature @@ -0,0 +1,91 @@ +Description: Check that paritydb works without affecting finality lag and block production. +Network: ./0001-paritydb.toml +Creds: config + +validator-0: is up +validator-1: is up +validator-2: is up +validator-3: is up +validator-4: is up +validator-5: is up +validator-6: is up +validator-7: is up +validator-8: is up +validator-9: is up + +# Check if we are using ParityDB. +validator: log line contains "Database: ParityDb" +validator: run ./0001-check_paritydb.sh within 60 seconds + +# Check authority status and peers. +validator-0: reports node_roles is 4 +validator-1: reports node_roles is 4 +validator-2: reports node_roles is 4 +validator-3: reports node_roles is 4 +validator-4: reports node_roles is 4 +validator-5: reports node_roles is 4 +validator-6: reports node_roles is 4 +validator-7: reports node_roles is 4 +validator-8: reports node_roles is 4 +validator-9: reports node_roles is 4 + +# Ensure parachains are registered. +validator-0: parachain 2000 is registered +validator-0: parachain 2001 is registered +validator-0: parachain 2002 is registered +validator-0: parachain 2003 is registered +validator-0: parachain 2004 is registered +validator-0: parachain 2005 is registered +validator-0: parachain 2006 is registered +validator-0: parachain 2007 is registered +validator-0: parachain 2008 is registered +validator-0: parachain 2009 is registered + +# Check if network is fully connected. +validator-0: reports peers count is at least 19 within 20 seconds +validator-1: reports peers count is at least 19 within 20 seconds +validator-2: reports peers count is at least 19 within 20 seconds +validator-3: reports peers count is at least 19 within 20 seconds +validator-4: reports peers count is at least 19 within 20 seconds +validator-5: reports peers count is at least 19 within 20 seconds +validator-6: reports peers count is at least 19 within 20 seconds +validator-7: reports peers count is at least 19 within 20 seconds +validator-8: reports peers count is at least 19 within 20 seconds +validator-9: reports peers count is at least 19 within 20 seconds + +# Ensure parachains made some progress. +validator-0: parachain 2000 block height is at least 3 within 30 seconds +validator-0: parachain 2001 block height is at least 3 within 30 seconds +validator-0: parachain 2002 block height is at least 3 within 30 seconds +validator-0: parachain 2003 block height is at least 3 within 30 seconds +validator-0: parachain 2004 block height is at least 3 within 30 seconds +validator-0: parachain 2005 block height is at least 3 within 30 seconds +validator-0: parachain 2006 block height is at least 3 within 30 seconds +validator-0: parachain 2007 block height is at least 3 within 30 seconds +validator-0: parachain 2008 block height is at least 3 within 30 seconds +validator-0: parachain 2009 block height is at least 3 within 30 seconds + +# Check lag - approval +validator-0: reports polkadot_parachain_approval_checking_finality_lag is 0 +validator-1: reports polkadot_parachain_approval_checking_finality_lag is 0 +validator-2: reports polkadot_parachain_approval_checking_finality_lag is 0 +validator-3: reports polkadot_parachain_approval_checking_finality_lag is 0 +validator-4: reports polkadot_parachain_approval_checking_finality_lag is 0 +validator-5: reports polkadot_parachain_approval_checking_finality_lag is 0 +validator-6: reports polkadot_parachain_approval_checking_finality_lag is 0 +validator-7: reports polkadot_parachain_approval_checking_finality_lag is 0 +validator-8: reports polkadot_parachain_approval_checking_finality_lag is 0 +validator-9: reports polkadot_parachain_approval_checking_finality_lag is 0 + +# Check lag - dispute conclusion +validator-0: reports parachain_candidate_disputes_total is 0 +validator-1: reports parachain_candidate_disputes_total is 0 +validator-2: reports parachain_candidate_disputes_total is 0 +validator-3: reports parachain_candidate_disputes_total is 0 +validator-4: reports parachain_candidate_disputes_total is 0 +validator-5: reports parachain_candidate_disputes_total is 0 +validator-6: reports parachain_candidate_disputes_total is 0 +validator-7: reports parachain_candidate_disputes_total is 0 +validator-8: reports parachain_candidate_disputes_total is 0 +validator-9: reports parachain_candidate_disputes_total is 0 + diff --git a/polkadot/zombienet_tests/misc/0001-paritydb.toml b/polkadot/zombienet_tests/misc/0001-paritydb.toml new file mode 100644 index 0000000000..c40e0969d0 --- /dev/null +++ b/polkadot/zombienet_tests/misc/0001-paritydb.toml @@ -0,0 +1,40 @@ +[settings] +timeout = 1000 +bootnode = true + +[relaychain.genesis.runtime.runtime_genesis_config.configuration.config] + max_validators_per_core = 1 + needed_approvals = 3 + +[relaychain] +default_image = "{{ZOMBIENET_INTEGRATION_TEST_IMAGE}}" +chain = "rococo-local" +chain_spec_command = "polkadot build-spec --chain rococo-local" +default_command = "polkadot" + +[relaychain.default_resources] +limits = { memory = "4G", cpu = "2" } +requests = { memory = "2G", cpu = "1" } + + [[relaychain.node_groups]] + name = "validator" + count = 10 + args = ["-lparachain=debug", "--db=paritydb"] + +{% for id in range(2000,2010) %} +[[parachains]] +id = {{id}} +addToGenesis = true +genesis_state_generator = "undying-collator export-genesis-state --pov-size={{10000*(id-1999)}} --pvf-complexity={{id - 1999}}" + [parachains.collator] + name = "collator" + image = "{{COL_IMAGE}}" + command = "undying-collator" + args = ["-lparachain=debug", "--pov-size={{10000*(id-1999)}}", "--parachain-id={{id}}", "--pvf-complexity={{id - 1999}}"] + +{% endfor %} + +[types.Header] +number = "u64" +parent_hash = "Hash" +post_state = "Hash"