[RFC PATCH 5/9] tests: use tests/venv to run basevm.py-based scripts

John Snow posted 9 patches 3 years, 9 months ago
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Thomas Huth <thuth@redhat.com>, Wainer dos Santos Moschetta <wainersm@redhat.com>, Beraldo Leal <bleal@redhat.com>, John Snow <jsnow@redhat.com>, Cleber Rosa <crosa@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>
[RFC PATCH 5/9] tests: use tests/venv to run basevm.py-based scripts
Posted by John Snow 3 years, 9 months ago
This patch co-opts the virtual environment being used by avocado tests
to also run the basevm.py tests. This is being done in preparation for
for the qemu.qmp package being removed from qemu.git.

As part of the change, remove any sys.path() hacks and treat "qemu" as a
normal third-party import.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 tests/vm/Makefile.include | 13 +++++++------
 tests/vm/basevm.py        |  6 +++---
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
index ae91f5043e5..588bc999cc9 100644
--- a/tests/vm/Makefile.include
+++ b/tests/vm/Makefile.include
@@ -84,10 +84,11 @@ vm-clean-all:
 
 $(IMAGES_DIR)/%.img:	$(SRC_PATH)/tests/vm/% \
 			$(SRC_PATH)/tests/vm/basevm.py \
-			$(SRC_PATH)/tests/vm/Makefile.include
+			$(SRC_PATH)/tests/vm/Makefile.include \
+			check-venv
 	@mkdir -p $(IMAGES_DIR)
 	$(call quiet-command, \
-		$(PYTHON) $< \
+		$(TESTS_PYTHON) $< \
 		$(if $(V)$(DEBUG), --debug) \
 		$(if $(GENISOIMAGE),--genisoimage $(GENISOIMAGE)) \
 		$(if $(QEMU_LOCAL),--build-path $(BUILD_DIR)) \
@@ -101,9 +102,9 @@ $(IMAGES_DIR)/%.img:	$(SRC_PATH)/tests/vm/% \
 
 
 # Build in VM $(IMAGE)
-vm-build-%: $(IMAGES_DIR)/%.img
+vm-build-%: $(IMAGES_DIR)/%.img check-venv
 	$(call quiet-command, \
-		$(PYTHON) $(SRC_PATH)/tests/vm/$* \
+		$(TESTS_PYTHON) $(SRC_PATH)/tests/vm/$* \
 		$(if $(V)$(DEBUG), --debug) \
 		$(if $(DEBUG), --interactive) \
 		$(if $(J),--jobs $(J)) \
@@ -127,9 +128,9 @@ vm-boot-serial-%: $(IMAGES_DIR)/%.img
 		-device virtio-net-pci,netdev=vnet \
 	|| true
 
-vm-boot-ssh-%: $(IMAGES_DIR)/%.img
+vm-boot-ssh-%: $(IMAGES_DIR)/%.img check-venv
 	$(call quiet-command, \
-		$(PYTHON) $(SRC_PATH)/tests/vm/$* \
+		$(TESTS_PYTHON) $(SRC_PATH)/tests/vm/$* \
 		$(if $(J),--jobs $(J)) \
 		$(if $(V)$(DEBUG), --debug) \
 		$(if $(QEMU_LOCAL),--build-path $(BUILD_DIR)) \
diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index 254e11c932b..d7d0413df35 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -18,9 +18,6 @@
 import logging
 import time
 import datetime
-sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
-from qemu.machine import QEMUMachine
-from qemu.utils import get_info_usernet_hostfwd_port, kvm_available
 import subprocess
 import hashlib
 import argparse
@@ -31,6 +28,9 @@
 import traceback
 import shlex
 
+from qemu.machine import QEMUMachine
+from qemu.utils import get_info_usernet_hostfwd_port, kvm_available
+
 SSH_KEY_FILE = os.path.join(os.path.dirname(__file__),
                "..", "keys", "id_rsa")
 SSH_PUB_KEY_FILE = os.path.join(os.path.dirname(__file__),
-- 
2.34.1
Re: [RFC PATCH 5/9] tests: use tests/venv to run basevm.py-based scripts
Posted by Paolo Bonzini 3 years, 9 months ago
On 5/13/22 02:06, John Snow wrote:
> This patch co-opts the virtual environment being used by avocado tests
> to also run the basevm.py tests. This is being done in preparation for
> for the qemu.qmp package being removed from qemu.git.
> 
> As part of the change, remove any sys.path() hacks and treat "qemu" as a
> normal third-party import.

That's already a good reason to do it, independent of qemu.qmp being 
removed from qemu.git.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>

> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>   tests/vm/Makefile.include | 13 +++++++------
>   tests/vm/basevm.py        |  6 +++---
>   2 files changed, 10 insertions(+), 9 deletions(-)
> 
> diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
> index ae91f5043e5..588bc999cc9 100644
> --- a/tests/vm/Makefile.include
> +++ b/tests/vm/Makefile.include
> @@ -84,10 +84,11 @@ vm-clean-all:
>   
>   $(IMAGES_DIR)/%.img:	$(SRC_PATH)/tests/vm/% \
>   			$(SRC_PATH)/tests/vm/basevm.py \
> -			$(SRC_PATH)/tests/vm/Makefile.include
> +			$(SRC_PATH)/tests/vm/Makefile.include \
> +			check-venv
>   	@mkdir -p $(IMAGES_DIR)
>   	$(call quiet-command, \
> -		$(PYTHON) $< \
> +		$(TESTS_PYTHON) $< \
>   		$(if $(V)$(DEBUG), --debug) \
>   		$(if $(GENISOIMAGE),--genisoimage $(GENISOIMAGE)) \
>   		$(if $(QEMU_LOCAL),--build-path $(BUILD_DIR)) \
> @@ -101,9 +102,9 @@ $(IMAGES_DIR)/%.img:	$(SRC_PATH)/tests/vm/% \
>   
>   
>   # Build in VM $(IMAGE)
> -vm-build-%: $(IMAGES_DIR)/%.img
> +vm-build-%: $(IMAGES_DIR)/%.img check-venv
>   	$(call quiet-command, \
> -		$(PYTHON) $(SRC_PATH)/tests/vm/$* \
> +		$(TESTS_PYTHON) $(SRC_PATH)/tests/vm/$* \
>   		$(if $(V)$(DEBUG), --debug) \
>   		$(if $(DEBUG), --interactive) \
>   		$(if $(J),--jobs $(J)) \
> @@ -127,9 +128,9 @@ vm-boot-serial-%: $(IMAGES_DIR)/%.img
>   		-device virtio-net-pci,netdev=vnet \
>   	|| true
>   
> -vm-boot-ssh-%: $(IMAGES_DIR)/%.img
> +vm-boot-ssh-%: $(IMAGES_DIR)/%.img check-venv
>   	$(call quiet-command, \
> -		$(PYTHON) $(SRC_PATH)/tests/vm/$* \
> +		$(TESTS_PYTHON) $(SRC_PATH)/tests/vm/$* \
>   		$(if $(J),--jobs $(J)) \
>   		$(if $(V)$(DEBUG), --debug) \
>   		$(if $(QEMU_LOCAL),--build-path $(BUILD_DIR)) \
> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
> index 254e11c932b..d7d0413df35 100644
> --- a/tests/vm/basevm.py
> +++ b/tests/vm/basevm.py
> @@ -18,9 +18,6 @@
>   import logging
>   import time
>   import datetime
> -sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python'))
> -from qemu.machine import QEMUMachine
> -from qemu.utils import get_info_usernet_hostfwd_port, kvm_available
>   import subprocess
>   import hashlib
>   import argparse
> @@ -31,6 +28,9 @@
>   import traceback
>   import shlex
>   
> +from qemu.machine import QEMUMachine
> +from qemu.utils import get_info_usernet_hostfwd_port, kvm_available
> +
>   SSH_KEY_FILE = os.path.join(os.path.dirname(__file__),
>                  "..", "keys", "id_rsa")
>   SSH_PUB_KEY_FILE = os.path.join(os.path.dirname(__file__),