qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PULL 11/15] Bootstrap Python venv for tests


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PULL 11/15] Bootstrap Python venv for tests
Date: Tue, 6 Nov 2018 14:34:36 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1

On 6/11/18 14:10, Peter Maydell wrote:
On 31 October 2018 at 00:31, Eduardo Habkost <address@hidden> wrote:
From: Cleber Rosa <address@hidden>

A number of QEMU tests are written in Python, and may benefit
from an untainted Python venv.

By using make rules, tests that depend on specific Python libs
can set that rule as a requirement, along with rules that require
the presence or installation of specific libraries.

The tests/requirements.txt is supposed to contain the Python
requirements that should be added to the venv created by check-venv.

Signed-off-by: Cleber Rosa <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Acked-by: Stefan Hajnoczi <address@hidden>
Acked-by: Wainer dos Santos Moschetta <address@hidden>
Reviewed-by: Caio Carrara <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>

--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -12,6 +12,7 @@ check-help:
         @echo " $(MAKE) check-block          Run block tests"
         @echo " $(MAKE) check-tcg            Run TCG tests"
         @echo " $(MAKE) check-report.html    Generates an HTML test report"
+       @echo " $(MAKE) check-venv           Creates a Python venv for tests"
         @echo " $(MAKE) check-clean          Clean the tests"
         @echo
         @echo "Please note that HTML reports do not regenerate if the unit 
tests"
@@ -899,6 +900,30 @@ check-decodetree:
            ./check.sh "$(PYTHON)" "$(SRC_PATH)/scripts/decodetree.py", \
            TEST, decodetree.py)

+# Python venv for running tests
+
+.PHONY: check-venv
+
+TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv
+TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt
+
+$(shell $(PYTHON) -c 'import sys; assert sys.version_info >= (3,0)' >/dev/null 
2>&1)
+ifeq ($(.SHELLSTATUS),0)
+$(TESTS_VENV_DIR): $(TESTS_VENV_REQ)
+       $(call quiet-command, \
+            $(PYTHON) -m venv --system-site-packages $@, \
+            VENV, $@)
+       $(call quiet-command, \
+            $(TESTS_VENV_DIR)/bin/python -m pip -q install -r 
$(TESTS_VENV_REQ), \
+            PIP, $(TESTS_VENV_REQ))
+       $(call quiet-command, touch $@)
+else
+$(TESTS_VENV_DIR):
+       $(error "venv directory for tests requires Python 3")
+endif
+
+check-venv: $(TESTS_VENV_DIR)

Hi -- this seems to be causing one of the travis configs to fail:

https://travis-ci.org/qemu/qemu/jobs/451311466

The config includes "--python=/usr/bin/python3", but the build
fails with
      CHK version_gen.h
/home/travis/build/qemu/qemu/tests/Makefile.include:928: *** "venv
directory for tests requires Python 3". Stop.

Would you mind having a look at what's happening there ?

I tested the failure using 'make check-venv PYTHON=python2' and the success using 'make check-venv PYTHON=python3' but didn't think of the default...

The quicker fix is to force PYTHON in .travis.yml, I'll prepare a patch.


thanks
-- PMM




reply via email to

[Prev in Thread] Current Thread [Next in Thread]