From: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com>
To: igt-dev@lists.freedesktop.org
Subject: [igt-dev] [PATCH i-g-t v2 03/12] scripts/igt_doc.py: add support to generate testlists
Date: Thu, 30 Mar 2023 07:42:12 +0200 [thread overview]
Message-ID: <20230330054221.2640814-4-mauro.chehab@linux.intel.com> (raw)
In-Reply-To: <20230330054221.2640814-1-mauro.chehab@linux.intel.com>
From: Mauro Carvalho Chehab <mchehab@kernel.org>
As the testlists are part of the documentation, add support
to generate them from the documentation on an specified
directory.
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
scripts/igt_doc.py | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/scripts/igt_doc.py b/scripts/igt_doc.py
index cc2768ae0847..efbcee5e74e2 100755
--- a/scripts/igt_doc.py
+++ b/scripts/igt_doc.py
@@ -1037,6 +1037,35 @@ class TestList:
for sub in tests.get_subtests(sort_field, filter_field)[""]:
print (sub)
+ def gen_testlist(self, directory, sort_field, filter_field):
+
+ """Generate testlists from the test documentation"""
+
+ test_prefix = os.path.commonprefix(self.get_subtests()[""])
+ test_prefix = re.sub(r'^igt@', '', test_prefix)
+
+ test_subtests = self.get_subtests(sort_field, filter_field)
+
+ for test in test_subtests.keys(): # pylint: disable=C0201,C0206
+ if not test_subtests[test]:
+ continue
+
+ testlist = test.lower()
+ if testlist == "":
+ fname = "other"
+ elif testlist == "bat":
+ fname = "fast-feedback"
+ else:
+ fname = testlist
+
+ fname = directory + "/" + test_prefix + fname + ".testlist"
+ fname = re.sub(r"[\s_]+", "-", fname)
+
+ with open(fname, 'w', encoding='utf8') as handler:
+ for sub in test_subtests[test]:
+ handler.write (f"{sub}\n")
+ print(f"{fname} created.")
+
#
# Main
#
@@ -1065,6 +1094,8 @@ parser.add_argument("--include-plan", action="store_true",
parser.add_argument("--igt-build-path",
help="Path where the IGT runner is sitting. Used by --check-testlist.",
default=IGT_BUILD_PATH)
+parser.add_argument("--gen-testlist",
+ help="Generate documentation at the GEN_TESTLIST directory, using SORT_FIELD to split the tests. Requires --sort-field.")
parser.add_argument('--files', nargs='+',
help="File name(s) to be processed")
@@ -1081,6 +1112,12 @@ if parse_args.check_testlist:
RUN = 1
tests.check_tests()
+if parse_args.gen_testlist:
+ RUN = 1
+ if not parse_args.sort_field:
+ sys.exit("Need a field to split the testlists")
+ tests.gen_testlist(parse_args.gen_testlist, parse_args.sort_field, parse_args.filter_field)
+
if parse_args.to_json:
RUN = 1
tests.print_json(parse_args.to_json)
--
2.39.2
next prev parent reply other threads:[~2023-03-30 5:42 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-30 5:42 [igt-dev] [PATCH i-g-t v2 00/12] Improve igt_doc.py Mauro Carvalho Chehab
2023-03-30 5:42 ` [igt-dev] [PATCH i-g-t v2 01/12] xe_test_config.json: do some adjustments at the output hierarchy Mauro Carvalho Chehab
2023-03-30 5:42 ` [igt-dev] [PATCH i-g-t v2 02/12] scripts/igt_doc.py: move show_subtests logic to the class Mauro Carvalho Chehab
2023-03-30 5:42 ` Mauro Carvalho Chehab [this message]
2023-03-30 5:42 ` [igt-dev] [PATCH i-g-t v2 04/12] scripts/igt_doc.py: prepare to place TestList class on a separate file Mauro Carvalho Chehab
2023-03-30 5:42 ` [igt-dev] [PATCH i-g-t v2 05/12] scripts/test_list.py: prepare to place " Mauro Carvalho Chehab
2023-03-30 5:42 ` [igt-dev] [PATCH i-g-t v2 06/12] scripts/igt_doc.py: re-introduce it by calling test_list.py Mauro Carvalho Chehab
2023-03-30 5:42 ` [igt-dev] [PATCH i-g-t v2 07/12] scripts/test_list.py: better handle documentation validation issues Mauro Carvalho Chehab
2023-03-30 5:42 ` [igt-dev] [PATCH i-g-t v2 08/12] scripts/test_list.py: add support for igt_simple_main Mauro Carvalho Chehab
2023-03-30 5:42 ` [igt-dev] [PATCH i-g-t v2 09/12] testplan/meson.build: Validate documentation at build time Mauro Carvalho Chehab
2023-03-30 5:42 ` [igt-dev] [PATCH i-g-t v2 10/12] xe/xe_vm: add documentation for igt@xe_vm@userptr-invalid Mauro Carvalho Chehab
2023-03-30 5:42 ` [igt-dev] [PATCH i-g-t v2 11/12] xe/xe_noexec_ping_pong: document subtest Mauro Carvalho Chehab
2023-03-30 5:42 ` [igt-dev] [PATCH i-g-t v2 12/12] runner/meson.build: fix minimal build Mauro Carvalho Chehab
2023-03-31 9:13 ` Kamil Konieczny
2023-03-31 10:39 ` Mauro Carvalho Chehab
2023-03-31 10:46 ` Mauro Carvalho Chehab
2023-03-31 11:10 ` Kamil Konieczny
2023-03-30 6:25 ` [igt-dev] ✗ GitLab.Pipeline: warning for Improve igt_doc.py (rev2) Patchwork
2023-03-30 6:42 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2023-03-31 1:46 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
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=20230330054221.2640814-4-mauro.chehab@linux.intel.com \
--to=mauro.chehab@linux.intel.com \
--cc=igt-dev@lists.freedesktop.org \
/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