X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fbash%2Ffunction%2Fcommon.sh;h=ff632a2e97aca020f289714d2f5e01095bae3ca0;hp=821f8ca0724c2815e25f018c3d95daa29302e3ce;hb=e8be4c2786b17df2d73be940a48571dfb65f38c2;hpb=2b537c09d4f9819ce62d9a2b7c6d27850358050c diff --git a/resources/libraries/bash/function/common.sh b/resources/libraries/bash/function/common.sh index 821f8ca072..ff632a2e97 100644 --- a/resources/libraries/bash/function/common.sh +++ b/resources/libraries/bash/function/common.sh @@ -79,12 +79,14 @@ function activate_docker_topology () { die "Trap attempt failed, please cleanup manually. Aborting!" } + parse_env_variables || die "Parse of environment variables failed!" + # Replace all variables in template with those in environment. source <(echo 'cat <topo.yml'; cat ${TOPOLOGIES[0]}; echo EOF;) || { die "Topology file create failed!" } - WORKING_TOPOLOGY="/tmp/topology.yaml" + WORKING_TOPOLOGY="${CSIT_DIR}/topologies/available/vpp_device.yaml" mv topo.yml "${WORKING_TOPOLOGY}" || { die "Topology move failed!" } @@ -848,11 +850,13 @@ function select_tags () { awk_nics_sub_cmd+='gsub("x520-da2","10ge2p1x520");' awk_nics_sub_cmd+='gsub("x553","10ge2p1x553");' awk_nics_sub_cmd+='gsub("cx556a","100ge2p1cx556a");' + awk_nics_sub_cmd+='gsub("e810cq","100ge2p1e810cq");' awk_nics_sub_cmd+='gsub("vic1227","10ge2p1vic1227");' awk_nics_sub_cmd+='gsub("vic1385","40ge2p1vic1385");' awk_nics_sub_cmd+='gsub("nitro-50g","50ge1p1ENA");' awk_nics_sub_cmd+='if ($9 =="drv_avf") drv="avf-";' awk_nics_sub_cmd+='else if ($9 =="drv_rdma_core") drv ="rdma-";' + awk_nics_sub_cmd+='else if ($9 =="drv_af_xdp") drv ="af-xdp-";' awk_nics_sub_cmd+='else drv="";' awk_nics_sub_cmd+='print "*"$7"-" drv $11"-"$5"."$3"-"$1"-" drv $11"-"$5' @@ -860,6 +864,12 @@ function select_tags () { tfd="${JOB_SPECS_DIR}" case "${TEST_CODE}" in # Select specific performance tests based on jenkins job type variable. + *"device"* ) + readarray -t test_tag_array <<< $(grep -v "#" \ + ${tfd}/vpp_device/${DUT}-${NODENESS}-${FLAVOR}.md | + awk {"$awk_nics_sub_cmd"} || echo "devicetest") || die + SELECTION_MODE="--test" + ;; *"ndrpdr-weekly"* ) readarray -t test_tag_array <<< $(grep -v "#" \ ${tfd}/mlr_weekly/${DUT}-${NODENESS}-${FLAVOR}.md | @@ -900,11 +910,11 @@ function select_tags () { if [[ -z "${TEST_TAG_STRING-}" ]]; then # If nothing is specified, we will run pre-selected tests by # following tags. - test_tag_array=("mrrAND${default_nic}AND1cAND64bANDip4base" - "mrrAND${default_nic}AND1cAND78bANDip6base" - "mrrAND${default_nic}AND1cAND64bANDl2bdbase" - "mrrAND${default_nic}AND1cAND64bANDl2xcbase" - "!dot1q" "!drv_avf") + test_tag_array=("mrrAND${default_nic}AND1cAND64bANDethip4-ip4base" + "mrrAND${default_nic}AND1cAND78bANDethip6-ip6base" + "mrrAND${default_nic}AND1cAND64bANDeth-l2bdbasemaclrn" + "mrrAND${default_nic}AND1cAND64bANDeth-l2xcbase" + "!drv_af_xdp" "!drv_avf") else # If trigger contains tags, split them into array. test_tag_array=(${TEST_TAG_STRING//:/ }) @@ -918,6 +928,10 @@ function select_tags () { # Reasons for blacklisting: # - ipsechw - Blacklisted on testbeds without crypto hardware accelerator. case "${TEST_CODE}" in + *"1n-vbox"*) + test_tag_array+=("!avf") + test_tag_array+=("!vhost") + ;; *"2n-skx"*) test_tag_array+=("!ipsechw") ;; @@ -968,12 +982,14 @@ function select_tags () { set +x if [[ "${TEST_CODE}" == "vpp-"* ]]; then - # Automatic prefixing for VPP jobs to limit the NIC used and - # traffic evaluation to MRR. - if [[ "${TEST_TAG_STRING-}" == *"nic_"* ]]; then - prefix="${prefix}mrrAND" - else - prefix="${prefix}mrrAND${default_nic}AND" + if [[ "${TEST_CODE}" != *"device"* ]]; then + # Automatic prefixing for VPP perf jobs to limit the NIC used and + # traffic evaluation to MRR. + if [[ "${TEST_TAG_STRING-}" == *"nic_"* ]]; then + prefix="${prefix}mrrAND" + else + prefix="${prefix}mrrAND${default_nic}AND" + fi fi fi for tag in "${test_tag_array[@]}"; do @@ -1080,67 +1096,6 @@ function select_topology () { } -function select_vpp_device_tags () { - - # Variables read: - # - TEST_CODE - String affecting test selection, usually jenkins job name. - # - TEST_TAG_STRING - String selecting tags, from gerrit comment. - # Can be unset. - # Variables set: - # - TAGS - Array of processed tag boolean expressions. - - set -exuo pipefail - - case "${TEST_CODE}" in - # Select specific device tests based on jenkins job type variable. - * ) - 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. - test_tag_array=() - else - # If trigger contains tags, split them into array. - test_tag_array=(${TEST_TAG_STRING//:/ }) - fi - SELECTION_MODE="--include" - ;; - esac - - # Blacklisting certain tags per topology. - # - # Reasons for blacklisting: - # - avf - AVF is not possible to run on enic driver of VirtualBox. - # - vhost - VirtualBox does not support nesting virtualization on Intel CPU. - case "${TEST_CODE}" in - *"1n-vbox"*) - test_tag_array+=("!avf") - test_tag_array+=("!vhost") - ;; - *) - ;; - esac - - TAGS=() - - # We will prefix with devicetest to prevent running other tests - # (e.g. Functional). - prefix="devicetestAND" - if [[ "${TEST_CODE}" == "vpp-"* ]]; then - # Automatic prefixing for VPP jobs to limit testing. - prefix="${prefix}" - fi - for tag in "${test_tag_array[@]}"; do - if [[ ${tag} == "!"* ]]; then - # Exclude tags are not prefixed. - TAGS+=("${tag}") - else - TAGS+=("${prefix}${tag}") - fi - done -} - - function set_environment_variables () { # Depending on testbed topology, overwrite defaults set in the