X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Fbash%2Ffunction%2Fcommon.sh;h=e89def757a9c44226dbc1619bdaef5df0fde848b;hb=8cb114f77a1250808150d5959ed3a3dce05723af;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..e89def757a 100644 --- a/resources/libraries/bash/function/common.sh +++ b/resources/libraries/bash/function/common.sh @@ -524,6 +524,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 +723,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. @@ -769,23 +783,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 +810,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 @@ -894,6 +911,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.