Tolerate base64 encoded Gerrit comments
[csit.git] / resources / libraries / bash / function / common.sh
index 8e0ee97..af59bc4 100644 (file)
@@ -145,7 +145,7 @@ function archive_tests () {
 
     set -exuo pipefail
 
-    tar c "${GENERATED_DIR}/tests" | xz -9e > "${ARCHIVE_DIR}/tests.tar.xz" || {
+    tar c "${GENERATED_DIR}/tests" | xz -3 > "${ARCHIVE_DIR}/tests.tar.xz" || {
         die "Error creating archive of generated tests."
     }
 }
@@ -460,6 +460,10 @@ function get_test_code () {
             NODENESS="2n"
             FLAVOR="skx"
             ;;
+        *"2n-zn2"*)
+            NODENESS="2n"
+            FLAVOR="zn2"
+            ;;
         *"3n-skx"*)
             NODENESS="3n"
             FLAVOR="skx"
@@ -515,14 +519,20 @@ function get_test_tag_string () {
                 die "Unknown specification: ${TEST_CODE}"
         esac
         # Ignore lines not containing the trigger word.
-        comment=$(fgrep "${trigger}" <<< "${GERRIT_EVENT_COMMENT_TEXT}") || true
+        comment=$(fgrep "${trigger}" <<< "${GERRIT_EVENT_COMMENT_TEXT}" || true)
         # The vpp-csit triggers trail stuff we are not interested in.
         # Removing them and trigger word: https://unix.stackexchange.com/a/13472
         # (except relying on \s whitespace, \S non-whitespace and . both).
         # The last string is concatenated, only the middle part is expanded.
         cmd=("grep" "-oP" '\S*'"${trigger}"'\S*\s\K.+$') || die "Unset trigger?"
         # On parsing error, TEST_TAG_STRING probably stays empty.
-        TEST_TAG_STRING=$("${cmd[@]}" <<< "${comment}") || true
+        TEST_TAG_STRING=$("${cmd[@]}" <<< "${comment}" || true)
+        if [[ -z "${TEST_TAG_STRING-}" ]]; then
+            # Probably we got a base64 encoded comment.
+            comment=$(base64 --decode <<< "${GERRIT_EVENT_COMMENT_TEXT}" || true)
+            comment=$(fgrep "${trigger}" <<< "${comment}" || true)
+            TEST_TAG_STRING=$("${cmd[@]}" <<< "${comment}" || true)
+        fi
         if [[ -n "${TEST_TAG_STRING-}" ]]; then
             test_tag_array=(${TEST_TAG_STRING})
             if [[ "${test_tag_array[0]}" == "icl" ]]; then
@@ -756,7 +766,7 @@ function select_tags () {
         *"3n-tsh"*)
             default_nic="nic_intel-x520-da2"
             ;;
-        *"3n-skx"* | *"2n-skx"* | *"2n-clx"*)
+        *"3n-skx"* | *"2n-skx"* | *"2n-clx"* | *"2n-zn2"*)
             default_nic="nic_intel-xxv710"
             ;;
         *"3n-hsw"* | *"mrr-daily-master")
@@ -834,7 +844,7 @@ function select_tags () {
     # TODO: Add missing reasons here (if general) or where used (if specific).
     case "${TEST_CODE}" in
         *"2n-skx"*)
-            test_tag_array+=("!ipsechw")
+            test_tag_array+=("!ipsec")
             ;;
         *"3n-skx"*)
             test_tag_array+=("!ipsechw")
@@ -842,7 +852,10 @@ function select_tags () {
             test_tag_array+=("!3_node_double_link_topoANDnic_intel-xxv710")
             ;;
         *"2n-clx"*)
-            test_tag_array+=("!ipsechw")
+            test_tag_array+=("!ipsec")
+            ;;
+        *"2n-zn2"*)
+            test_tag_array+=("!ipsec")
             ;;
         *"2n-dnv"*)
             test_tag_array+=("!ipsechw")
@@ -865,10 +878,6 @@ function select_tags () {
             test_tag_array+=("!ipsechw")
             ;;
         *"3n-hsw"*)
-            # TODO: Introduce NOIOMMU version of AVF tests.
-            # TODO: Make (both) AVF tests work on Haswell,
-            # or document why (some of) it is not possible.
-            # https://github.com/FDio/vpp/blob/master/src/plugins/avf/README.md
             test_tag_array+=("!drv_avf")
             # All cards have access to QAT. But only one card (xl710)
             # resides in same NUMA as QAT. Other cards must go over QPI
@@ -958,6 +967,10 @@ function select_topology () {
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_skx*.yaml )
             TOPOLOGIES_TAGS="2_node_*_link_topo"
             ;;
+        "2n_zn2")
+            TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*2n_zn2*.yaml )
+            TOPOLOGIES_TAGS="2_node_*_link_topo"
+            ;;
         "3n_skx")
             TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_skx*.yaml )
             TOPOLOGIES_TAGS="3_node_*_link_topo"