tests: use os.rename instead of os.replace in lttng_live_server.py
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 1 Oct 2019 22:22:10 +0000 (18:22 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 3 Oct 2019 14:45:11 +0000 (10:45 -0400)
On Windows, os.rename fails if the destination file exists, which is the
case for the port file in lttng_live_server.py.  The file is created by
the bash test script.

This results in the following error:

    # Starting LTTng live server mockup
    Traceback (most recent call last):
      File "C:/Users/smarchi/babeltrace/tests/data/plugins/src.ctf.lttng-live/lttng_live_server.py", line 1449, in <module>
        args.port_filename, args.sessions, args.max_query_data_response_size
      File "C:/Users/smarchi/babeltrace/tests/data/plugins/src.ctf.lttng-live/lttng_live_server.py", line 1229, in __init__
        self._write_port_to_file(port_filename)
      File "C:/Users/smarchi/babeltrace/tests/data/plugins/src.ctf.lttng-live/lttng_live_server.py", line 1342, in _write_port_to_file
        os.rename(tmp_port_file.name, port_filename)
    FileExistsError: [WinError 183] Cannot create a file when that file already exists: 'C:/Users/smarchi/AppData/Local/Temp/tmpi8ihb0ck' -> 'test_live_list_sessions_server_port.5iod4m'

Use os.replace instead.

Change-Id: I8d7a28da66f11975bb0e2d355084a8a336500cc0
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/2113
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Reviewed-by: Michael Jeanson <mjeanson@efficios.com>
tests/data/plugins/src.ctf.lttng-live/lttng_live_server.py

index 416f9bca1eda60c8d9362b91c7566057f230a7b2..a30dbc4657c79d65bead37cc264b49da8f9cf370 100644 (file)
@@ -1339,7 +1339,7 @@ class LttngLiveServer:
             print(self._server_port, end='', file=tmp_port_file)
 
         # Rename temporary file to real file
-        os.rename(tmp_port_file.name, port_filename)
+        os.replace(tmp_port_file.name, port_filename)
         logging.info(
             'Renamed port file: src-path="{}", dst-path="{}"'.format(
                 tmp_port_file.name, port_filename
This page took 0.025464 seconds and 4 git commands to generate.