tests: support tmp-dir on different filesystem 29/37829/6
authorDmitry Valter <d-valter@yandex-team.ru>
Fri, 27 Jan 2023 12:49:55 +0000 (12:49 +0000)
committerDave Wallace <dwallacelf@gmail.com>
Tue, 14 Feb 2023 01:26:01 +0000 (01:26 +0000)
Support running tests with `--tmp-dir` on a filesystem different from /tmp.
os.rename withs only within a single FS whereas shutil.move works accross
different filesystems.

Type: improvement
Signed-off-by: Dmitry Valter <d-valter@yandex-team.ru>
Change-Id: I5371f5d75386bd2b82a75b3e6c1f2c850bc62356

test/asf/asfframework.py
test/asf/test_api_trace.py
test/framework.py
test/vpp_pg_interface.py

index b662042..5c64454 100644 (file)
@@ -855,7 +855,7 @@ class VppTestCase(CPUInterface, unittest.TestCase):
             vpp_api_trace_log = "%s/%s" % (self.tempdir, api_trace)
             self.logger.info(self.vapi.ppcli("api trace save %s" % api_trace))
             self.logger.info("Moving %s to %s\n" % (tmp_api_trace, vpp_api_trace_log))
-            os.rename(tmp_api_trace, vpp_api_trace_log)
+            shutil.move(tmp_api_trace, vpp_api_trace_log)
         except VppTransportSocketIOError:
             self.logger.debug(
                 "VppTransportSocketIOError: Vpp dead. Cannot log show commands."
index 35fb3c0..e38b81a 100644 (file)
@@ -3,6 +3,7 @@ import unittest
 from asfframework import VppTestCase, VppTestRunner
 from vpp_papi import VppEnum
 import json
+import shutil
 
 
 class TestJsonApiTrace(VppTestCase):
@@ -28,7 +29,7 @@ class TestJsonApiTrace(VppTestCase):
         tmp_api_trace = "/tmp/%s" % fname
         fpath = "%s/%s" % (self.tempdir, fname)
         self.vapi.cli("api trace save-json {}".format(fname))
-        os.rename(tmp_api_trace, fpath)
+        shutil.move(tmp_api_trace, fpath)
         with open(fpath, encoding="utf-8") as f:
             s = f.read()
         trace = json.loads(s)
index a7a3e2f..f90aa43 100644 (file)
@@ -931,7 +931,7 @@ class VppTestCase(CPUInterface, unittest.TestCase):
             vpp_api_trace_log = "%s/%s" % (self.tempdir, api_trace)
             self.logger.info(self.vapi.ppcli("api trace save %s" % api_trace))
             self.logger.info("Moving %s to %s\n" % (tmp_api_trace, vpp_api_trace_log))
-            os.rename(tmp_api_trace, vpp_api_trace_log)
+            shutil.move(tmp_api_trace, vpp_api_trace_log)
         except VppTransportSocketIOError:
             self.logger.debug(
                 "VppTransportSocketIOError: Vpp dead. Cannot log show commands."
index 2682774..0fd5df4 100644 (file)
@@ -1,4 +1,5 @@
 import os
+import shutil
 import socket
 from socket import inet_pton, inet_ntop
 import struct
@@ -168,7 +169,7 @@ class VppPGInterface(VppInterface):
                     filename,
                 )
                 self.test.logger.debug("Renaming %s->%s" % (path, name))
-                os.rename(path, name)
+                shutil.move(path, name)
         except OSError:
             self.test.logger.debug("OSError: Could not rename %s %s" % (path, filename))