QEMU-Devel Archive on lore.kernel.org
 help / color / Atom feed
From: Max Reitz <mreitz@redhat.com>
To: qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Thomas Huth <thuth@redhat.com>,
	qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>
Subject: [PATCH 02/23] iotests.py: Store socket files in $SOCK_DIR
Date: Thu, 10 Oct 2019 17:24:36 +0200
Message-ID: <20191010152457.17713-3-mreitz@redhat.com> (raw)
In-Reply-To: <20191010152457.17713-1-mreitz@redhat.com>

iotests.py itself does not store socket files, but it machine.py and
qtest.py do.  iotests.py needs to pass the respective path to them, and
they need to adhere to it.

Signed-off-by: Max Reitz <mreitz@redhat.com>
---
 python/qemu/machine.py        | 15 ++++++++++++---
 python/qemu/qtest.py          |  9 ++++++---
 tests/qemu-iotests/iotests.py |  4 +++-
 3 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/python/qemu/machine.py b/python/qemu/machine.py
index 128a3d1dc2..2024e8b1b1 100644
--- a/python/qemu/machine.py
+++ b/python/qemu/machine.py
@@ -71,7 +71,7 @@ class QEMUMachine(object):
 
     def __init__(self, binary, args=None, wrapper=None, name=None,
                  test_dir="/var/tmp", monitor_address=None,
-                 socket_scm_helper=None):
+                 socket_scm_helper=None, sock_dir=None):
         '''
         Initialize a QEMUMachine
 
@@ -90,6 +90,8 @@ class QEMUMachine(object):
             wrapper = []
         if name is None:
             name = "qemu-%d" % os.getpid()
+        if sock_dir is None:
+            sock_dir = test_dir
         self._name = name
         self._monitor_address = monitor_address
         self._vm_monitor = None
@@ -106,12 +108,14 @@ class QEMUMachine(object):
         self._qemu_full_args = None
         self._test_dir = test_dir
         self._temp_dir = None
+        self._sock_dir = sock_dir
         self._launched = False
         self._machine = None
         self._console_set = False
         self._console_device_type = None
         self._console_address = None
         self._console_socket = None
+        self._remove_files = []
 
         # just in case logging wasn't configured by the main script:
         logging.basicConfig()
@@ -236,8 +240,9 @@ class QEMUMachine(object):
         if self._machine is not None:
             args.extend(['-machine', self._machine])
         if self._console_set:
-            self._console_address = os.path.join(self._temp_dir,
+            self._console_address = os.path.join(self._sock_dir,
                                                  self._name + "-console.sock")
+            self._remove_files.append(self._console_address)
             chardev = ('socket,id=console,path=%s,server,nowait' %
                        self._console_address)
             args.extend(['-chardev', chardev])
@@ -253,8 +258,9 @@ class QEMUMachine(object):
         if self._monitor_address is not None:
             self._vm_monitor = self._monitor_address
         else:
-            self._vm_monitor = os.path.join(self._temp_dir,
+            self._vm_monitor = os.path.join(self._sock_dir,
                                             self._name + "-monitor.sock")
+            self._remove_files.append(self._vm_monitor)
         self._qemu_log_path = os.path.join(self._temp_dir, self._name + ".log")
         self._qemu_log_file = open(self._qemu_log_path, 'wb')
 
@@ -279,6 +285,9 @@ class QEMUMachine(object):
             shutil.rmtree(self._temp_dir)
             self._temp_dir = None
 
+        while len(self._remove_files) > 0:
+            self._remove_if_exists(self._remove_files.pop())
+
     def launch(self):
         """
         Launch the VM and make sure we cleanup and expose the
diff --git a/python/qemu/qtest.py b/python/qemu/qtest.py
index 3f1d2cb325..d24ad04256 100644
--- a/python/qemu/qtest.py
+++ b/python/qemu/qtest.py
@@ -84,14 +84,17 @@ class QEMUQtestMachine(QEMUMachine):
     '''A QEMU VM'''
 
     def __init__(self, binary, args=None, name=None, test_dir="/var/tmp",
-                 socket_scm_helper=None):
+                 socket_scm_helper=None, sock_dir=None):
         if name is None:
             name = "qemu-%d" % os.getpid()
+        if sock_dir is None:
+            sock_dir = test_dir
         super(QEMUQtestMachine,
               self).__init__(binary, args, name=name, test_dir=test_dir,
-                             socket_scm_helper=socket_scm_helper)
+                             socket_scm_helper=socket_scm_helper,
+                             sock_dir=sock_dir)
         self._qtest = None
-        self._qtest_path = os.path.join(test_dir, name + "-qtest.sock")
+        self._qtest_path = os.path.join(sock_dir, name + "-qtest.sock")
 
     def _base_args(self):
         args = super(QEMUQtestMachine, self)._base_args()
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 3a8f378f90..49cd205a97 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -57,6 +57,7 @@ qemu_opts = os.environ.get('QEMU_OPTIONS', '').strip().split(' ')
 imgfmt = os.environ.get('IMGFMT', 'raw')
 imgproto = os.environ.get('IMGPROTO', 'file')
 test_dir = os.environ.get('TEST_DIR')
+sock_dir = os.environ.get('SOCK_DIR')
 output_dir = os.environ.get('OUTPUT_DIR', '.')
 cachemode = os.environ.get('CACHEMODE')
 qemu_default_machine = os.environ.get('QEMU_DEFAULT_MACHINE')
@@ -445,7 +446,8 @@ class VM(qtest.QEMUQtestMachine):
         name = "qemu%s-%d" % (path_suffix, os.getpid())
         super(VM, self).__init__(qemu_prog, qemu_opts, name=name,
                                  test_dir=test_dir,
-                                 socket_scm_helper=socket_scm_helper)
+                                 socket_scm_helper=socket_scm_helper,
+                                 sock_dir=sock_dir)
         self._num_drives = 0
 
     def add_object(self, opts):
-- 
2.21.0



  parent reply index

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-10 15:24 [PATCH 00/23] iotests: Add and use $SOCK_DIR Max Reitz
2019-10-10 15:24 ` [PATCH 01/23] iotests: Introduce $SOCK_DIR Max Reitz
2019-10-10 18:18   ` Eric Blake
2019-10-11  7:51     ` Max Reitz
2019-10-10 15:24 ` Max Reitz [this message]
2019-10-10 18:36   ` [PATCH 02/23] iotests.py: Store socket files in $SOCK_DIR Eric Blake
2019-10-11  7:21   ` Thomas Huth
2019-10-10 15:24 ` [PATCH 03/23] iotests.py: Add @base_dir to FilePaths etc Max Reitz
2019-10-10 18:40   ` Eric Blake
2019-10-10 15:24 ` [PATCH 04/23] iotests: Filter $SOCK_DIR Max Reitz
2019-10-10 18:42   ` Eric Blake
2019-10-11  7:54     ` Max Reitz
2019-10-11  7:57       ` Thomas Huth
2019-10-10 19:50   ` Eric Blake
2019-10-11  7:57     ` Max Reitz
2019-10-10 15:24 ` [PATCH 05/23] iotests: Let common.nbd create socket in $SOCK_DIR Max Reitz
2019-10-10 18:59   ` Eric Blake
2019-10-10 15:24 ` [PATCH 06/23] iotests/083: Create " Max Reitz
2019-10-10 19:03   ` Eric Blake
2019-10-11  7:31   ` Thomas Huth
2019-10-10 15:24 ` [PATCH 07/23] iotests/140: " Max Reitz
2019-10-10 19:05   ` Eric Blake
2019-10-11  7:34   ` Thomas Huth
2019-10-10 15:24 ` [PATCH 08/23] iotests/143: " Max Reitz
2019-10-10 19:23   ` Eric Blake
2019-10-11  7:35   ` Thomas Huth
2019-10-10 15:24 ` [PATCH 09/23] iotests/147: " Max Reitz
2019-10-10 19:23   ` Eric Blake
2019-10-11  7:36   ` Thomas Huth
2019-10-10 15:24 ` [PATCH 10/23] iotests/181: " Max Reitz
2019-10-10 19:24   ` Eric Blake
2019-10-11  7:38   ` Thomas Huth
2019-10-10 15:24 ` [PATCH 11/23] iotests/182: " Max Reitz
2019-10-10 19:24   ` Eric Blake
2019-10-11  7:38   ` Thomas Huth
2019-10-10 15:24 ` [PATCH 12/23] iotests/183: " Max Reitz
2019-10-10 19:28   ` Eric Blake
2019-10-11  7:42   ` Thomas Huth
2019-10-10 15:24 ` [PATCH 13/23] iotests/192: " Max Reitz
2019-10-10 19:28   ` Eric Blake
2019-10-10 15:24 ` [PATCH 14/23] iotests/194: Create sockets " Max Reitz
2019-10-10 19:32   ` Eric Blake
2019-10-10 19:43   ` Eric Blake
2019-10-11  7:55     ` Max Reitz
2019-10-10 15:24 ` [PATCH 15/23] iotests/201: Create socket " Max Reitz
2019-10-10 19:39   ` Eric Blake
2019-10-10 15:24 ` [PATCH 16/23] iotests/205: " Max Reitz
2019-10-10 19:40   ` Eric Blake
2019-10-10 15:24 ` [PATCH 17/23] iotests/208: " Max Reitz
2019-10-10 19:41   ` Eric Blake
2019-10-10 15:24 ` [PATCH 18/23] iotests/209: " Max Reitz
2019-10-10 19:44   ` Eric Blake
2019-10-10 15:24 ` [PATCH 19/23] iotests/222: " Max Reitz
2019-10-10 19:45   ` Eric Blake
2019-10-10 15:24 ` [PATCH 20/23] iotests/223: " Max Reitz
2019-10-10 19:46   ` Eric Blake
2019-10-10 15:24 ` [PATCH 21/23] iotests/240: " Max Reitz
2019-10-10 19:46   ` Eric Blake
2019-10-10 15:24 ` [PATCH 22/23] iotests/267: " Max Reitz
2019-10-10 19:47   ` Eric Blake
2019-10-10 15:24 ` [PATCH 23/23] iotests: Drop TEST_DIR filter from _filter_nbd Max Reitz
2019-10-10 19:51   ` Eric Blake
2019-10-11  7:27 ` [PATCH 00/23] iotests: Add and use $SOCK_DIR Thomas Huth
2019-10-11  8:03   ` Max Reitz
2019-10-11  8:13     ` Thomas Huth
2019-10-11  8:54   ` Max Reitz

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191010152457.17713-3-mreitz@redhat.com \
    --to=mreitz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

QEMU-Devel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/qemu-devel/0 qemu-devel/git/0.git
	git clone --mirror https://lore.kernel.org/qemu-devel/1 qemu-devel/git/1.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 qemu-devel qemu-devel/ https://lore.kernel.org/qemu-devel \
		qemu-devel@nongnu.org
	public-inbox-index qemu-devel

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.nongnu.qemu-devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git