From 89e6be275715aefa8473835eb78eed309f37f2ee Mon Sep 17 00:00:00 2001 From: Stanislav Chlebec Date: Thu, 17 Jan 2019 03:15:54 -0800 Subject: Add ARM Taishan testbed33 perftest Change-Id: Iaa0e7fbca7de26c7dce8b389cc3494f628a2ecd0 Signed-off-by: Stanislav Chlebec Signed-off-by: juraj.linkes --- resources/libraries/bash/function/artifacts.sh | 62 ++++++++++++++++++++------ resources/libraries/bash/function/common.sh | 35 ++++++++++++--- resources/libraries/bash/function/gather.sh | 3 +- 3 files changed, 81 insertions(+), 19 deletions(-) (limited to 'resources/libraries/bash/function') diff --git a/resources/libraries/bash/function/artifacts.sh b/resources/libraries/bash/function/artifacts.sh index b6b5bc5536..a403cfe005 100644 --- a/resources/libraries/bash/function/artifacts.sh +++ b/resources/libraries/bash/function/artifacts.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash -# Copyright (c) 2018 Cisco and/or its affiliates. +# Copyright (c) 2019 Cisco and/or its affiliates. +# Copyright (c) 2019 PANTHEON.tech and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -64,14 +65,50 @@ function download_ubuntu_artifacts () { } # If version is set we will add suffix. artifacts=() - vpp=(vpp vpp-dbg vpp-dev vpp-api-python libvppinfra libvppinfra-dev - vpp-plugin-core vpp-plugin-dpdk) + BOTH_QUOTES='"'"'" + MATCH="[^${BOTH_QUOTES}]*" + QMATCH="[${BOTH_QUOTES}]\?" + SED_COMMAND="s#.*apt_source_path=${QMATCH}\(${MATCH}\)${QMATCH}#\1#p" + APT_FDIO_REPO_FILE=$(curl -s "${REPO_URL}"/script.deb.sh | \ + sed -n ${SED_COMMAND}) || { + die "Local fdio repo file path fetch failed." + } + + if [ ! -f ${APT_FDIO_REPO_FILE} ]; then + die "${APT_FDIO_REPO_FILE} not found, \ + repository installation was not successful." + fi + + packages=$(apt-cache -o Dir::Etc::SourceList=${APT_FDIO_REPO_FILE} \ + -o Dir::Etc::SourceParts=${APT_FDIO_REPO_FILE} dumpavail \ + | grep Package: | cut -d " " -f 2) || { + die "Retrieval of available VPP packages failed." + } if [ -z "${VPP_VERSION-}" ]; then - artifacts+=(${vpp[@]}) - else - artifacts+=(${vpp[@]/%/=${VPP_VERSION-}}) + # If version is not specified, find out the most recent version + VPP_VERSION=$(apt-cache --no-all-versions show vpp | grep Version: | \ + cut -d " " -f 2) || { + die "Retrieval of most recent VPP version failed." + } fi + set +x + for package in ${packages}; do + # Filter packages with given version + pkg_info=$(apt-cache show ${package}) || { + die "apt-cache show on ${package} failed." + } + ver=$(echo ${pkg_info} | grep -o "Version: ${VPP_VERSION-}[^ ]*") || true + if [ -n "${ver-}" ]; then + echo "Found '${VPP_VERSION-}' among '${package}' versions." + ver=$(echo "$ver" | cut -d " " -f 2) + artifacts+=(${package[@]/%/=${ver-}}) + else + echo "Didn't find '${VPP_VERSION-}' among '${package}' versions." + fi + done + set -x + if [ "${INSTALL:-false}" = true ]; then sudo apt-get -y install "${artifacts[@]}" || { die "Install VPP artifacts failed." @@ -98,11 +135,11 @@ function download_centos_artifacts () { } # If version is set we will add suffix. artifacts=() - vpp=(vpp vpp-selinux-policy vpp-devel vpp-lib vpp-plugins vpp-api-python) + packages=(vpp vpp-selinux-policy vpp-devel vpp-lib vpp-plugins vpp-api-python) if [ -z "${VPP_VERSION-}" ]; then - artifacts+=(${vpp[@]}) + artifacts+=(${packages[@]}) else - artifacts+=(${vpp[@]/%/-${VPP_VERSION-}}) + artifacts+=(${packages[@]/%/-${VPP_VERSION-}}) fi if [ "${INSTALL:-false}" = true ]; then @@ -131,11 +168,11 @@ function download_opensuse_artifacts () { } # If version is set we will add suffix. artifacts=() - vpp=(vpp vpp-devel vpp-lib vpp-plugins libvpp0) + packages=(vpp vpp-devel vpp-lib vpp-plugins libvpp0) if [ -z "${VPP_VERSION-}" ]; then - artifacts+=(${vpp[@]}) + artifacts+=(${packages[@]}) else - artifacts+=(${vpp[@]/%/-${VPP_VERSION-}}) + artifacts+=(${packages[@]/%/-${VPP_VERSION-}}) fi if [ "${INSTALL:-false}" = true ]; then @@ -148,4 +185,3 @@ function download_opensuse_artifacts () { } fi } - diff --git a/resources/libraries/bash/function/common.sh b/resources/libraries/bash/function/common.sh index 71cf9d3fa6..2ae135425b 100644 --- a/resources/libraries/bash/function/common.sh +++ b/resources/libraries/bash/function/common.sh @@ -1,4 +1,5 @@ # Copyright (c) 2019 Cisco and/or its affiliates. +# Copyright (c) 2019 PANTHEON.tech and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -382,6 +383,10 @@ function get_test_code () { NODENESS="3n" FLAVOR="skx" ;; + *"3n-tsh"*) + NODENESS="3n" + FLAVOR="tsh" + ;; *) # Fallback to 3-node Haswell by default (backward compatibility) NODENESS="3n" @@ -424,6 +429,7 @@ function get_test_tag_string () { comment="${comment/perftest-3n/perftest}" comment="${comment/perftest-hsw/perftest}" comment="${comment/perftest-skx/perftest}" + comment="${comment/perftest-tsh/perftest}" tag_string="$(echo "${comment}" \ | grep -oE '(perftest$|perftest[[:space:]].+$)' || true)" # Set test tags as string. @@ -557,6 +563,16 @@ function select_tags () { # All topologies NICs - Selected topology NICs exclude_nics=($(comm -13 <(echo "${reserved}") <(echo "${available}"))) + # Select default NIC + case "${TEST_CODE}" in + *"3n-tsh"*) + DEFAULT_NIC='nic_intel-82599es' + ;; + *) + DEFAULT_NIC='nic_intel-x710' + ;; + esac + case "${TEST_CODE}" in # Select specific performance tests based on jenkins job type variable. *"ndrpdr-weekly"* ) @@ -666,10 +682,10 @@ 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=("mrrANDnic_intel-x710AND1cAND64bANDip4base" - "mrrANDnic_intel-x710AND1cAND78bANDip6base" - "mrrANDnic_intel-x710AND1cAND64bANDl2bdbase" - "mrrANDnic_intel-x710AND1cAND64bANDl2xcbase" + test_tag_array=("mrrAND${DEFAULT_NIC}AND1cAND64bANDip4base" + "mrrAND${DEFAULT_NIC}AND1cAND78bANDip6base" + "mrrAND${DEFAULT_NIC}AND1cAND64bANDl2bdbase" + "mrrAND${DEFAULT_NIC}AND1cAND64bANDl2xcbase" "!dot1q") else # If trigger contains tags, split them into array. @@ -689,6 +705,9 @@ function select_tags () { *"3n-skx"*) test_tag_array+=("!ipsechw") ;; + *"3n-tsh"*) + test_tag_array+=("!ipsechw") + ;; *) # Default to 3n-hsw due to compatibility. test_tag_array+=("!drv_avf") @@ -706,7 +725,7 @@ function select_tags () { if [[ "${TEST_CODE}" == "vpp-"* ]]; then # Automatic prefixing for VPP jobs to limit the NIC used and # traffic evaluation to MRR. - prefix="${prefix}mrrANDnic_intel-x710AND" + prefix="${prefix}mrrAND${DEFAULT_NIC}AND" fi for tag in "${test_tag_array[@]}"; do if [[ ${tag} == "!"* ]]; then @@ -818,6 +837,12 @@ function select_topology () { ) TOPOLOGIES_TAGS="3_node_single_link_topo" ;; + "3n_tsh") + TOPOLOGIES=( + "${TOPOLOGIES_DIR}/lf_3n_tsh_testbed33.yaml" + ) + TOPOLOGIES_TAGS="3_node_*_link_topo" + ;; *) # No falling back to 3n_hsw default, that should have been done # by the function which has set NODENESS and FLAVOR. diff --git a/resources/libraries/bash/function/gather.sh b/resources/libraries/bash/function/gather.sh index f92c4ef897..518c6b4105 100644 --- a/resources/libraries/bash/function/gather.sh +++ b/resources/libraries/bash/function/gather.sh @@ -1,4 +1,5 @@ -# Copyright (c) 2018 Cisco and/or its affiliates. +# Copyright (c) 2019 Cisco and/or its affiliates. +# Copyright (c) 2019 PANTHEON.tech and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: -- cgit 1.2.3-korg