From 13ca339e4aaae33f9de88934ed29384433a81387 Mon Sep 17 00:00:00 2001
From: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
Date: Fri, 12 Apr 2024 13:08:34 +0300
Subject: [PATCH] Adjust zombienet test resources and logic (#4032)

One more try to make this test robust from a resource perspective.

---------

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Co-authored-by: Javier Viola <javier@parity.io>
---
 .gitlab/pipeline/zombienet/polkadot.yml             |  2 ++
 .../0001-basic-3cores-6s-blocks.toml                | 13 +++++++++++--
 .../0001-basic-3cores-6s-blocks.zndsl               | 10 +++++-----
 .../zombienet_tests/elastic_scaling/assign-core.js  |  6 ++----
 4 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/.gitlab/pipeline/zombienet/polkadot.yml b/.gitlab/pipeline/zombienet/polkadot.yml
index ba05c709a27..6b72075c513 100644
--- a/.gitlab/pipeline/zombienet/polkadot.yml
+++ b/.gitlab/pipeline/zombienet/polkadot.yml
@@ -161,6 +161,8 @@ zombienet-polkadot-functional-0011-async-backing-6-seconds-rate:
 zombienet-polkadot-elastic-scaling-0001-basic-3cores-6s-blocks:
   extends:
     - .zombienet-polkadot-common
+  variables:
+    FORCED_INFRA_INSTANCE: "spot-iops"
   script:
     - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
       --local-dir="${LOCAL_DIR}/elastic_scaling"
diff --git a/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.toml b/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.toml
index db508e14dba..83f5434eddd 100644
--- a/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.toml
+++ b/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.toml
@@ -20,8 +20,8 @@ chain = "rococo-local"
 default_command = "polkadot"
 
   [relaychain.default_resources]
-  limits = { memory = "4G", cpu = "2" }
-  requests = { memory = "2G", cpu = "1" }
+  limits = { memory = "4G", cpu = "3" }
+  requests = { memory = "4G", cpu = "3" }
 
   [[relaychain.node_groups]]
   name = "elastic-validator"
@@ -32,11 +32,20 @@ default_command = "polkadot"
 [[parachains]]
 id = {{id}}
 addToGenesis = true
+    [parachains.default_resources]
+    limits = { memory = "4G", cpu = "3" }
+    requests = { memory = "4G", cpu = "3" }
 
     [parachains.collator]
     name = "some-parachain"
     image = "{{COL_IMAGE}}"
     command = "adder-collator"
     args = ["-lparachain::collation-generation=trace,parachain::collator-protocol=trace,parachain=debug"]
+
 {% endfor %}
 
+# This represents the layout of the adder collator block header.
+[types.Header]
+number = "u64"
+parent_hash = "Hash"
+post_state = "Hash"
\ No newline at end of file
diff --git a/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.zndsl b/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.zndsl
index b9c00245754..d624cbaf9df 100644
--- a/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.zndsl
+++ b/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.zndsl
@@ -18,11 +18,11 @@ elastic-validator-0: js-script ./assign-core.js with "2000,1" return is 0 within
 elastic-validator-0: reports substrate_block_height{status="best"} is at least 20 within 600 seconds
 
 # Non elastic parachain should progress normally
-some-parachain-1: count of log lines containing "Parachain velocity: 1" is at least 9 within 20 seconds
+some-parachain-1: count of log lines containing "Parachain velocity: 1" is at least 5 within 20 seconds
 # Sanity
-some-parachain-1: count of log lines containing "Parachain velocity: 2" is 0 within 20 seconds
+some-parachain-1: count of log lines containing "Parachain velocity: 2" is 0
 
-# Parachain should progress 3 blocks per relay chain block ideally, however this measurement does 
-# `ceil()` on the actual velocity to account for CI overload.
-some-parachain: count of log lines containing "Parachain velocity: 3" is at least 9 within 20 seconds
+# Parachain should progress 3 blocks per relay chain block ideally, however CI might not be
+# the most performant environment so we'd just use a lower bound of 2 blocks per RCB
+elastic-validator-0: parachain 2000 block height is at least 20 within 200 seconds
 
diff --git a/polkadot/zombienet_tests/elastic_scaling/assign-core.js b/polkadot/zombienet_tests/elastic_scaling/assign-core.js
index 2e5f9d8cfa5..add63b6d308 100644
--- a/polkadot/zombienet_tests/elastic_scaling/assign-core.js
+++ b/polkadot/zombienet_tests/elastic_scaling/assign-core.js
@@ -1,6 +1,6 @@
 async function run(nodeName, networkInfo, args) {
-  const { wsUri, userDefinedTypes } = networkInfo.nodesByName[nodeName];
-  const api = await zombie.connect(wsUri, userDefinedTypes);
+  const wsUri = networkInfo.nodesByName[nodeName].wsUri;
+  const api = await zombie.connect(wsUri);
 
   let para = Number(args[0]);
   let core = Number(args[1]);
@@ -33,8 +33,6 @@ async function run(nodeName, networkInfo, args) {
       });
   });
 
-
-
   return 0;
 }
 
-- 
GitLab