pip install --upgrade virtualenv || {
die "Virtualenv package install failed."
}
- virtualenv --system-site-packages "${ENV_DIR}" || {
+ virtualenv "${ENV_DIR}" || {
die "Virtualenv creation failed."
}
set +u
}
+function cleanup_topo () {
+
+ set -exuo pipefail
+
+ # Variables read:
+ # - WORKING_TOPOLOGY - Path to topology yaml file of the reserved testbed.
+ # - PYTHON_SCRIPTS_DIR - Path to directory holding the reservation script.
+
+ python "${PYTHON_SCRIPTS_DIR}/topo_cleanup.py" -t "${WORKING_TOPOLOGY}"
+ # Not using "|| die" as some callers might want to ignore errors,
+ # e.g. in teardowns, such as unreserve.
+}
+
+
function common_dirs () {
set -exuo pipefail
# automatically archived to logs.fd.io.
if [[ -n "${WORKSPACE-}" ]]; then
mkdir -p "${WORKSPACE}/archives/" || die "Archives dir create failed."
- cp -r "${ARCHIVE_DIR}"/* "${WORKSPACE}/archives" || die "Copy failed."
+ cp -rf "${ARCHIVE_DIR}"/* "${WORKSPACE}/archives" || die "Copy failed."
fi
}
}
die "Trap attempt failed, unreserve succeeded. Aborting."
}
- python "${PYTHON_SCRIPTS_DIR}/topo_cleanup.py" -t "${topo}" || {
+ cleanup_topo || {
die "Testbed cleanup failed."
}
break
# Variables set:
# - TAGS - Array of processed tag boolean expressions.
- # TODO: Empty exclude_nics (with failing grep) is expected,
- # but others possible errors coule be checked explicitly.
# NIC SELECTION
# All topologies NICs
available=$(grep -hoPR "model: \K.*" "${TOPOLOGIES_DIR}"/* | sort -u)
"ndrpdrAND78bAND1c")
;;
*"mrr-daily"* | *"mrr-weekly"* )
- test_tag_array=("mrrAND64bAND1c"
- "mrrAND64bAND2c"
- "mrrAND64bAND4c"
- "mrrAND78bAND1c"
- "mrrAND78bAND2c"
- "mrrAND78bAND4c"
- "mrrAND114bAND1c"
- "mrrAND114bAND2c"
- "mrrAND114bAND4c"
- "mrrANDimixAND1cANDvhost"
- "mrrANDimixAND2cANDvhost"
- "mrrANDimixAND4cANDvhost"
- "mrrANDimixAND1cANDmemif"
- "mrrANDimixAND2cANDmemif"
- "mrrANDimixAND4cANDmemif")
+ test_tag_array=(# vic
+ "mrrANDnic_cisco-vic-1227AND64b"
+ "mrrANDnic_cisco-vic-1385AND64b"
+ # memif
+ "mrrANDmemifANDethAND64b"
+ "mrrANDmemifANDethANDimix"
+ # crypto
+ "mrrANDipsecAND64b"
+ # ip4 base
+ "mrrANDip4baseAND64b"
+ # ip4 scale FIB 2M
+ "mrrANDip4fwdANDfib_2mAND64b"
+ # ip4 scale FIB 200k
+ "mrrANDip4fwdANDfib_200kANDnic_intel-*710AND64b"
+ # ip4 scale FIB 20k
+ "mrrANDip4fwdANDfib_20kANDnic_intel-*710AND64b"
+ # ip4 scale ACL
+ "mrrANDip4fwdANDacl1AND10k_flowsAND64b"
+ "mrrANDip4fwdANDacl50AND10k_flowsAND64b"
+ # ip4 scale NAT44
+ "mrrANDip4fwdANDnat44ANDbaseAND64b"
+ "mrrANDip4fwdANDnat44ANDsrc_user_4000AND64b"
+ # ip4 features
+ "mrrANDip4fwdANDfeatureANDnic_intel-*710AND64b"
+ # TODO: Remove when tags in
+ # tests/vpp/perf/ip4/*-ipolicemarkbase-*.robot
+ # are fixed
+ "mrrANDip4fwdANDpolice_markANDnic_intel-*710AND64b"
+ # ip4 tunnels
+ "mrrANDip4fwdANDencapANDip6unrlayANDip4ovrlayANDnic_intel-x520-da2AND64b"
+ "mrrANDip4fwdANDencapANDnic_intel-*710AND64b"
+ "mrrANDl2ovrlayANDencapANDnic_intel-*710AND64b"
+ # ip6 base
+ "mrrANDip6baseANDethAND78b"
+ # ip6 features
+ "mrrANDip6fwdANDfeatureANDnic_intel-*710AND78b"
+ # ip6 scale FIB 2M
+ "mrrANDip6fwdANDfib_2mANDnic_intel-*710AND78b"
+ # ip6 scale FIB 200k
+ "mrrANDip6fwdANDfib_200kANDnic_intel-*710AND78b"
+ # ip6 scale FIB 20k
+ "mrrANDip6fwdANDfib_20kANDnic_intel-*710AND78b"
+ # ip6 tunnels
+ "mrrANDip6fwdANDencapANDnic_intel-x520-da2AND78b"
+ # l2xc base
+ "mrrANDl2xcfwdANDbaseAND64b"
+ # l2xc scale ACL
+ "mrrANDl2xcANDacl1AND10k_flowsAND64b"
+ "mrrANDl2xcANDacl50AND10k_flowsAND64b"
+ # l2xc scale FIB 2M
+ "mrrANDl2xcANDfib_2mAND64b"
+ # l2xc scale FIB 200k
+ "mrrANDl2xcANDfib_200kANDnic_intel-*710AND64b"
+ # l2xc scale FIB 20k
+ "mrrANDl2xcANDfib_20kANDnic_intel-*710AND64b"
+ # l2bd base
+ "mrrANDl2bdmaclrnANDbaseAND64b"
+ # l2bd scale ACL
+ "mrrANDl2bdmaclrnANDacl1AND10k_flowsAND64b"
+ "mrrANDl2bdmaclrnANDacl50AND10k_flowsAND64b"
+ # l2bd scale FIB 2M
+ "mrrANDl2bdmaclrnANDfib_1mAND64b"
+ # l2bd scale FIB 200k
+ "mrrANDl2bdmaclrnANDfib_100kANDnic_intel-*710AND64b"
+ # l2bd scale FIB 20k
+ "mrrANDl2bdmaclrnANDfib_10kANDnic_intel-*710AND64b"
+ # l2 patch base
+ "mrrANDl2patchAND64b"
+ # srv6
+ "mrrANDsrv6ANDnic_intel-x520-da2AND78b"
+ # vts
+ "mrrANDvtsANDnic_intel-x520-da2AND114b"
+ # vm vhost l2xc base
+ "mrrANDvhostANDl2xcfwdANDbaseAND64b"
+ "mrrANDvhostANDl2xcfwdANDbaseANDimix"
+ # vm vhost l2bd base
+ "mrrANDvhostANDl2bdmaclrnANDbaseAND64b"
+ "mrrANDvhostANDl2bdmaclrnANDbaseANDimix"
+ # vm vhost ip4 base
+ "mrrANDvhostANDip4fwdANDbaseAND64b"
+ "mrrANDvhostANDip4fwdANDbaseANDimix"
+ # Exclude
+ "!mrrANDip6baseANDdot1qAND78b"
+ "!vhost_256ANDnic_intel-x520-da2"
+ "!vhostANDnic_intel-xl710"
+ "!cfs_opt"
+ "!lbond_dpdk")
;;
* )
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.
+ # following tags.
test_tag_array=("mrrANDnic_intel-x710AND1cAND64bANDip4base"
"mrrANDnic_intel-x710AND1cAND78bANDip6base"
- "mrrANDnic_intel-x710AND1cAND64bANDl2bdbaseANDbase"
- "mrrANDnic_intel-x710AND1cAND64bANDl2xcbase")
+ "mrrANDnic_intel-x710AND1cAND64bANDl2bdbase"
+ "mrrANDnic_intel-x710AND1cAND64bANDl2xcbase"
+ "!dot1q")
else
# If trigger contains tags, split them into array.
test_tag_array=(${TEST_TAG_STRING//:/ })
;;
esac
+ # Blacklisting certain tags per topology.
+ case "${TEST_CODE}" in
+ *"3n-hsw"*)
+ test_tag_array+=("!drv_avf")
+ ;;
+ *"2n-skx"*)
+ test_tag_array+=("!ipsechw")
+ ;;
+ *"3n-skx"*)
+ test_tag_array+=("!ipsechw")
+ ;;
+ *)
+ # Default to 3n-hsw due to compatibility.
+ test_tag_array+=("!drv_avf")
+ ;;
+ esac
+
# We will add excluded NICs.
test_tag_array+=("${exclude_nics[@]/#/!NIC_}")
"${TOPOLOGIES_DIR}/lf_3n_hsw_testbed2.yaml"
"${TOPOLOGIES_DIR}/lf_3n_hsw_testbed3.yaml"
)
- TOPOLOGIES_TAGS="3_node_*_link_topo"
+ TOPOLOGIES_TAGS="3_node_single_link_topo"
;;
"2n_skx")
TOPOLOGIES=(
wt="${WORKING_TOPOLOGY}" # Just to avoid too long lines.
if [[ -z "${wt-}" ]]; then
set -eu
- echo "Testbed looks unreserved already. Trap removal failed before?"
+ warn "Testbed looks unreserved already. Trap removal failed before?"
else
- python "${PYTHON_SCRIPTS_DIR}/topo_cleanup.py" -t "${wt}" || true
+ cleanup_topo || true
python "${PYTHON_SCRIPTS_DIR}/topo_reservation.py" -c -t "${wt}" || {
die "${1:-FAILED TO UNRESERVE, FIX MANUALLY.}" 2
}