From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Cleber Rosa <crosa@redhat.com>, qemu-devel@nongnu.org
Cc: "Laszlo Ersek" <lersek@redhat.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Caio Carrara" <ccarrara@redhat.com>,
"Philippe Mathieu-Daudé" <pmathieu@redhat.com>,
"Fam Zheng" <famz@redhat.com>,
"Eduardo Habkost" <ehabkost@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v4 0/3] Bootstrap Python venv and acceptance/functional tests
Date: Fri, 12 Oct 2018 23:44:55 +0200 [thread overview]
Message-ID: <ec6694c9-a8f0-7a9d-ee04-224a1f67e67c@redhat.com> (raw)
In-Reply-To: <20181012165347.2117-1-crosa@redhat.com>
On 12/10/2018 18:53, Cleber Rosa wrote:
> TL;DR
> =====
>
> Allow acceptance tests to be run with `make check-acceptance`.
>
> Details
> =======
>
> This introduces a Python virtual environment that will be setup within
> the QEMU build directory, that will contain the exact environment that
> tests may require.
>
> There's one current caveat: it requires Python 3, as it's based on the
> venv module. This was based on some discussions and perception about
> standardizing on Python 3, but can easily be made to accommodate Python
> 2 as well.
>
> Example of bootstrap and test execution on Travis-CI:
>
> https://travis-ci.org/qemu/qemu/jobs/439331028#L2508
If you activate Travis on your github account, you can test that in your
namespace without having to open zombie pull requests there... A simple
push to your repository will trigger a full Travis build.
This is how I use it btw, canceling the jobs I'm not interested in, to
quickly run the others.
i.e. https://travis-ci.org/philmd/qemu/jobs/439573299#L5600
>
> ...
> VENV /home/travis/build/qemu/qemu/tests/venv
> MKDIR /home/travis/build/qemu/qemu/tests/results
> PIP /home/travis/build/qemu/qemu/tests/venv-requirements.txt
> AVOCADO tests/acceptance
> JOB ID : 920e4fcf55a1782f1ae77bee64b20ccdc2e1111d
> JOB LOG : /home/travis/build/qemu/qemu/tests/results/job-2018-10-09T21.42-920e4fc/job.log
> (1/6) /home/travis/build/qemu/qemu/tests/acceptance/boot_linux_console.py:BootLinuxConsole.test: PASS (3.57 s)
> (2/6) /home/travis/build/qemu/qemu/tests/acceptance/version.py:Version.test_qmp_human_info_version: PASS (0.04 s)
> (3/6) /home/travis/build/qemu/qemu/tests/acceptance/vnc.py:Vnc.test_no_vnc: PASS (0.04 s)
> (4/6) /home/travis/build/qemu/qemu/tests/acceptance/vnc.py:Vnc.test_no_vnc_change_password: PASS (0.04 s)
> (5/6) /home/travis/build/qemu/qemu/tests/acceptance/vnc.py:Vnc.test_vnc_change_password_requires_a_password: PASS (0.04 s)
> (6/6) /home/travis/build/qemu/qemu/tests/acceptance/vnc.py:Vnc.test_vnc_change_password: PASS (0.04 s)
> RESULTS : PASS 6 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
> JOB TIME : 3.90 s
> ...
>
> Changes from v3:
> ================
>
> * Fixed typo in commit message (s/requiment/requirement/). (Eric)
>
> Changes from v2:
> ================
>
> * Make the $(TESTS_VENV_DIR) target depend on the
> venv-requirements.txt file, and touch $(TESTS_VENV_DIR) after venv
> runs. With this, updates on the file are reflected on the
> venv. (Philippe)
>
> * Run pip with "python -m pip". It may have been installed reusing
> the system wide packages, and then the script may not be available
> on the venv. (Philippe)
>
> * Dropped Python version on Travis, and using the version supplied
> by the distro (3.4). (Philippe)
>
> * Added "python3.4-venv" package requirement on Travis. (Philippe)
>
> * Added variable (AVOCADO_SHOW) with logging streams to be shown
> while running the acceptance tests. By default it's set to none,
> the equivalent of the quiet mode used on previous versions.
> (Philippe)
>
> * On Travis, set the AVOCADO_SHOW variable to "app", so that the
> individual test results can be easily seen. (Philippe)
>
> Ideas discussed, but not implemented:
>
> * Run pip with "$(PYTHON) -m pip -q install ..." because it points
> to the system wide Python installation. (Philippe)
>
> * Drop the "--system-site-packages" flag. Waiting on another round
> of tests to determine if they are really the cause of some package
> installation problems.
>
> Changes from v1:
> ================
>
> * TESTS_VENV_REQ (the path of "venv-requirements.txt") now points to
> the source path ($SRC_PATH instead of $BUILD_DIR)
>
> * Create the venv with "--system-site-packages", which allows the
> reuse of packages (and no additional downloads) in case there's a
> package installed system wide providing the same package and
> version.
>
> * Run Avocado with "python -m avocado". It may have been installed
> reusing the system wide packages, and then the script may not
> be available on the venv.
>
> * Improved documentation describing the Python 3, venv and pip
> requirements.
>
> * Updated avocado-framework requirement to latest released version
> (65.0)
>
> * (New commit) Added support for running the acceptance tests on
> Travis.
>
> Ideas discussed, but not implemented:
>
> * Install external packages such as python3-pip on Debian based
> systems, deemed too invasive on developer's systems.
>
> * Allow the use of Python 2, and consequently the "virtualenv"
> module.
>
> Cleber Rosa (3):
> Bootstrap Python venv for tests
> Acceptance tests: add make rule for running them
> Travis support for the acceptance tests
>
> .travis.yml | 5 +++++
> docs/devel/testing.rst | 35 ++++++++++++++++++++++++++++++-----
> tests/Makefile.include | 37 +++++++++++++++++++++++++++++++++++++
> tests/venv-requirements.txt | 4 ++++
> 4 files changed, 76 insertions(+), 5 deletions(-)
> create mode 100644 tests/venv-requirements.txt
>
next prev parent reply other threads:[~2018-10-12 21:45 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-12 16:53 [Qemu-devel] [PATCH v4 0/3] Bootstrap Python venv and acceptance/functional tests Cleber Rosa
2018-10-12 16:53 ` [Qemu-devel] [PATCH v4 1/3] Bootstrap Python venv for tests Cleber Rosa
2018-10-12 21:30 ` Philippe Mathieu-Daudé
2018-10-13 3:37 ` Eduardo Habkost
2018-10-15 18:41 ` Caio Carrara
2018-10-15 22:28 ` Philippe Mathieu-Daudé
2018-10-15 22:40 ` Eduardo Habkost
2018-10-16 14:08 ` Cleber Rosa
2018-10-16 14:20 ` Philippe Mathieu-Daudé
2018-10-16 14:44 ` Cleber Rosa
2018-10-16 13:56 ` Cleber Rosa
2018-10-16 15:04 ` Philippe Mathieu-Daudé
2018-10-16 13:51 ` Cleber Rosa
2018-10-16 13:50 ` Cleber Rosa
2018-10-16 14:58 ` Philippe Mathieu-Daudé
2018-10-15 19:04 ` Caio Carrara
2018-10-15 22:22 ` Philippe Mathieu-Daudé
2018-10-16 14:22 ` Cleber Rosa
2018-10-16 14:17 ` Cleber Rosa
2018-10-12 16:53 ` [Qemu-devel] [PATCH v4 2/3] Acceptance tests: add make rule for running them Cleber Rosa
2018-10-12 21:37 ` Philippe Mathieu-Daudé
2018-10-16 14:24 ` Cleber Rosa
2018-10-12 16:53 ` [Qemu-devel] [PATCH v4 3/3] Travis support for the acceptance tests Cleber Rosa
2018-10-12 21:51 ` Philippe Mathieu-Daudé
2018-10-17 12:13 ` Alex Bennée
2018-10-12 21:44 ` Philippe Mathieu-Daudé [this message]
2018-10-16 14:27 ` [Qemu-devel] [PATCH v4 0/3] Bootstrap Python venv and acceptance/functional tests Cleber Rosa
2018-10-17 10:20 ` Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly 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=ec6694c9-a8f0-7a9d-ee04-224a1f67e67c@redhat.com \
--to=philmd@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=ccarrara@redhat.com \
--cc=crosa@redhat.com \
--cc=ehabkost@redhat.com \
--cc=f4bug@amsat.org \
--cc=famz@redhat.com \
--cc=lersek@redhat.com \
--cc=pmathieu@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).