FIX: Remove Niantic from x710 and xl710
[csit.git] / bootstrap-verify-perf.sh
index 89af840..98855a7 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright (c) 2017 Cisco and/or its affiliates.
+# Copyright (c) 2018 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:
@@ -27,7 +27,12 @@ INSTALLATION_DIR="/tmp/install_dir"
 
 PYBOT_ARGS="-W 150 -L TRACE"
 
-ARCHIVE_ARTIFACTS=(log.html output.xml report.html output_perf_data.xml output_perf_data.json)
+JOB_ARCHIVE_ARTIFACTS=(log.html output.xml report.html)
+LOG_ARCHIVE_ARTIFACTS=(log.html output.xml report.html)
+JOB_ARCHIVE_DIR="archive"
+LOG_ARCHIVE_DIR="$WORKSPACE/archives"
+mkdir -p ${JOB_ARCHIVE_DIR}
+mkdir -p ${LOG_ARCHIVE_DIR}
 
 # If we run this script from CSIT jobs we want to use stable vpp version
 if [[ ${JOB_NAME} == csit-* ]] ;
@@ -35,8 +40,7 @@ then
     mkdir vpp_download
     cd vpp_download
 
-    if [[ ${TEST_TAG} == *NIGHTLY ]] || \
-       [[ ${TEST_TAG} == *DAILY ]] || \
+    if [[ ${TEST_TAG} == *DAILY ]] || \
        [[ ${TEST_TAG} == *WEEKLY ]];
     then
         # Download the latest VPP build .deb install packages
@@ -71,12 +75,6 @@ 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
@@ -143,6 +141,7 @@ case "$TEST_TAG" in
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.vpp.perf" \
               --include ndrdiscANDnic_intel-x520-da2AND1t1cORndrdiscANDnic_intel-x520-da2AND2t2c \
+              --include ndrdiscAND1t1cANDipsecORndrdiscAND2t2cANDipsec \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
@@ -154,35 +153,46 @@ case "$TEST_TAG" in
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
-    VERIFY-PERF-NDRDISC )
+    PERFTEST_MRR_DAILY )
         pybot ${PYBOT_ARGS} \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.vpp.perf" \
-              --include ndrdiscAND1t1cORndrdiscAND2t2c \
+              --include mrrAND64bAND1t1c \
+              --include mrrAND64bAND2t2c \
+              --include mrrAND64bAND4t4c \
+              --include mrrAND78bAND1t1c \
+              --include mrrAND78bAND2t2c \
+              --include mrrAND78bAND4t4c \
+              --include mrrANDimixAND1t1cANDvhost \
+              --include mrrANDimixAND2t2cANDvhost \
+              --include mrrANDimixAND4t4cANDvhost \
+              --include mrrANDimixAND1t1cANDmemif \
+              --include mrrANDimixAND2t2cANDmemif \
+              --include mrrANDimixAND4t4cANDmemif \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
-    VERIFY-PERF-PDRDISC )
+    VERIFY-PERF-NDRDISC )
         pybot ${PYBOT_ARGS} \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.vpp.perf" \
-              --include pdrdiscAND1t1cORpdrdiscAND2t2c \
+              --include ndrdiscAND1t1cORndrdiscAND2t2c \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
-    VERIFY-PERF-NDRCHK )
+    VERIFY-PERF-PDRDISC )
         pybot ${PYBOT_ARGS} \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.vpp.perf" \
-              --include ndrchkAND1t1cORndrchkAND2t2c \
+              --include pdrdiscAND1t1cORpdrdiscAND2t2c \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
-    PERFTEST_NDRCHK_DAILY )
+    VERIFY-PERF-MRR )
         pybot ${PYBOT_ARGS} \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.vpp.perf" \
-              --include ndrchkAND1t1cORndrchkAND2t2c \
+              --include mrrAND1t1cORmrrAND2t2c \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
@@ -234,11 +244,30 @@ case "$TEST_TAG" in
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
+    VERIFY-PERF-MEMIF )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.vpp.perf" \
+              --include ndrdiscANDnic_intel-x520-da2AND1t1cANDmemif \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
+    VERIFY-PERF-IPSECHW )
+        pybot ${PYBOT_ARGS} \
+              -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
+              -s "tests.vpp.perf.crypto" \
+              --include ndrdiscANDnic_intel-xl710AND1t1cANDipsechw \
+              --include ndrdiscANDnic_intel-xl710AND2t2cANDipsechw \
+              --include mrrANDnic_intel-xl710AND1t1cANDipsechw \
+              --include mrrANDnic_intel-xl710AND2t2cANDipsechw \
+              tests/
+        RETURN_STATUS=$(echo $?)
+        ;;
     VPP-VERIFY-PERF-IP4 )
         pybot ${PYBOT_ARGS} \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.vpp.perf" \
-              --include pdrchkANDnic_intel-x520-da2AND1t1cANDip4baseORpdrchkANDnic_intel-x520-da2AND1t1cANDip4fwdANDfib_2m \
+              --include mrrANDnic_intel-x520-da2AND1t1cANDip4baseORmrrANDnic_intel-x520-da2AND1t1cANDip4fwdANDfib_2m \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
@@ -246,7 +275,7 @@ case "$TEST_TAG" in
         pybot ${PYBOT_ARGS} \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.vpp.perf" \
-              --include pdrchkANDnic_intel-x520-da2AND1t1cANDip6baseORpdrchkANDnic_intel-x520-da2AND1t1cANDip6fwdANDfib_2m \
+              --include mrrANDnic_intel-x520-da2AND1t1cANDip6baseORmrrANDnic_intel-x520-da2AND1t1cANDip6fwdANDfib_2m \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
@@ -254,7 +283,7 @@ case "$TEST_TAG" in
         pybot ${PYBOT_ARGS} \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.vpp.perf" \
-              --include pdrchkANDnic_intel-x520-da2AND1t1cANDl2xcbaseORpdrchkANDnic_intel-x520-da2AND1t1cANDl2bdbase \
+              --include mrrANDnic_intel-x520-da2AND1t1cANDl2xcbaseORmrrANDnic_intel-x520-da2AND1t1cANDl2bdbase \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
@@ -278,32 +307,38 @@ case "$TEST_TAG" in
         pybot ${PYBOT_ARGS} \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.vpp.perf" \
-              --include pdrchkANDnic_intel-x520-da2AND1t1cANDvhost \
+              --include pdrdiscANDnic_intel-x520-da2AND1t1cANDvhost \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
-    PERFTEST_LONG )
+    VPP-VERIFY-PERF-MEMIF )
         pybot ${PYBOT_ARGS} \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.vpp.perf" \
-              --exclude SKIP_PATCH \
-              -i NDRPDRDISC \
+              --include pdrdiscANDnic_intel-x520-da2AND1t1cANDmemif \
+              --include pdrdiscANDnic_intel-x520-da2AND2t2cANDmemif \
+              --include mrrANDnic_intel-x520-da2AND1t1cANDmemif \
+              --include mrrANDnic_intel-x520-da2AND2t2cANDmemif \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
-    PERFTEST_SHORT )
+    VPP-VERIFY-PERF-ACL )
         pybot ${PYBOT_ARGS} \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
               -s "tests.vpp.perf" \
-              -i NDRCHK \
+              --include pdrdiscANDnic_intel-x520-da2AND1t1cANDacl \
+              --include pdrdiscANDnic_intel-x520-da2AND2t2cANDacl \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
-    PERFTEST_NIGHTLY )
-        #run all available tests
+    VPP-VERIFY-PERF-IPSECHW )
         pybot ${PYBOT_ARGS} \
               -v TOPOLOGY_PATH:${WORKING_TOPOLOGY} \
-              -s "tests.vpp.perf" \
+              -s "tests.vpp.perf.crypto" \
+              --include pdrdiscANDnic_intel-xl710AND1t1cANDipsechw \
+              --include pdrdiscANDnic_intel-xl710AND2t2cANDipsechw \
+              --include mrrANDnic_intel-xl710AND1t1cANDipsechw \
+              --include mrrANDnic_intel-xl710AND2t2cANDipsechw \
               tests/
         RETURN_STATUS=$(echo $?)
         ;;
@@ -316,31 +351,13 @@ case "$TEST_TAG" in
         RETURN_STATUS=$(echo $?)
 esac
 
-# Pybot output post-processing
-echo Post-processing test data...
-
-python ${SCRIPT_DIR}/resources/tools/scripts/robot_output_parser.py \
-       -i ${SCRIPT_DIR}/output.xml \
-       -o ${SCRIPT_DIR}/output_perf_data.xml \
-       -v ${VPP_STABLE_VER}
-if [ ! $? -eq 0 ]; then
-    echo "Parsing ${SCRIPT_DIR}/output.xml failed"
-fi
-
-python ${SCRIPT_DIR}/resources/tools/report_gen/run_robot_json_data.py \
-       --input ${SCRIPT_DIR}/output.xml \
-       --output ${SCRIPT_DIR}/output_perf_data.json \
-       --vdevice ${VPP_STABLE_VER}
-if [ ! $? -eq 0 ]; then
-    echo "Generating JSON data for report from ${SCRIPT_DIR}/output.xml failed"
-fi
-
-# Archive artifacts
-mkdir archive
-for i in ${ARCHIVE_ARTIFACTS[@]}; do
-    cp $( readlink -f ${i} | tr '\n' ' ' ) archive/
+# Archive JOB artifacts in jenkins
+for i in ${JOB_ARCHIVE_ARTIFACTS[@]}; do
+    cp $( readlink -f ${i} | tr '\n' ' ' ) ${JOB_ARCHIVE_DIR}/
+done
+# Archive JOB artifacts to logs.fd.io
+for i in ${LOG_ARCHIVE_ARTIFACTS[@]}; do
+    cp $( readlink -f ${i} | tr '\n' ' ' ) ${LOG_ARCHIVE_DIR}/
 done
-
-echo Post-processing finished.
 
 exit ${RETURN_STATUS}