From: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Thomas Huth" <thuth@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Pierrick Bouvier" <pierrick.bouvier@linaro.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Manos Pitsidianakis" <manos.pitsidianakis@linaro.org>
Subject: [PATCH v2 3/3] tests/functional: add -k TEST_NAME_PATTERN CLI arg
Date: Fri, 18 Jul 2025 14:04:27 +0300 [thread overview]
Message-ID: <20250718-functional_tests_args-v2-3-cde6e08bf98e@linaro.org> (raw)
In-Reply-To: <20250718-functional_tests_args-v2-0-cde6e08bf98e@linaro.org>
Add a CLI argument that takes fnmatch(3)-style patterns as value and can
be specified many times. Only tests that match the pattern will be
executed. This argument is passed to unittest.main which takes the same
argument.
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
---
tests/functional/qemu_test/testcase.py | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/tests/functional/qemu_test/testcase.py b/tests/functional/qemu_test/testcase.py
index bfee6638edf6f9853ead1e3809ae3c9152089406..e137c05baf91f6f88d6228d86d98aa9498797382 100644
--- a/tests/functional/qemu_test/testcase.py
+++ b/tests/functional/qemu_test/testcase.py
@@ -16,6 +16,7 @@
import os
from pathlib import Path
import pycotap
+import itertools
import shutil
from subprocess import run
import sys
@@ -55,6 +56,14 @@ def parse_args(test_name: str) -> argparse.Namespace:
action="store_true",
help="List all tests that would be executed and exit.",
)
+ parser.add_argument(
+ "-k",
+ dest="test_name_patterns",
+ action="append",
+ type=str,
+ help="Only run tests which match the given substring. "
+ "This argument is passed to unittest.main verbatim.",
+ )
return parser.parse_args()
@@ -300,8 +309,16 @@ def main():
tr = pycotap.TAPTestRunner(message_log = pycotap.LogMode.LogToError,
test_output_log = pycotap.LogMode.LogToError)
- res = unittest.main(module = None, testRunner = tr, exit = False,
- argv=["__dummy__", path])
+ argv = ["__dummy__", path] + (
+ list(
+ itertools.chain.from_iterable(
+ ["-k", x] for x in args.test_name_patterns
+ )
+ )
+ if args.test_name_patterns
+ else []
+ )
+ res = unittest.main(module=None, testRunner=tr, exit=False, argv=argv)
for (test, message) in res.result.errors + res.result.failures:
if hasattr(test, "log_filename"):
--
2.47.2
next prev parent reply other threads:[~2025-07-18 11:05 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-18 11:04 [PATCH v2 0/3] tests/functional: add more CLI args Manos Pitsidianakis
2025-07-18 11:04 ` [PATCH v2 1/3] tests/functional: add --keep-scratch CLI arg Manos Pitsidianakis
2025-07-25 4:32 ` Thomas Huth
2025-07-18 11:04 ` [PATCH v2 2/3] tests/functional: add --list-tests " Manos Pitsidianakis
2025-07-25 4:39 ` Thomas Huth
2025-07-25 9:00 ` Manos Pitsidianakis
2025-07-18 11:04 ` Manos Pitsidianakis [this message]
2025-07-25 4:42 ` [PATCH v2 3/3] tests/functional: add -k TEST_NAME_PATTERN " Thomas Huth
2025-07-24 7:54 ` [PATCH v2 0/3] tests/functional: add more CLI args Manos Pitsidianakis
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=20250718-functional_tests_args-v2-3-cde6e08bf98e@linaro.org \
--to=manos.pitsidianakis@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=pierrick.bouvier@linaro.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
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).