ci: Skip VPP tests if needed 17/47517/2
authorMartin Klozik <martinx.klozik@intel.com>
Mon, 20 Nov 2017 09:40:38 +0000 (09:40 +0000)
committerMartin Klozik <martinx.klozik@intel.com>
Mon, 20 Nov 2017 15:04:01 +0000 (15:04 +0000)
If VPP can't be executed properly, then VPP tests will be skipped
for VERIFY and MERGE jobs. It sometimes happens, that VPP can't
be executed at builders used for VERIFY & MERGE jobs execution.
These failures are not caused by patches themselves, but they
are blocking standard review & merge process. Thus VPP tests
will be suppressed in case that VPP can't be started at all.
This change is not related to DAILY job, which is executed
at POD dedicated to VSPERF project. It means that VPP tests
are always executed by DAILY job.

Change-Id: I4752601561b94a82482c403305bc3f24779f538b
Signed-off-by: Martin Klozik <martinx.klozik@intel.com>
Reviewed-by: Al Morton <acmorton@att.com>
Reviewed-by: Christian Trautman <ctrautma@redhat.com>
Reviewed-by: Sridhar Rao <sridhar.rao@spirent.com>
Reviewed-by: Trevor Cooper <trevor.cooper@intel.com>
ci/build-vsperf.sh
conf/integration/01_testcases.conf

index a8a42ce..755fb51 100755 (executable)
@@ -213,6 +213,21 @@ function execute_vsperf() {
             LOG_FILE="${LOG_FILE_PREFIX}_${LOG_SUBDIR}_${DATE_SUFFIX}.log"
 
             hugepages_info > $LOG_FILE
+
+            # check if VPP is up & running
+            echo "    $VSPERF_BIN $OPNFVPOD --vswitch VppDpdkVhost --vnf QemuDpdkVhostUser $CONF_FILE $TESTPARAM vswitch_version_vpp >> ${LOG_FILE}2"
+            $VSPERF_BIN $OPNFVPOD --vswitch VppDpdkVhost --vnf QemuDpdkVhostUser $CONF_FILE $TESTPARAM vswitch_version_vpp &>> ${LOG_FILE}2
+            if (grep FAILED ${LOG_FILE}2 &> /dev/null ) ; then
+                # VPP can't be executed or vppctl can't connect to it, so skip
+                # VPP tests as it is probably an issue with jenkins slave
+                printf "    %-70s %-6s\n" "vswitch_version_vpp" "FAILED"
+                echo
+                echo "VPP is not working properly. VPP tests will be skipped."
+                echo
+                return
+            else
+                printf "    %-70s %-6s\n" "vswitch_version_vpp" "OK"
+            fi
             echo "    $VSPERF_BIN $OPNFVPOD --vswitch VppDpdkVhost --vnf QemuDpdkVhostUser $CONF_FILE $TESTPARAM $TESTCASES > $LOG_FILE"
             $VSPERF_BIN $OPNFVPOD --vswitch VppDpdkVhost --vnf QemuDpdkVhostUser $CONF_FILE $TESTPARAM $TESTCASES &>> $LOG_FILE
             hugepages_info >> $LOG_FILE
index 647e39c..dfc8a4c 100644 (file)
@@ -969,10 +969,21 @@ INTEGRATION_TESTS = [
     #
     # VPP tests used by VERIFY and MERGE jobs by OPNFV Jenkins
     #
+    {
+        "Name": "vswitch_version_vpp",
+        "Deployment": "clean",
+        "Description": "VPP: vSwitch - determine VPP version and fail if it is not possible.",
+        "vSwitch" : "VppDpdkVhost",
+        "TestSteps": [
+                        ['vswitch', 'run_vppctl', ['show', 'version', 'verbose'], '|Version:\s+(v\d+\.\d+)'],
+                        ['tools', 'assert', 'len(#STEP[-1][0])'],
+                     ]
+    },
     {
         "Name": "vswitch_vports_add_del_connection_vpp",
         "Deployment": "clean",
         "Description": "VPP: vSwitch - configure switch with vports, add and delete connection",
+        "vSwitch" : "VppDpdkVhost",
         "TestSteps": [
                         ['vswitch', 'add_switch', 'int_br0'],
                         ['vswitch', 'add_vport', 'int_br0'],