Add Neutron tests improvements
[openstack-build/neutron-build.git] / tests / runtests.sh
index 6b540716e111589ed8bdbde288069d55cecc9e52..7c32002504f9a5f0aa41e7b46702e19d37256c33 100755 (executable)
@@ -3,6 +3,7 @@
 PACKAGE=$1
 UBUNTU=false
 FAILURE=false
+FAILED_TESTS=""
 PLATFORM=$(python -mplatform)
 TOKEN=$(openssl rand -hex 10)
 MYSQL_PASS=mysql_pass
@@ -25,10 +26,8 @@ install_packages() {
         yum install -y openstack-keystone rabbitmq-server mysql-server MySQL-client python-oslo-utils
         #Install some plugins because they are required for db-migration scripts (bug #1371184)
         #Ubuntu neutron-server package include them
-        if [ "$SOURCEBRANCH" == "master" ]; then
-          yum install -y openstack-neutron-bigswitch openstack-neutron-brocade openstack-neutron-cisco openstack-neutron-hyperv openstack-neutron-vmware openstack-neutron-openvswitch \
-                         openstack-neutron-ryu openstack-neutron-linuxbridge openstack-neutron-metaplugin openstack-neutron-mellanox openstack-neutron-nec openstack-neutron-nuage
-        fi
+        yum install -y openstack-neutron-bigswitch openstack-neutron-brocade openstack-neutron-cisco openstack-neutron-hyperv openstack-neutron-vmware openstack-neutron-openvswitch \
+                       openstack-neutron-ryu openstack-neutron-linuxbridge openstack-neutron-metaplugin openstack-neutron-mellanox openstack-neutron-nec openstack-neutron-nuage
     fi
 }
 
@@ -154,6 +153,21 @@ start_neutron_server () {
     sleep 10
 }
 
+try () {
+    TEST_FUNCTION=$1
+    for i in {1..5}
+    do
+       FAILURE=false
+       $TEST_FUNCTION
+       if ! $FAILURE
+       then break
+       elif [ $i -eq 5 ]
+       then
+           FAILED_TESTS+="$TEST_FUNCTION "
+       fi
+    done
+}
+
 check_neutron_server() {
     #Execute tests
     neutron $NEUTRON_AUTH net-create mynet1
@@ -220,10 +234,11 @@ check_neutron_client () {
 }
 
 check_error () {
-    if $FAILURE
+    if [ "$FAILED_TESTS" != "" ]
     then
         grep TRACE /var/log/neutron/*
         grep ERROR /var/log/neutron/*
+        echo "Failed tests are: $FAILED_TESTS"
         exit 1
     fi
 }
@@ -237,7 +252,7 @@ case $PACKAGE in
     setup_neutron_services
     upgrade_neutron_db
     start_neutron_server
-    check_neutron_server
+    try check_neutron_server
     check_error
   ;;
   openstack-neutron)
@@ -248,10 +263,10 @@ case $PACKAGE in
     setup_neutron_services
     upgrade_neutron_db
     start_neutron_server
-    check_neutron_server
-    check_neutron_l3_agent
-    check_neutron_dhcp_agent
-    check_neutron_metadata_agent
+    try check_neutron_server
+    try check_neutron_l3_agent
+    try check_neutron_dhcp_agent
+    try check_neutron_metadata_agent
     check_error
   ;;
   openstack-neutron-ml2)
@@ -262,7 +277,7 @@ case $PACKAGE in
     setup_neutron_services
     upgrade_neutron_db
     start_neutron_server
-    check_neutron_server
+    try check_neutron_server
     check_error
   ;;
   openstack-neutron-openvswitch|neutron-plugin-openvswitch-agent)
@@ -273,7 +288,7 @@ case $PACKAGE in
     setup_neutron_services
     upgrade_neutron_db
     start_neutron_server
-    check_neutron_openvswitch
+    try check_neutron_openvswitch
     check_error
   ;;
   python-neutronclient)
@@ -288,7 +303,7 @@ case $PACKAGE in
     setup_neutron_services
     upgrade_neutron_db
     start_neutron_server
-    check_neutron_l3_agent
+    try check_neutron_l3_agent
     check_error
   ;;
   neutron-dhcp-agent)
@@ -299,7 +314,7 @@ case $PACKAGE in
     setup_neutron_services
     upgrade_neutron_db
     start_neutron_server
-    check_neutron_dhcp_agent
+    try check_neutron_dhcp_agent
     check_error
   ;;
   neutron-metadata-agent)
@@ -310,7 +325,7 @@ case $PACKAGE in
     setup_neutron_services
     upgrade_neutron_db
     start_neutron_server
-    check_neutron_metadata_agent
+    try check_neutron_metadata_agent
     check_error
   ;;
   openstack-neutron-metering-agent|neutron-plugin-metering-agent)
@@ -321,7 +336,7 @@ case $PACKAGE in
     setup_neutron_services
     upgrade_neutron_db
     start_neutron_server
-    check_neutron_metering_agent
+    try check_neutron_metering_agent
     check_error
   ;;
 esac