tests: Fix http static test failing on retry 50/39850/2
authoradrianvillin <avillin@cisco.com>
Wed, 8 Nov 2023 14:17:14 +0000 (15:17 +0100)
committerDave Wallace <dwallacelf@gmail.com>
Wed, 8 Nov 2023 20:36:49 +0000 (20:36 +0000)
- test_http_static.py: If namespace creation fails, try to delete the namespace and create it again
- vpp_qemu_utils.py: Added "isinstance()" to "delete_namespace()" to match "create_namespace()"

Type: test

Change-Id: I88ff7a36f5d52816fee16283efba6af025496491
Signed-off-by: adrianvillin <avillin@cisco.com>
test/asf/test_http_static.py
test/vpp_qemu_utils.py

index 1d87f4c..18e8ba5 100644 (file)
@@ -28,7 +28,13 @@ class TestHttpStaticVapi(VppAsfTestCase):
         cls.temp2 = tempfile.NamedTemporaryFile()
         cls.temp2.write(b"Hello world2")
 
-        create_namespace("HttpStatic")
+        try:
+            create_namespace("HttpStatic")
+        except Exception:
+            cls.logger.warning("Unable to create a namespace, retrying.")
+            delete_namespace("HttpStatic")
+            create_namespace("HttpStatic")
+
         create_host_interface("vppHost", "vppOut", "HttpStatic", "10.10.1.1/24")
 
         cls.vapi.cli("create host-interface name vppOut")
@@ -37,7 +43,7 @@ class TestHttpStaticVapi(VppAsfTestCase):
 
     @classmethod
     def tearDownClass(cls):
-        delete_namespace(["HttpStatic"])
+        delete_namespace("HttpStatic")
         delete_host_interfaces("vppHost")
         cls.temp.close()
         cls.temp2.close()
@@ -95,7 +101,13 @@ class TestHttpStaticCli(VppAsfTestCase):
         cls.temp2 = tempfile.NamedTemporaryFile()
         cls.temp2.write(b"Hello world2")
 
-        create_namespace("HttpStatic2")
+        try:
+            create_namespace("HttpStatic2")
+        except Exception:
+            cls.logger.warning("Unable to create namespace, retrying.")
+            delete_namespace("HttpStatic2")
+            create_namespace("HttpStatic2")
+
         create_host_interface("vppHost2", "vppOut2", "HttpStatic2", "10.10.1.1/24")
 
         cls.vapi.cli("create host-interface name vppOut2")
@@ -104,7 +116,7 @@ class TestHttpStaticCli(VppAsfTestCase):
 
     @classmethod
     def tearDownClass(cls):
-        delete_namespace(["HttpStatic2"])
+        delete_namespace("HttpStatic2")
         delete_host_interfaces("vppHost2")
         cls.temp.close()
         cls.temp2.close()
index e7e21a0..3a8fdc8 100644 (file)
@@ -216,12 +216,16 @@ def disable_interface_gso(namespace, interface):
         raise Exception("Error disabling gso:", e.output)
 
 
-def delete_namespace(namespaces):
+def delete_namespace(ns):
     """delete one or more namespaces.
 
     arguments:
     namespaces -- a list of namespace names
     """
+    if isinstance(ns, str):
+        namespaces = [ns]
+    else:
+        namespaces = ns
     try:
         for namespace in namespaces:
             result = subprocess.run(