Add the DPDK l3fwd performance test case.
[csit.git] / bootstrap-verify-perf.sh
index 0833628..5cc36f3 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright (c) 2016 Cisco and/or its affiliates.
+# Copyright (c) 2017 Cisco 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:
@@ -25,7 +25,7 @@ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 RESERVATION_DIR="/tmp/reservation_dir"
 INSTALLATION_DIR="/tmp/install_dir"
 
-PYBOT_ARGS="-W 150"
+PYBOT_ARGS="-W 150 -L TRACE"
 
 ARCHIVE_ARTIFACTS=(log.html output.xml report.html output_perf_data.xml)
 
@@ -35,7 +35,9 @@ then
     mkdir vpp_download
     cd vpp_download
 
-    if [[ ${TEST_TAG} == "PERFTEST_NIGHTLY" ]] ;
+    if [[ ${TEST_TAG} == *NIGHTLY ]] || \
+       [[ ${TEST_TAG} == *DAILY ]] || \
+       [[ ${TEST_TAG} == *WEEKLY ]];
     then
         # Download the latest VPP build .deb install packages
         echo Downloading VPP packages...
@@ -45,15 +47,15 @@ then
         # Take vpp package and get the vpp version
         VPP_STABLE_VER="$( expr match $(ls *.deb | head -n 1) 'vpp-\(.*\)-deb.deb' )"
     else
-        VPP_REPO_URL=$(cat ${SCRIPT_DIR}/VPP_REPO_URL)
-        VPP_STABLE_VER=$(cat ${SCRIPT_DIR}/VPP_STABLE_VER)
+        DPDK_STABLE_VER=$(cat ${SCRIPT_DIR}/DPDK_STABLE_VER)_amd64
+        VPP_REPO_URL=$(cat ${SCRIPT_DIR}/VPP_REPO_URL_UBUNTU)
+        VPP_STABLE_VER=$(cat ${SCRIPT_DIR}/VPP_STABLE_VER_UBUNTU)
         VPP_CLASSIFIER="-deb"
         # Download vpp build from nexus and set VPP_DEBS variable
         wget -q "${VPP_REPO_URL}/vpp/${VPP_STABLE_VER}/vpp-${VPP_STABLE_VER}${VPP_CLASSIFIER}.deb" || exit
         wget -q "${VPP_REPO_URL}/vpp-dbg/${VPP_STABLE_VER}/vpp-dbg-${VPP_STABLE_VER}${VPP_CLASSIFIER}.deb" || exit
         wget -q "${VPP_REPO_URL}/vpp-dev/${VPP_STABLE_VER}/vpp-dev-${VPP_STABLE_VER}${VPP_CLASSIFIER}.deb" || exit
-        wget -q "${VPP_REPO_URL}/vpp-dpdk-dev/${VPP_STABLE_VER}/vpp-dpdk-dev-${VPP_STABLE_VER}${VPP_CLASSIFIER}.deb" || exit
-        wget -q "${VPP_REPO_URL}/vpp-dpdk-dkms/${VPP_STABLE_VER}/vpp-dpdk-dkms-${VPP_STABLE_VER}${VPP_CLASSIFIER}.deb" || exit
+        wget -q "${VPP_REPO_URL}/vpp-dpdk-dkms/${DPDK_STABLE_VER}/vpp-dpdk-dkms-${DPDK_STABLE_VER}${VPP_CLASSIFIER}.deb" || exit
         wget -q "${VPP_REPO_URL}/vpp-lib/${VPP_STABLE_VER}/vpp-lib-${VPP_STABLE_VER}${VPP_CLASSIFIER}.deb" || exit
         wget -q "${VPP_REPO_URL}/vpp-plugins/${VPP_STABLE_VER}/vpp-plugins-${VPP_STABLE_VER}${VPP_CLASSIFIER}.deb" || exit
         VPP_DEBS="$( readlink -f *.deb | tr '\n' ' ' )"
@@ -69,6 +71,12 @@ then
     VPP_DEBS="$( readlink -f $@ | tr '\n' ' ' )"
     # Take vpp package and get the vpp version
     VPP_STABLE_VER="$( expr match $1 'vpp-\(.*\)-deb.deb' )"
+    # Download DPDK parts not included in dpdk plugin of vpp build
+    DPDK_STABLE_VER=$(cat ${SCRIPT_DIR}/DPDK_STABLE_VER)_amd64
+    VPP_REPO_URL=$(cat ${SCRIPT_DIR}/VPP_REPO_URL_UBUNTU)
+    VPP_CLASSIFIER="-deb"
+    wget -q "${VPP_REPO_URL}/vpp-dpdk-dkms/${DPDK_STABLE_VER}/vpp-dpdk-dkms-${DPDK_STABLE_VER}${VPP_CLASSIFIER}.deb" || exit
+    VPP_DEBS+=($( readlink -f vpp-dpdk-dkms-${DPDK_STABLE_VER}${VPP_CLASSIFIER}.deb ))
 else
     echo "Unable to identify job type based on JOB_NAME variable: ${JOB_NAME}"
     exit 1
@@ -130,9 +138,152 @@ fi
 
 case "$TEST_TAG" in
     # run specific performance tests based on jenkins job type variable
+    PERFTEST_DAILY )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrdiscANDnic_intel-x520-da2AND1t1cORndrdiscANDnic_intel-x520-da2AND2t2c \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    PERFTEST_SEMI_WEEKLY )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrdiscANDnic_intel-x710AND1t1cORndrdiscANDnic_intel-x710AND2t2cORndrdiscANDnic_intel-xl710AND1t1cORndrdiscANDnic_intel-xl710AND2t2c \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VERIFY-PERF-NDRDISC )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrdiscAND1t1cORndrdiscAND2t2c \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VERIFY-PERF-PDRDISC )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include pdrdiscAND1t1cORpdrdiscAND2t2c \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VERIFY-PERF-NDRCHK )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrchkAND1t1cORndrchkAND2t2c \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    PERFTEST_NDRCHK_DAILY )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrchkAND1t1cORndrchkAND2t2c \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VERIFY-PERF-IP4 )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrdiscANDnic_intel-x520-da2AND1t1cANDip4baseORndrdiscANDnic_intel-x520-da2AND1t1cANDip4fwdANDfib_2m \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VERIFY-PERF-IP6 )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrdiscANDnic_intel-x520-da2AND1t1cANDip6baseORndrdiscANDnic_intel-x520-da2AND1t1cANDip6fwdANDfib_2m \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VERIFY-PERF-L2 )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrdiscANDnic_intel-x520-da2AND1t1cANDl2xcbaseORndrdiscANDnic_intel-x520-da2AND1t1cANDl2bdbase \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VERIFY-PERF-LISP )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrdiscANDnic_intel-x520-da2AND1t1cANDlisp \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VERIFY-PERF-VXLAN )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrdiscANDnic_intel-x520-da2AND1t1cANDvxlan \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VERIFY-PERF-VHOST )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrdiscANDnic_intel-x520-da2AND1t1cANDvhost \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VPP-VERIFY-PERF-IP4 )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrchkANDnic_intel-x520-da2AND1t1cANDip4baseORndrchkANDnic_intel-x520-da2AND1t1cANDip4fwdANDfib_2m \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VPP-VERIFY-PERF-IP6 )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrchkANDnic_intel-x520-da2AND1t1cANDip6baseORndrchkANDnic_intel-x520-da2AND1t1cANDip6fwdANDfib_2m \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VPP-VERIFY-PERF-L2 )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrchkANDnic_intel-x520-da2AND1t1cANDl2xcbaseORndrchkANDnic_intel-x520-da2AND1t1cANDl2bdbase \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VPP-VERIFY-PERF-LISP )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrchkANDnic_intel-x520-da2AND1t1cANDlisp \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VPP-VERIFY-PERF-VXLAN )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrchkANDnic_intel-x520-da2AND1t1cANDvxlan \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VPP-VERIFY-PERF-VHOST )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.perf" \
+              --include ndrchkANDnic_intel-x520-da2AND1t1cANDvhost \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
     PERFTEST_LONG )
         pybot ${PYBOT_ARGS} \
-              -L TRACE \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.perf" \
               --exclude SKIP_PATCH \
@@ -142,17 +293,15 @@ case "$TEST_TAG" in
         ;;
     PERFTEST_SHORT )
         pybot ${PYBOT_ARGS} \
-              -L TRACE \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.perf" \
               -i NDRCHK \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
-   PERFTEST_NIGHTLY )
+    PERFTEST_NIGHTLY )
         #run all available tests
         pybot ${PYBOT_ARGS} \
-              -L TRACE \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.perf" \
               tests/
@@ -161,7 +310,6 @@ case "$TEST_TAG" in
     * )
         # run full performance test suite and exit on fail
         pybot ${PYBOT_ARGS} \
-              -L TRACE \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.perf" \
               tests/