X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Fbash%2Ffunction%2Fcommon.sh;h=e1bf88db9d0b452a418efc687f2d714cf9afd2dd;hb=9d59343a6191fbd158b1a07064774b99613c3cd1;hp=873c52ed630132a92ce9a986a9622e406c0cd007;hpb=f7c08d2bd14872ad888df9b95b823ab1784aa737;p=csit.git diff --git a/resources/libraries/bash/function/common.sh b/resources/libraries/bash/function/common.sh index 873c52ed63..e1bf88db9d 100644 --- a/resources/libraries/bash/function/common.sh +++ b/resources/libraries/bash/function/common.sh @@ -461,6 +461,10 @@ function get_test_code () { NODENESS="2n" FLAVOR="skx" ;; + *"2n-zn2"*) + NODENESS="2n" + FLAVOR="zn2" + ;; *"3n-skx"*) NODENESS="3n" FLAVOR="skx" @@ -524,6 +528,19 @@ function get_test_tag_string () { 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 + if [[ -n "${TEST_TAG_STRING-}" ]]; then + test_tag_array=(${TEST_TAG_STRING}) + if [[ "${test_tag_array[0]}" == "icl" ]]; then + export GRAPH_NODE_VARIANT="icl" + TEST_TAG_STRING="${test_tag_array[@]:1}" || true + elif [[ "${test_tag_array[0]}" == "skx" ]]; then + export GRAPH_NODE_VARIANT="skx" + TEST_TAG_STRING="${test_tag_array[@]:1}" || true + elif [[ "${test_tag_array[0]}" == "hsw" ]]; then + export GRAPH_NODE_VARIANT="hsw" + TEST_TAG_STRING="${test_tag_array[@]:1}" || true + fi + fi fi } @@ -710,6 +727,7 @@ function select_tags () { # Variables read: # - WORKING_TOPOLOGY - Path to topology yaml file of the reserved testbed. # - TEST_CODE - String affecting test selection, usually jenkins job name. + # - DUT - CSIT test/ subdirectory, set while processing tags. # - TEST_TAG_STRING - String selecting tags, from gerrit comment. # Can be unset. # - TOPOLOGIES_DIR - Path to existing directory with available tpologies. @@ -743,7 +761,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") @@ -769,23 +787,26 @@ function select_tags () { # Select specific performance tests based on jenkins job type variable. *"ndrpdr-weekly"* ) readarray -t test_tag_array <<< $(sed 's/ //g' \ - ${tfd}/mlr-weekly-${NODENESS}-${FLAVOR}.md | - eval ${sed_nics_sub_cmd}) || die + ${tfd}/mlr_weekly/${DUT}-${NODENESS}-${FLAVOR}.md | + eval ${sed_nics_sub_cmd} || echo "perftest") || die ;; *"mrr-daily"* ) readarray -t test_tag_array <<< $(sed 's/ //g' \ - ${tfd}/mrr-daily-${NODENESS}-${FLAVOR}.md | - eval ${sed_nics_sub_cmd}) || die + ${tfd}/mrr_daily/${DUT}-${NODENESS}-${FLAVOR}.md | + eval ${sed_nics_sub_cmd} || echo "perftest") || die ;; *"mrr-weekly"* ) readarray -t test_tag_array <<< $(sed 's/ //g' \ - ${tfd}/mrr-weekly-${NODENESS}-${FLAVOR}.md | - eval ${sed_nics_sub_cmd}) || die + ${tfd}/mrr_weekly/${DUT}-${NODENESS}-${FLAVOR}.md | + eval ${sed_nics_sub_cmd} || echo "perftest") || die ;; *"report-iterative"* ) + test_sets=(${TEST_TAG_STRING//:/ }) + # Run only one test set per run + report_file=${test_sets[0]}.md readarray -t test_tag_array <<< $(sed 's/ //g' \ - ${tfd}/report-iter-${NODENESS}-${FLAVOR}.md | - eval ${sed_nics_sub_cmd}) || die + ${tfd}/report_iterative/${NODENESS}-${FLAVOR}/${report_file} | + eval ${sed_nics_sub_cmd} || echo "perftest") || die ;; *"report-coverage"* ) test_sets=(${TEST_TAG_STRING//:/ }) @@ -793,7 +814,7 @@ function select_tags () { report_file=${test_sets[0]}.md readarray -t test_tag_array <<< $(sed 's/ //g' \ ${tfd}/report_coverage/${NODENESS}-${FLAVOR}/${report_file} | - eval ${sed_nics_sub_cmd}) || die + eval ${sed_nics_sub_cmd} || echo "perftest") || die ;; * ) if [[ -z "${TEST_TAG_STRING-}" ]]; then @@ -818,7 +839,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") @@ -826,7 +847,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") @@ -849,10 +873,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 @@ -894,6 +914,13 @@ function select_tags () { warn "The following tag expression hints at bad trigger: ${tag}" warn "Possible cause: Multiple triggers in a single comment." die "Aborting to avoid triggering too many tests." + elif [[ "${tag}" == *"OR"* ]]; then + # If OR had higher precedence than AND, it would be useful here. + # Some people think it does, thus triggering way too much tests. + set -x + warn "The following tag expression hints at bad trigger: ${tag}" + warn "Operator OR has lower precedence than AND. Use space instead." + die "Aborting to avoid triggering too many tests." elif [[ "${tag}" != "" && "${tag}" != "#"* ]]; then # Empty and comment lines are skipped. # Other lines are normal tags, they are to be prefixed. @@ -935,6 +962,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"