tests: add PID of VPP under test to API dump filename for the test 76/22876/1
authorAndrew Yourtchenko <ayourtch@gmail.com>
Mon, 21 Oct 2019 12:55:48 +0000 (12:55 +0000)
committerAndrew Yourtchenko <ayourtch@gmail.com>
Mon, 21 Oct 2019 12:55:48 +0000 (12:55 +0000)
Some testclasses (e.g. IPSec) have methods with the same names,
this causes a race when running in parallel to save the API and
move it into the test's directory - the name of the file has
only the test method name as a discriminator.

Saving two traces from two VPP instances "succeeds", in that
it silently overwrites the file. But only one mv operation
works - the other gives an error "file not found" and fails the test.

Solution: add the PID of VPP under test to the API dump filename,
this way the filenames become guaranteed unique and the race is avoided.

Change-Id: I1bb47ed73369fea0f1bfbf907588a51e2cabfb7f
Type: test
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
test/framework.py

index 2afa64c..1be227a 100644 (file)
@@ -685,7 +685,8 @@ class VppTestCase(unittest.TestCase):
                 self.show_commands_at_teardown()
                 self.registry.remove_vpp_config(self.logger)
             # Save/Dump VPP api trace log
-            api_trace = "vpp_api_trace.%s.log" % self._testMethodName
+            m = self._testMethodName
+            api_trace = "vpp_api_trace.%s.%d.log" % (m, self.vpp.pid)
             tmp_api_trace = "/tmp/%s" % api_trace
             vpp_api_trace_log = "%s/%s" % (self.tempdir, api_trace)
             self.logger.info(self.vapi.ppcli("api trace save %s" % api_trace))