CSIT-1297: Modify the bootstrap.sh to run only selected mrr suites
[csit.git] / resources / libraries / bash / function / common.sh
index b3a06d4..a8ce456 100644 (file)
@@ -47,7 +47,7 @@ function activate_virtualenv () {
     pip install --upgrade virtualenv || {
         die "Virtualenv package install failed."
     }
-    virtualenv --system-site-packages "${ENV_DIR}" || {
+    virtualenv "${ENV_DIR}" || {
         die "Virtualenv creation failed."
     }
     set +u
@@ -303,9 +303,6 @@ function reserve_testbed () {
             if [[ "${result}" == "0" ]]; then
                 WORKING_TOPOLOGY="${topo}"
                 echo "Reserved: ${WORKING_TOPOLOGY}"
-                python "${PYTHON_SCRIPTS_DIR}/topo_cleanup.py" -t "${topo}" || {
-                    die "Testbed cleanup failed."
-                }
                 trap "untrap_and_unreserve_testbed" EXIT || {
                     message="TRAP ATTEMPT AND UNRESERVE FAILED, FIX MANUALLY."
                     untrap_and_unreserve_testbed "${message}" || {
@@ -313,6 +310,9 @@ function reserve_testbed () {
                     }
                     die "Trap attempt failed, unreserve succeeded. Aborting."
                 }
+                python "${PYTHON_SCRIPTS_DIR}/topo_cleanup.py" -t "${topo}" || {
+                    die "Testbed cleanup failed."
+                }
                 break
             fi
         done
@@ -391,8 +391,6 @@ function select_tags () {
     # Variables set:
     # - TAGS - Array of processed tag boolean expressions.
 
-    # TODO: Empty exclude_nics (with failing grep) is expected,
-    #       but others possible errors coule be checked explicitly.
     # NIC SELECTION
     # All topologies NICs
     available=$(grep -hoPR "model: \K.*" "${TOPOLOGIES_DIR}"/* | sort -u)
@@ -408,28 +406,98 @@ function select_tags () {
                             "ndrpdrAND78bAND1c")
             ;;
         *"mrr-daily"* | *"mrr-weekly"* )
-            test_tag_array=("mrrAND64bAND1c"
-                            "mrrAND64bAND2c"
-                            "mrrAND64bAND4c"
-                            "mrrAND78bAND1c"
-                            "mrrAND78bAND2c"
-                            "mrrAND78bAND4c"
-                            "mrrANDimixAND1cANDvhost"
-                            "mrrANDimixAND2cANDvhost"
-                            "mrrANDimixAND4cANDvhost"
-                            "mrrANDimixAND1cANDmemif"
-                            "mrrANDimixAND2cANDmemif"
-                            "mrrANDimixAND4cANDmemif")
+            test_tag_array=(# vic
+                            "mrrANDnic_cisco-vic-1227AND64b"
+                            "mrrANDnic_cisco-vic-1385AND64b"
+                            # memif
+                            "mrrANDmemifAND64b"
+                            "mrrANDmemifANDimix"
+                            # crypto
+                            "mrrANDipsecAND64b"
+                            # ip4 base
+                            "mrrANDip4baseAND64b"
+                            # ip4 scale FIB 2M
+                            "mrrANDip4fwdANDfib_2mAND64b"
+                            # ip4 scale FIB 200k
+                            "mrrANDip4fwdANDfib_200kANDnic_intel-*710AND64b"
+                            # ip4 scale FIB 20k
+                            "mrrANDip4fwdANDfib_20kANDnic_intel-*710AND64b"
+                            # ip4 scale ACL
+                            "mrrANDip4fwdANDacl1AND10k_flowsAND64b"
+                            "mrrANDip4fwdANDacl50AND10k_flowsAND64b"
+                            # ip4 scale NAT44
+                            "mrrANDip4fwdANDnat44ANDbaseAND64b"
+                            "mrrANDip4fwdANDnat44ANDsrc_user_4000AND64b"
+                            # ip4 features
+                            "mrrANDip4fwdANDfeatureANDnic_intel-*710AND64b"
+                            # ip4 tunnels
+                            "mrrANDip4fwdANDencapANDip6unrlayANDip4ovrlayANDnic_intel-x520-da2AND64b"
+                            "mrrANDip4fwdANDencapANDnic_intel-*710AND64b"
+                            "mrrANDl2ovrlayANDencapANDnic_intel-*710AND64b"
+                            # ip6 base
+                            "mrrANDip6baseANDethAND78b"
+                            # ip6 features
+                            "mrrANDip6fwdANDfeatureANDnic_intel-*710AND78b"
+                            # ip6 scale FIB 2M
+                            "mrrANDip6fwdANDfib_2mANDnic_intel-*710AND78b"
+                            # ip6 scale FIB 200k
+                            "mrrANDip6fwdANDfib_200kANDnic_intel-*710AND78b"
+                            # ip6 scale FIB 20k
+                            "mrrANDip6fwdANDfib_20kANDnic_intel-*710AND78b"
+                            # ip6 tunnels
+                            "mrrANDip6fwdANDencapANDnic_intel-x520-da2AND78b"
+                            # l2xc base
+                            "mrrANDl2xcfwdANDbaseAND64b"
+                            # l2xc scale ACL
+                            "mrrANDl2xcANDacl1AND10k_flowsAND64b"
+                            "mrrANDl2xcANDacl50AND10k_flowsAND64b"
+                            # l2xc scale FIB 2M
+                            "mrrANDl2xcANDfib_2mAND64b"
+                            # l2xc scale FIB 200k
+                            "mrrANDl2xcANDfib_200kANDnic_intel-*710AND64b"
+                            # l2xc scale FIB 20k
+                            "mrrANDl2xcANDfib_20kANDnic_intel-*710AND64b"
+                            # l2bd base
+                            "mrrANDl2bdmaclrnANDbaseAND64b"
+                            # l2bd scale ACL
+                            "mrrANDl2bdmaclrnANDacl1AND10k_flowsAND64b"
+                            "mrrANDl2bdmaclrnANDacl50AND10k_flowsAND64b"
+                            # l2bd scale FIB 2M
+                            "mrrANDl2bdmaclrnANDfib_2mAND64b"
+                            # l2bd scale FIB 200k
+                            "mrrANDl2bdmaclrnANDfib_200kANDnic_intel-*710AND64b"
+                            # l2bd scale FIB 20k
+                            "mrrANDl2bdmaclrnANDfib_20kANDnic_intel-*710AND64b"
+                            # l2 patch base
+                            "mrrANDl2patchAND64b"
+                            # srv6
+                            "mrrANDsrv6ANDnic_intel-x520-da2AND78b"
+                            # vts
+                            "mrrANDvtsANDnic_intel-x520-da2AND114b"
+                            # vm vhost l2xc base
+                            "mrrANDvhostANDl2xcfwdANDbaseAND64b"
+                            "mrrANDvhostANDl2xcfwdANDbaseANDimix"
+                            # vm vhost l2bd base
+                            "mrrANDvhostANDl2bdmaclrnANDbaseAND64b"
+                            "mrrANDvhostANDl2bdmaclrnANDbaseANDimix"
+                            # vm vhost ip4 base
+                            "mrrANDvhostANDip4baseAND64b"
+                            "mrrANDvhostANDip4baseANDimix"
+                            # Exclude
+                            "!vhost_256ANDnic_intel-x520-da2"
+                            "!vhostANDnic_intel-xl710"
+                            "!cfs_opt"
+                            "!lbond_dpdk")
             ;;
         * )
             if [[ -z "${TEST_TAG_STRING-}" ]]; then
                 # If nothing is specified, we will run pre-selected tests by
-                # following tags. Items of array will be concatenated by OR
-                # in Robot Framework.
+                # following tags.
                 test_tag_array=("mrrANDnic_intel-x710AND1cAND64bANDip4base"
                                 "mrrANDnic_intel-x710AND1cAND78bANDip6base"
                                 "mrrANDnic_intel-x710AND1cAND64bANDl2bdbase"
-                                "mrrANDnic_intel-x710AND1cAND64bANDl2xcbase")
+                                "mrrANDnic_intel-x710AND1cAND64bANDl2xcbase"
+                                "!dot1q")
             else
                 # If trigger contains tags, split them into array.
                 test_tag_array=(${TEST_TAG_STRING//:/ })
@@ -437,6 +505,23 @@ function select_tags () {
             ;;
     esac
 
+    # Blacklisting certain tags per topology.
+    case "${TEST_CODE}" in
+        *"3n-hsw"*)
+            test_tag_array+=("!drv_avf")
+            ;;
+        *"2n-skx"*)
+            test_tag_array+=("!ipsechw")
+            ;;
+        *"3n-skx"*)
+            test_tag_array+=("!ipsechw")
+            ;;
+        *)
+            # Default to 3n-hsw due to compatibility.
+            test_tag_array+=("!drv_avf")
+            ;;
+    esac
+
     # We will add excluded NICs.
     test_tag_array+=("${exclude_nics[@]/#/!NIC_}")
 
@@ -484,7 +569,7 @@ function select_topology () {
                         "${TOPOLOGIES_DIR}/lf_3n_hsw_testbed2.yaml"
                         "${TOPOLOGIES_DIR}/lf_3n_hsw_testbed3.yaml"
                        )
-            TOPOLOGIES_TAGS="3_node_*_link_topo"
+            TOPOLOGIES_TAGS="3_node_single_link_topo"
             ;;
         "2n_skx")
             TOPOLOGIES=(