X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Fbash%2Ffunction%2Fcommon.sh;h=f7a7a004df83af0a43b1ee9c72f0d7c3105338a1;hb=80d851c99bfb7b6441e9a364ed5d49f867252eff;hp=549688f7bd8e9037ccbdfe460f0b7c303d214d6d;hpb=f88a3d9178dfbd73d0479f9aa2f5224e0c89ca1f;p=csit.git diff --git a/resources/libraries/bash/function/common.sh b/resources/libraries/bash/function/common.sh index 549688f7bd..f7a7a004df 100644 --- a/resources/libraries/bash/function/common.sh +++ b/resources/libraries/bash/function/common.sh @@ -286,6 +286,31 @@ function compose_pybot_arguments () { } +function copy_archives () { + + # Create additional archive if workspace variable is set. + # This way if script is running in jenkins all will be + # automatically archived to logs.fd.io. + # + # Variables read: + # - WORKSPACE - Jenkins workspace, copy only if the value is not empty. + # Can be unset, then it speeds up manual testing. + # - ARCHIVE_DIR - Path to directory with content to be copied. + # Directories updated: + # - ${WORKSPACE}/archives/ - Created if does not exist. + # Content of ${ARCHIVE_DIR}/ is copied here. + # Functions called: + # - die - Print to stderr and exit. + + set -exuo pipefail + + if [[ -n "${WORKSPACE-}" ]]; then + mkdir -p "${WORKSPACE}/archives/" || die "Archives dir create failed." + cp -rf "${ARCHIVE_DIR}"/* "${WORKSPACE}/archives" || die "Copy failed." + fi +} + + function deactivate_docker_topology () { # Deactivate virtual vpp-device topology by removing containers. @@ -623,16 +648,13 @@ function run_pybot () { } -function select_os () { +function select_arch_os () { - # Populate variables related to local operating system. - # - # Also install any missing prerequisities CSIT tests need. - # TODO: Move the installation to a separate function? + # Set variables affected by local CPU architecture and operating system. # # Variables set: - # - VPP_VER_FILE - Name of File in CSIT dir containing vpp stable version. - # - IMAGE_VER_FILE - Name of File in CSIT dir containing the image name. + # - VPP_VER_FILE - Name of file in CSIT dir containing vpp stable version. + # - IMAGE_VER_FILE - Name of file in CSIT dir containing the image name. # - PKG_SUFFIX - Suffix of OS package file name, "rpm" or "deb." set -exuo pipefail @@ -653,7 +675,19 @@ function select_os () { PKG_SUFFIX="rpm" ;; *) - die "Unable to identify distro or os from ${OS}" + die "Unable to identify distro or os from ${os_id}" + ;; + esac + + arch=$(uname -m) || { + die "Get CPU architecture failed." + } + + case "${arch}" in + "aarch64") + IMAGE_VER_FILE="${IMAGE_VER_FILE}_ARM" + ;; + *) ;; esac } @@ -702,6 +736,7 @@ function select_tags () { ;; esac + sed_nic_sub_cmd="sed s/\${default_nic}/${default_nic}/" # Tag file directory shorthand. tfd="${BASH_FUNCTION_DIR}" case "${TEST_CODE}" in @@ -710,8 +745,8 @@ function select_tags () { readarray -t test_tag_array < "${tfd}/mlr-weekly.txt" || die ;; *"mrr-daily"* ) - readarray -t test_tag_array < \ - "${tfd}/mrr-daily-${FLAVOR}.txt" || die + readarray -t test_tag_array <<< $(${sed_nic_sub_cmd} \ + ${tfd}/mrr-daily-${FLAVOR}.txt) || die ;; *"mrr-weekly"* ) readarray -t test_tag_array < "${tfd}/mrr-weekly.txt" || die @@ -762,11 +797,9 @@ function select_tags () { test_tag_array+=("!drv_avf") ;; *"3n-tsh"*) + # 3n-tsh only has x520 NICs which don't work with AVF + test_tag_array+=("!drv_avf") test_tag_array+=("!ipsechw") - test_tag_array+=("!memif") - test_tag_array+=("!srv6_proxy") - test_tag_array+=("!vhost") - test_tag_array+=("!vts") ;; *"3n-hsw"*) # TODO: Introduce NOIOMMU version of AVF tests. @@ -867,7 +900,7 @@ function select_topology () { ;; "3n_tsh") TOPOLOGIES=( "${TOPOLOGIES_DIR}"/*3n_tsh*.yaml ) - TOPOLOGIES_TAGS="3_node_*_link_topo" + TOPOLOGIES_TAGS="3_node_single_link_topo" ;; *) # No falling back to 3n_hsw default, that should have been done