feat(bonding): Add simple suite for minimal coverage
[csit.git] / resources / libraries / bash / function / common.sh
index 4f104db..9fd208b 100644 (file)
@@ -17,11 +17,6 @@ set -exuo pipefail
 # This library defines functions used by multiple entry scripts.
 # Keep functions ordered alphabetically, please.
 
-# TODO: Add a link to bash style guide.
-# TODO: Consider putting every die into a {} block,
-#   the code might become more readable (but longer).
-
-
 function activate_docker_topology () {
 
     # Create virtual vpp-device topology. Output of the function is topology
@@ -124,9 +119,9 @@ function activate_virtualenv () {
     env_dir="${root_path}/env"
     req_path=${2-$CSIT_DIR/requirements.txt}
     rm -rf "${env_dir}" || die "Failed to clean previous virtualenv."
-    pip3 install virtualenv==20.15.1 || {
-        die "Virtualenv package install failed."
-    }
+    #pip3 install virtualenv==20.26.3 || {
+    #    die "Virtualenv package install failed."
+    #}
     virtualenv --no-download --python=$(which python3) "${env_dir}" || {
         die "Virtualenv creation for $(which python3) failed."
     }
@@ -492,10 +487,6 @@ function get_test_code () {
             NODENESS="2n"
             FLAVOR="zn2"
             ;;
-        *"2n-clx")
-            NODENESS="2n"
-            FLAVOR="clx"
-            ;;
         *"2n-icx")
             NODENESS="2n"
             FLAVOR="icx"
@@ -524,25 +515,19 @@ function get_test_code () {
             NODENESS="3n"
             FLAVOR="icxd"
             ;;
-        *"2n-tx2")
-            NODENESS="2n"
-            FLAVOR="tx2"
-            ;;
-        *"3n-tsh")
-            NODENESS="3n"
-            FLAVOR="tsh"
-            ;;
         *"3n-alt")
             NODENESS="3n"
             FLAVOR="alt"
             ;;
-        *"2n-x-"*)
-            NODENESS="2n"
-            FLAVOR="${TEST_CODE#*2n-}"
+        *"-x-2n"*)
+            TESTBED="${TEST_CODE#${TEST_CODE%2n*}}"
+            NODENESS="${TESTBED%-${TEST_CODE#*-x-2n*-}}"
+            FLAVOR="${TEST_CODE#*-x-2n*-}"
             ;;
-        *"3n-x-"*)
-            NODENESS="3n"
-            FLAVOR="${TEST_CODE#*3n-}"
+        *"-x-3n"*)
+            TESTBED="${TEST_CODE#${TEST_CODE%3n*}}"
+            NODENESS="${TESTBED%-${TEST_CODE#*-x-3n*-}}"
+            FLAVOR="${TEST_CODE#*-x-3n*-}"
             ;;
     esac
 }
@@ -878,6 +863,11 @@ function select_arch_os () {
                     VPP_VER_FILE="VPP_STABLE_VER_UBUNTU_JAMMY"
                     PKG_SUFFIX="deb"
                     ;;
+                *"LTS (Noble Numbat)"*)
+                    IMAGE_VER_FILE="VPP_DEVICE_IMAGE_UBUNTU_NOBLE"
+                    VPP_VER_FILE="VPP_STABLE_VER_UBUNTU_NOBLE"
+                    PKG_SUFFIX="deb"
+                    ;;
                 *)
                     die "Unsupported Ubuntu version!"
                     ;;
@@ -952,9 +942,6 @@ function select_tags () {
         *"3n-icxd")
             default_nic="nic_intel-e823c"
             ;;
-        *"3n-tsh")
-            default_nic="nic_intel-x520-da2"
-            ;;
         *"3n-icx" | *"2n-icx")
             default_nic="nic_intel-e810cq"
             ;;
@@ -967,10 +954,10 @@ function select_tags () {
         *"2n-spr")
             default_nic="nic_intel-e810cq"
             ;;
-        *"2n-clx" | *"2n-zn2")
+        *"2n-zn2")
             default_nic="nic_intel-xxv710"
             ;;
-        *"2n-tx2" | *"3n-alt")
+        *"3n-alt")
             default_nic="nic_intel-xl710"
             ;;
         *"1n-aws" | *"2n-aws" | *"3n-aws")
@@ -982,7 +969,7 @@ function select_tags () {
         *"1n-c6in" | *"2n-c6in" | *"3n-c6in")
             default_nic="nic_amazon-nitro-200g"
             ;;
-        *"2n-x-"* | *"3n-x-"*)
+        *"-x-2n"* | *"-x-3n"*)
             default_nic="nic_intel-e810cq"
             ;;
         *)
@@ -995,7 +982,6 @@ function select_tags () {
     awk_nics_sub_cmd+='gsub("xxv710","25ge2p1xxv710");'
     awk_nics_sub_cmd+='gsub("x710","10ge2p1x710");'
     awk_nics_sub_cmd+='gsub("xl710","40ge2p1xl710");'
-    awk_nics_sub_cmd+='gsub("x520-da2","10ge2p1x520");'
     awk_nics_sub_cmd+='gsub("cx556a","100ge2p1cx556a");'
     awk_nics_sub_cmd+='gsub("2p1cx7veat","200ge2p1cx7veat");'
     awk_nics_sub_cmd+='gsub("6p3cx7veat","200ge6p3cx7veat");'
@@ -1106,17 +1092,11 @@ function select_tags () {
         *"1n-alt")
             test_tag_array+=("!flow")
             ;;
-        *"2n-clx")
-            test_tag_array+=("!ipsechw")
-            ;;
         *"2n-icx")
             test_tag_array+=("!ipsechw")
             ;;
         *"2n-spr")
             ;;
-        *"2n-tx2")
-            test_tag_array+=("!ipsechw")
-            ;;
         *"2n-zn2")
             test_tag_array+=("!ipsechw")
             ;;
@@ -1135,10 +1115,6 @@ function select_tags () {
             ;;
         *"3nb-spr")
             ;;
-        *"3n-tsh")
-            test_tag_array+=("!drv_avf")
-            test_tag_array+=("!ipsechw")
-            ;;
         *"1n-aws" | *"2n-aws" | *"3n-aws")
             test_tag_array+=("!ipsechw")
             ;;
@@ -1148,7 +1124,7 @@ function select_tags () {
         *"1n-c6in" | *"2n-c6in" | *"3n-c6in")
             test_tag_array+=("!ipsechw")
             ;;
-        *"2n-x-"* | *"3n-x-"*)
+        *"-x-2n"* | *"-x-3n"*)
             ;;
     esac
 
@@ -1210,103 +1186,90 @@ function select_topology () {
 
     set -exuo pipefail
 
-    case_text="${NODENESS}_${FLAVOR}"
-    case "${case_text}" in
-        "1n_aws")
+    case "${TEST_CODE}" in
+        *"1n-aws")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*1n-aws*.yaml )
             TOPOLOGIES_TAGS="1_node_single_link_topo"
             ;;
-        "1n_c6in")
+        *"1n-c6in")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*1n-c6in*.yaml )
             TOPOLOGIES_TAGS="1_node_single_link_topo"
             ;;
-        "1n_alt" | "1n_spr")
+        *"1n-alt" | *"1n-spr")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*vpp_device*.template )
             TOPOLOGIES_TAGS="2_node_single_link_topo"
             ;;
-        "1n_vbox")
+        *"1n-vbox")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*vpp_device*.template )
             TOPOLOGIES_TAGS="2_node_single_link_topo"
             ;;
-        "2n_aws")
+        *"2n-aws")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n-aws*.yaml )
             TOPOLOGIES_TAGS="2_node_single_link_topo"
             ;;
-        "2n_c7gn")
+        *"2n-c7gn")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n-c7gn*.yaml )
             TOPOLOGIES_TAGS="2_node_single_link_topo"
             ;;
-        "2n_c6in")
+        *"2n-c6in")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n-c6in*.yaml )
             TOPOLOGIES_TAGS="2_node_single_link_topo"
             ;;
-        "2n_clx")
-            TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_clx_*.yaml )
-            TOPOLOGIES_TAGS="2_node_*_link_topo"
-            ;;
-        "2n_icx")
+        *"2n-icx")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_icx_*.yaml )
             TOPOLOGIES_TAGS="2_node_*_link_topo"
             ;;
-        "2n_spr")
+        *"2n-spr")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_spr_*.yaml )
             TOPOLOGIES_TAGS="2_node_*_link_topo"
             ;;
-        "2n_tx2")
-            TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_tx2_*.yaml )
-            TOPOLOGIES_TAGS="2_node_single_link_topo"
-            ;;
-        "2n_zn2")
+        *"2n-zn2")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_zn2_*.yaml )
             TOPOLOGIES_TAGS="2_node_*_link_topo"
             ;;
-        "3n_alt")
+        *"3n-alt")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_alt_*.yaml )
             TOPOLOGIES_TAGS="3_node_single_link_topo"
             ;;
-        "3n_aws")
+        *"3n-aws")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n-aws*.yaml )
             TOPOLOGIES_TAGS="3_node_single_link_topo"
             ;;
-        "3n_c7gn")
+        *"3n-c7gn")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n-c7gn*.yaml )
             TOPOLOGIES_TAGS="3_node_single_link_topo"
             ;;
-        "3n_c6in")
+        *"3n-c6in")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n-c6in*.yaml )
             TOPOLOGIES_TAGS="3_node_single_link_topo"
             ;;
-        "3n_icx")
+        *"3n-icx")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_icx_*.yaml )
             # Trailing underscore is needed to distinguish from 3n_icxd.
             TOPOLOGIES_TAGS="3_node_*_link_topo"
             ;;
-        "3n_icxd")
+        *"3n-icxd")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_icxd_*.yaml )
             TOPOLOGIES_TAGS="3_node_single_link_topo"
             ;;
-        "3n_snr")
+        *"3n-snr")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_snr_*.yaml )
             TOPOLOGIES_TAGS="3_node_single_link_topo"
             ;;
-        "3n_tsh")
-            TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_tsh_*.yaml )
-            TOPOLOGIES_TAGS="3_node_single_link_topo"
-            ;;
-        "3na_spr")
+        *"3na-spr")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3na_spr_*.yaml )
             TOPOLOGIES_TAGS="3_node_*_link_topo"
             ;;
-        "3nb_spr")
+        *"3nb-spr")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3nb_spr_*.yaml )
             TOPOLOGIES_TAGS="3_node_*_link_topo"
             ;;
-        "2n_x"*)
-            TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_"${FLAVOR}"*.yaml )
+        *"-x-2n"*)
+            TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*_x_"${NODENESS}_${FLAVOR}"*.yaml )
             TOPOLOGIES_TAGS="2_node_single_link_topo"
             ;;
-        "3n_x"*)
-            TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_"${FLAVOR}"*.yaml )
+        *"-x-3n"*)
+            TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*_x_"${NODENESS}_${FLAVOR}"*.yaml )
             TOPOLOGIES_TAGS="3_node_single_link_topo"
             ;;
         *)
@@ -1362,8 +1325,11 @@ function set_environment_variables () {
             # Maciek's workaround for Zen2 with lower amount of cores.
             export TREX_CORE_COUNT=14
             ;;
-        *"2n-x-"* | *"3n-x-"* )
-            export TREX_CORE_COUNT=2
+        *"-x-2n"* | *"-x-3n"* )
+            export TREX_CORE_COUNT=14
+            export TREX_PORT_MTU=9000
+            # Settings to prevent duration stretching.
+            export PERF_TRIAL_STL_DELAY=0.12
             ;;
     esac
 }