* Re: [LTP] doc: generate CVE catalog documentation
2026-04-24 12:18 [LTP] [PATCH v3 " Sachin Sant
@ 2026-04-28 7:06 ` linuxtestproject.agent
0 siblings, 0 replies; 10+ messages in thread
From: linuxtestproject.agent @ 2026-04-28 7:06 UTC (permalink / raw)
To: Sachin Sant; +Cc: ltp, LTP AI Reviewer
Hi Sachin,
On Fri, 24 Apr 2026, Sachin Sant wrote:
> doc: generate CVE catalog documentation
> doc: Rename statistics page to 'Supported syscalls'
Both patches look good to me.
One minor note for future reference: the suppress_warnings entry added
in patch 1 silences all autosectionlabel warnings globally, not just
those from kernel-doc content as the comment implies. This is pre-existing
context and does not block this series.
Reviewed-by: LTP AI Reviewer <ltp-ai@noreply.github.com>
---
Note:
Our agent completed the review of the patch.
The agent can sometimes produce false positives although often its
findings are genuine. If you find issues with the review, please
comment this email or ignore the suggestions.
Regards,
LTP AI Reviewer
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread
* [LTP] [PATCH v4 1/2] doc: generate CVE catalog documentation
@ 2026-04-28 14:36 Sachin Sant
2026-04-28 14:36 ` [LTP] [PATCH 2/2] doc: Rename statistics page to 'Supported syscalls' Sachin Sant
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Sachin Sant @ 2026-04-28 14:36 UTC (permalink / raw)
To: ltp
Add a Sphinx builder hook to parse runtest/cve and generate a
comprehensive CVE catalog in a single documentation file.
The implementation:
- Parses runtest/cve to extract CVE IDs, test names, and options
- Generates a single CVE catalog file (_static/cve.rst) containing:
* Total CVE count
* All CVEs sorted in descending order (newest first)
* Table of CVEs:
- CVE ID
- Test name (Cross-references to test catalog entries)
- Integrates CVE catalog into main documentation index
Closes: https://github.com/linux-test-project/ltp/issues/1254
Cc: Andrea Cervesato <andrea.cervesato@suse.com>
Cc: Petr Vorel <pvorel@suse.cz>
Signed-off-by: Sachin Sant <sachinp@linux.ibm.com>
---
V4 changes:
- Simplified the CVE table (id, test name)
- Removed individual CVE pages
- v3 link https://lore.kernel.org/ltp/69f0b046.df0a0220.3765a8.f8e4@mx.google.com/T/#u
V3 changes:
- CVEs sorted in descending order
- append test name to CVE id : CVE (Test Name)
- Separate page for CVE catalog
- Link cve testcases to Test catalog entry
- v2 link https://lore.kernel.org/ltp/0df5f75d-eb8f-428e-9888-bb7a90a6b1a4@linux.ibm.com/
V2 changes:
- Replace Fixes tag by Closes
- V1 link https://lore.kernel.org/ltp/20260423105304.59788-1-sachinp@linux.ibm.com/T/#u
---
doc/Makefile | 2 +-
doc/conf.py | 91 +++++++++++++++++++++++++++++++++++++++
doc/index.rst | 4 ++
doc/users/cve_catalog.rst | 6 +++
4 files changed, 102 insertions(+), 1 deletion(-)
create mode 100644 doc/users/cve_catalog.rst
diff --git a/doc/Makefile b/doc/Makefile
index 3123b1cd7..e99cbe666 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -30,7 +30,7 @@ spelling:
$(RUN_VENV); sphinx-build -b spelling -d build/doctree . build/spelling
clean:
- rm -rf html/ build/ _static/syscalls.rst _static/tests.rst syscalls.tbl \
+ rm -rf html/ build/ _static/syscalls.rst _static/tests.rst _static/cve.rst syscalls.tbl \
${abs_top_builddir}/metadata/ltp.json
distclean: clean
diff --git a/doc/conf.py b/doc/conf.py
index 63d09352e..d692638a0 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -30,6 +30,15 @@ extensions = [
'sphinx.ext.extlinks',
]
+# Configure autosectionlabel to prefix labels with document name
+# This prevents duplicate labels when same test name appears in multiple files
+autosectionlabel_prefix_document = True
+# Only create labels for sections with unique names
+autosectionlabel_maxdepth = 2
+
+# Suppress duplicate label warnings for kernel-doc generated content
+suppress_warnings = ['autosectionlabel.*']
+
exclude_patterns = ["html*", '_static*', '.venv*']
extlinks = {
'repo': (f'{ltp_repo}/%s', '%s'),
@@ -535,6 +544,87 @@ def generate_test_catalog(_):
with open(output, 'w+', encoding='utf-8') as new_tests:
new_tests.write('\n'.join(text))
+def generate_cve_catalog(_):
+ """
+ Generate CVE catalog in a single file. Parse runtest/cve file and
+ generate documentation with links to CVE databases and test sources.
+ Similar to test_catalog, creates a single _static/cve.rst file with
+ all CVE information.
+ """
+ output = '_static/cve.rst'
+ runtest_cve = '../runtest/cve'
+ metadata_file = '../metadata/ltp.json'
+
+ # Load metadata to check which tests exist in the catalog
+ metadata = None
+ try:
+ with open(metadata_file, 'r', encoding='utf-8') as data:
+ metadata = json.load(data)
+ except FileNotFoundError:
+ logger = sphinx.util.logging.getLogger(__name__)
+ msg = f"Can't find metadata file ({metadata_file})"
+ logger.warning(msg)
+
+ # Parse runtest/cve file
+ cve_data = {}
+
+ try:
+ with open(runtest_cve, 'r', encoding='utf-8') as f:
+ for line in f:
+ line = line.strip()
+ if not line or line.startswith('#'):
+ continue
+
+ parts = line.split(None, 2)
+ if len(parts) >= 2:
+ cve_id = parts[0].upper()
+ test_name = parts[1]
+
+ cve_data[cve_id] = {
+ 'cve_id': cve_id,
+ 'test_name': test_name,
+ }
+ except FileNotFoundError:
+ logger = sphinx.util.logging.getLogger(__name__)
+ msg = f"Can't find runtest/cve file ({runtest_cve})"
+ logger.warning(msg)
+ return
+
+ # Generate single CVE catalog file
+ total_cves = len(cve_data)
+ text = [
+ '.. warning::',
+ ' The following CVE catalog has been generated from the',
+ ' runtest/cve file and includes all CVE reproducers in LTP.',
+ '',
+ f'LTP includes reproducers for {total_cves} known CVEs.',
+ '',
+ '.. list-table::',
+ ' :header-rows: 1',
+ ' :widths: 40 60',
+ '',
+ ' * - CVE ID',
+ ' - Test Name',
+ ]
+
+ # Add CVEs in descending order (newest first)
+ for cve_id, cve_info in sorted(cve_data.items(), reverse=True):
+ test_name = cve_info["test_name"]
+
+ # Only create cross-reference if test exists in metadata
+ if metadata and test_name in metadata.get('tests', {}):
+ test_anchor = f"users/test_catalog:{test_name}"
+ test_link = f":ref:`{test_name} <{test_anchor}>`"
+ else:
+ test_link = f"``{test_name}``"
+
+ text.extend([
+ f' * - {cve_id}',
+ f' - {test_link}',
+ ])
+
+ with open(output, 'w+', encoding='utf-8') as cve_catalog:
+ cve_catalog.write('\n'.join(text))
def setup(app):
"""
@@ -543,4 +633,5 @@ def setup(app):
"""
app.add_css_file('custom.css')
app.connect('builder-inited', generate_syscalls_stats)
+ app.connect('builder-inited', generate_cve_catalog)
app.connect('builder-inited', generate_test_catalog)
diff --git a/doc/index.rst b/doc/index.rst
index 496a12f80..733495f51 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -12,6 +12,7 @@
users/testers_guide
users/supported_systems
users/stats
+ users/cve_catalog
users/test_catalog
.. toctree::
@@ -58,6 +59,9 @@ For users
:doc:`users/stats`
Some LTP statistics
+:doc:`users/cve_catalog`
+ LTP reproducers for known CVEs
+
:doc:`users/test_catalog`
The LTP test catalog
diff --git a/doc/users/cve_catalog.rst b/doc/users/cve_catalog.rst
new file mode 100644
index 000000000..5a5b9b54a
--- /dev/null
+++ b/doc/users/cve_catalog.rst
@@ -0,0 +1,6 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+
+CVE catalog
+===========
+
+.. include:: ../_static/cve.rst
--
2.39.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [LTP] [PATCH 2/2] doc: Rename statistics page to 'Supported syscalls'
2026-04-28 14:36 [LTP] [PATCH v4 1/2] doc: generate CVE catalog documentation Sachin Sant
@ 2026-04-28 14:36 ` Sachin Sant
2026-04-29 7:21 ` Andrea Cervesato via ltp
2026-04-28 16:55 ` [LTP] doc: generate CVE catalog documentation linuxtestproject.agent
` (3 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Sachin Sant @ 2026-04-28 14:36 UTC (permalink / raw)
To: ltp
Rename the documentation page from 'Statistics' to 'Supported syscalls'
to better reflect its content, which focuses on syscall coverage.
- Renamed doc/users/stats.rst to doc/users/supported_syscalls.rst
- Updated page title and description
- Updated references in doc/index.rst
- Updated spelling exclusion pattern in doc/conf.py
- Renamed function definition from generate_syscalls_stats to
generate_supported_syscalls
- Updated app.connect() call to use the new function name
Reviewed-by: Andrea Cervesato <andrea.cervesato@suse.com>
Signed-off-by: Sachin Sant <sachinp@linux.ibm.com>
---
doc/conf.py | 13 +++++++------
doc/index.rst | 6 +++---
doc/users/stats.rst | 9 ---------
doc/users/supported_syscalls.rst | 9 +++++++++
4 files changed, 19 insertions(+), 18 deletions(-)
delete mode 100644 doc/users/stats.rst
create mode 100644 doc/users/supported_syscalls.rst
diff --git a/doc/conf.py b/doc/conf.py
index d692638a0..a4fdf1436 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -55,7 +55,7 @@ manpages_url = 'https://man7.org/linux/man-pages/man{section}/{page}.{section}.h
spelling_lang = "en_US"
spelling_warning = True
-spelling_exclude_patterns = ['users/stats.rst']
+spelling_exclude_patterns = ['users/supported_syscalls.rst']
spelling_word_list_filename = "spelling_wordlist"
# -- Options for HTML output -------------------------------------------------
@@ -65,11 +65,12 @@ html_theme = 'sphinx_rtd_theme'
html_static_path = ['_static']
-def generate_syscalls_stats(_):
+def generate_supported_syscalls(_):
"""
- Generate statistics for syscalls. We fetch the syscalls list from the kernel
- sources, then we compare it with testcases/kernel/syscalls folder and
- generate a file that is included in the statistics documentation section.
+ Generate supported syscalls documentation. We fetch the syscalls list from
+ the kernel sources, then we compare it with testcases/kernel/syscalls folder
+ and generate a file that is included in the supported syscalls documentation
+ section.
"""
output = '_static/syscalls.rst'
@@ -632,6 +633,6 @@ def setup(app):
customizations.
"""
app.add_css_file('custom.css')
- app.connect('builder-inited', generate_syscalls_stats)
+ app.connect('builder-inited', generate_supported_syscalls)
app.connect('builder-inited', generate_cve_catalog)
app.connect('builder-inited', generate_test_catalog)
diff --git a/doc/index.rst b/doc/index.rst
index 733495f51..f80ca4be1 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -11,7 +11,7 @@
users/setup_tests
users/testers_guide
users/supported_systems
- users/stats
+ users/supported_syscalls
users/cve_catalog
users/test_catalog
@@ -56,8 +56,8 @@ For users
:doc:`users/supported_systems`
A list of supported technologies by the LTP framework
-:doc:`users/stats`
- Some LTP statistics
+:doc:`users/supported_syscalls`
+ Syscalls supported by LTP tests
:doc:`users/cve_catalog`
LTP reproducers for known CVEs
diff --git a/doc/users/stats.rst b/doc/users/stats.rst
deleted file mode 100644
index 7073442aa..000000000
--- a/doc/users/stats.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-.. SPDX-License-Identifier: GPL-2.0-or-later
-
-Statistics
-==========
-
-In this section we collect some statistics related to the current state of
-LTP tests.
-
-.. include:: ../_static/syscalls.rst
diff --git a/doc/users/supported_syscalls.rst b/doc/users/supported_syscalls.rst
new file mode 100644
index 000000000..6914852c6
--- /dev/null
+++ b/doc/users/supported_syscalls.rst
@@ -0,0 +1,9 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+
+Supported syscalls
+==================
+
+In this section we collect information about syscalls that are currently
+tested by LTP.
+
+.. include:: ../_static/syscalls.rst
--
2.39.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [LTP] doc: generate CVE catalog documentation
2026-04-28 14:36 [LTP] [PATCH v4 1/2] doc: generate CVE catalog documentation Sachin Sant
2026-04-28 14:36 ` [LTP] [PATCH 2/2] doc: Rename statistics page to 'Supported syscalls' Sachin Sant
@ 2026-04-28 16:55 ` linuxtestproject.agent
2026-04-29 7:20 ` [LTP] [PATCH v4 1/2] " Andrea Cervesato via ltp
` (2 subsequent siblings)
4 siblings, 0 replies; 10+ messages in thread
From: linuxtestproject.agent @ 2026-04-28 16:55 UTC (permalink / raw)
To: Sachin Sant; +Cc: ltp, LTP AI Reviewer
Hi Sachin,
On Tue, 28 Apr 2026 20:06:13 +0530, Sachin Sant wrote:
> doc: generate CVE catalog documentation
> doc: Rename statistics page to 'Supported syscalls'
Both patches look good. The CVE catalog generator correctly handles missing
runtest/cve and metadata files with warnings rather than hard failures. The
rename is consistent — spelling exclusion, function name, app.connect() call,
and index references are all updated in lockstep.
Reviewed-by: LTP AI Reviewer <ltp-ai@noreply.github.com>
---
Note:
Our agent completed the review of the patch. The full review can be
found at: https://github.com/linux-test-project/ltp-agent/actions/runs/25066131650
The agent can sometimes produce false positives although often its
findings are genuine. If you find issues with the review, please
comment this email or ignore the suggestions.
Regards,
LTP AI Reviewer
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [LTP] [PATCH v4 1/2] doc: generate CVE catalog documentation
2026-04-28 14:36 [LTP] [PATCH v4 1/2] doc: generate CVE catalog documentation Sachin Sant
2026-04-28 14:36 ` [LTP] [PATCH 2/2] doc: Rename statistics page to 'Supported syscalls' Sachin Sant
2026-04-28 16:55 ` [LTP] doc: generate CVE catalog documentation linuxtestproject.agent
@ 2026-04-29 7:20 ` Andrea Cervesato via ltp
2026-05-06 16:05 ` Andrea Cervesato via ltp
2026-05-06 16:47 ` Cyril Hrubis
4 siblings, 0 replies; 10+ messages in thread
From: Andrea Cervesato via ltp @ 2026-04-29 7:20 UTC (permalink / raw)
To: Sachin Sant; +Cc: ltp
Reviewed-by: Andrea Cervesato <andrea.cervesato@suse.com>
--
Andrea Cervesato
SUSE QE Automation Engineer Linux
andrea.cervesato@suse.com
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [LTP] [PATCH 2/2] doc: Rename statistics page to 'Supported syscalls'
2026-04-28 14:36 ` [LTP] [PATCH 2/2] doc: Rename statistics page to 'Supported syscalls' Sachin Sant
@ 2026-04-29 7:21 ` Andrea Cervesato via ltp
0 siblings, 0 replies; 10+ messages in thread
From: Andrea Cervesato via ltp @ 2026-04-29 7:21 UTC (permalink / raw)
To: Sachin Sant; +Cc: ltp
Reviewed-by: Andrea Cervesato <andrea.cervesato@suse.com>
--
Andrea Cervesato
SUSE QE Automation Engineer Linux
andrea.cervesato@suse.com
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [LTP] [PATCH v4 1/2] doc: generate CVE catalog documentation
2026-04-28 14:36 [LTP] [PATCH v4 1/2] doc: generate CVE catalog documentation Sachin Sant
` (2 preceding siblings ...)
2026-04-29 7:20 ` [LTP] [PATCH v4 1/2] " Andrea Cervesato via ltp
@ 2026-05-06 16:05 ` Andrea Cervesato via ltp
2026-05-06 16:47 ` Cyril Hrubis
4 siblings, 0 replies; 10+ messages in thread
From: Andrea Cervesato via ltp @ 2026-05-06 16:05 UTC (permalink / raw)
To: Sachin Sant; +Cc: ltp
Reviewed-by: Andrea Cervesato <andrea.cervesato@suse.com>
--
Andrea Cervesato
SUSE QE Automation Engineer Linux
andrea.cervesato@suse.com
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [LTP] [PATCH v4 1/2] doc: generate CVE catalog documentation
2026-04-28 14:36 [LTP] [PATCH v4 1/2] doc: generate CVE catalog documentation Sachin Sant
` (3 preceding siblings ...)
2026-05-06 16:05 ` Andrea Cervesato via ltp
@ 2026-05-06 16:47 ` Cyril Hrubis
2026-05-07 10:14 ` Sachin Sant
4 siblings, 1 reply; 10+ messages in thread
From: Cyril Hrubis @ 2026-05-06 16:47 UTC (permalink / raw)
To: Sachin Sant; +Cc: ltp
Hi!
> Add a Sphinx builder hook to parse runtest/cve and generate a
> comprehensive CVE catalog in a single documentation file.
>
> The implementation:
> - Parses runtest/cve to extract CVE IDs, test names, and options
> - Generates a single CVE catalog file (_static/cve.rst) containing:
> * Total CVE count
> * All CVEs sorted in descending order (newest first)
> * Table of CVEs:
> - CVE ID
> - Test name (Cross-references to test catalog entries)
> - Integrates CVE catalog into main documentation index
First of all, this is very cool idea, thanks for doing this!
> Closes: https://github.com/linux-test-project/ltp/issues/1254
> Cc: Andrea Cervesato <andrea.cervesato@suse.com>
> Cc: Petr Vorel <pvorel@suse.cz>
> Signed-off-by: Sachin Sant <sachinp@linux.ibm.com>
> ---
> V4 changes:
> - Simplified the CVE table (id, test name)
> - Removed individual CVE pages
> - v3 link https://lore.kernel.org/ltp/69f0b046.df0a0220.3765a8.f8e4@mx.google.com/T/#u
>
> V3 changes:
> - CVEs sorted in descending order
> - append test name to CVE id : CVE (Test Name)
> - Separate page for CVE catalog
> - Link cve testcases to Test catalog entry
> - v2 link https://lore.kernel.org/ltp/0df5f75d-eb8f-428e-9888-bb7a90a6b1a4@linux.ibm.com/
>
> V2 changes:
> - Replace Fixes tag by Closes
> - V1 link https://lore.kernel.org/ltp/20260423105304.59788-1-sachinp@linux.ibm.com/T/#u
>
> ---
> doc/Makefile | 2 +-
> doc/conf.py | 91 +++++++++++++++++++++++++++++++++++++++
> doc/index.rst | 4 ++
> doc/users/cve_catalog.rst | 6 +++
> 4 files changed, 102 insertions(+), 1 deletion(-)
> create mode 100644 doc/users/cve_catalog.rst
>
> diff --git a/doc/Makefile b/doc/Makefile
> index 3123b1cd7..e99cbe666 100644
> --- a/doc/Makefile
> +++ b/doc/Makefile
> @@ -30,7 +30,7 @@ spelling:
> $(RUN_VENV); sphinx-build -b spelling -d build/doctree . build/spelling
>
> clean:
> - rm -rf html/ build/ _static/syscalls.rst _static/tests.rst syscalls.tbl \
> + rm -rf html/ build/ _static/syscalls.rst _static/tests.rst _static/cve.rst syscalls.tbl \
> ${abs_top_builddir}/metadata/ltp.json
This shouldn't be added here. the ltp.json is cleaned up by the
metadata/Makefile.
> distclean: clean
> diff --git a/doc/conf.py b/doc/conf.py
> index 63d09352e..d692638a0 100644
> --- a/doc/conf.py
> +++ b/doc/conf.py
> @@ -30,6 +30,15 @@ extensions = [
> 'sphinx.ext.extlinks',
> ]
>
> +# Configure autosectionlabel to prefix labels with document name
> +# This prevents duplicate labels when same test name appears in multiple files
> +autosectionlabel_prefix_document = True
> +# Only create labels for sections with unique names
> +autosectionlabel_maxdepth = 2
> +
> +# Suppress duplicate label warnings for kernel-doc generated content
> +suppress_warnings = ['autosectionlabel.*']
> +
> exclude_patterns = ["html*", '_static*', '.venv*']
> extlinks = {
> 'repo': (f'{ltp_repo}/%s', '%s'),
> @@ -535,6 +544,87 @@ def generate_test_catalog(_):
> with open(output, 'w+', encoding='utf-8') as new_tests:
> new_tests.write('\n'.join(text))
>
> +def generate_cve_catalog(_):
> + """
> + Generate CVE catalog in a single file. Parse runtest/cve file and
> + generate documentation with links to CVE databases and test sources.
> + Similar to test_catalog, creates a single _static/cve.rst file with
> + all CVE information.
> + """
> + output = '_static/cve.rst'
> + runtest_cve = '../runtest/cve'
I do not like much that we depend on the cve runtest file, we want to
get rid of runtest files eventually and depend only on the ltp.json.
> + metadata_file = '../metadata/ltp.json'
> +
> + # Load metadata to check which tests exist in the catalog
> + metadata = None
> + try:
> + with open(metadata_file, 'r', encoding='utf-8') as data:
> + metadata = json.load(data)
> + except FileNotFoundError:
> + logger = sphinx.util.logging.getLogger(__name__)
> + msg = f"Can't find metadata file ({metadata_file})"
> + logger.warning(msg)
> +
> + # Parse runtest/cve file
> + cve_data = {}
> +
> + try:
> + with open(runtest_cve, 'r', encoding='utf-8') as f:
> + for line in f:
> + line = line.strip()
> + if not line or line.startswith('#'):
> + continue
> +
> + parts = line.split(None, 2)
> + if len(parts) >= 2:
> + cve_id = parts[0].upper()
> + test_name = parts[1]
Moreover it's not guaranteed at all that this is a test name. It's
whatever needs to be excuted to run the test.
> +
> + cve_data[cve_id] = {
> + 'cve_id': cve_id,
> + 'test_name': test_name,
> + }
> + except FileNotFoundError:
> + logger = sphinx.util.logging.getLogger(__name__)
> + msg = f"Can't find runtest/cve file ({runtest_cve})"
> + logger.warning(msg)
> + return
> +
> + # Generate single CVE catalog file
> + total_cves = len(cve_data)
> + text = [
> + '.. warning::',
> + ' The following CVE catalog has been generated from the',
> + ' runtest/cve file and includes all CVE reproducers in LTP.',
> + '',
> + f'LTP includes reproducers for {total_cves} known CVEs.',
> + '',
> + '.. list-table::',
> + ' :header-rows: 1',
> + ' :widths: 40 60',
> + '',
> + ' * - CVE ID',
> + ' - Test Name',
> + ]
> +
> + # Add CVEs in descending order (newest first)
> + for cve_id, cve_info in sorted(cve_data.items(), reverse=True):
> + test_name = cve_info["test_name"]
> +
> + # Only create cross-reference if test exists in metadata
> + if metadata and test_name in metadata.get('tests', {}):
> + test_anchor = f"users/test_catalog:{test_name}"
> + test_link = f":ref:`{test_name} <{test_anchor}>`"
> + else:
> + test_link = f"``{test_name}``"
> +
> + text.extend([
> + f' * - {cve_id}',
> + f' - {test_link}',
> + ])
Can we please instead iterate over the "tests" in the metadata here and
collect all tests that have "CVE" key in "tags"?
That should be more straightforward since we do not need to parse two
files.
> + with open(output, 'w+', encoding='utf-8') as cve_catalog:
> + cve_catalog.write('\n'.join(text))
>
> def setup(app):
> """
> @@ -543,4 +633,5 @@ def setup(app):
> """
> app.add_css_file('custom.css')
> app.connect('builder-inited', generate_syscalls_stats)
> + app.connect('builder-inited', generate_cve_catalog)
> app.connect('builder-inited', generate_test_catalog)
> diff --git a/doc/index.rst b/doc/index.rst
> index 496a12f80..733495f51 100644
> --- a/doc/index.rst
> +++ b/doc/index.rst
> @@ -12,6 +12,7 @@
> users/testers_guide
> users/supported_systems
> users/stats
> + users/cve_catalog
> users/test_catalog
>
> .. toctree::
> @@ -58,6 +59,9 @@ For users
> :doc:`users/stats`
> Some LTP statistics
>
> +:doc:`users/cve_catalog`
> + LTP reproducers for known CVEs
> +
> :doc:`users/test_catalog`
> The LTP test catalog
>
> diff --git a/doc/users/cve_catalog.rst b/doc/users/cve_catalog.rst
> new file mode 100644
> index 000000000..5a5b9b54a
> --- /dev/null
> +++ b/doc/users/cve_catalog.rst
> @@ -0,0 +1,6 @@
> +.. SPDX-License-Identifier: GPL-2.0-or-later
> +
> +CVE catalog
> +===========
> +
> +.. include:: ../_static/cve.rst
> --
> 2.39.1
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [LTP] [PATCH v4 1/2] doc: generate CVE catalog documentation
2026-05-06 16:47 ` Cyril Hrubis
@ 2026-05-07 10:14 ` Sachin Sant
2026-05-07 10:30 ` Sachin Sant
0 siblings, 1 reply; 10+ messages in thread
From: Sachin Sant @ 2026-05-07 10:14 UTC (permalink / raw)
To: Cyril Hrubis; +Cc: ltp
On 06/05/26 10:17 pm, Cyril Hrubis wrote:
> Hi!
>> - rm -rf html/ build/ _static/syscalls.rst _static/tests.rst syscalls.tbl \
>> + rm -rf html/ build/ _static/syscalls.rst _static/tests.rst _static/cve.rst syscalls.tbl \
>> ${abs_top_builddir}/metadata/ltp.json
> This shouldn't be added here. the ltp.json is cleaned up by the
> metadata/Makefile.
My bad, probably an oversight on my part. Will remove.
>> + Generate CVE catalog in a single file. Parse runtest/cve file and
>> + generate documentation with links to CVE databases and test sources.
>> + Similar to test_catalog, creates a single _static/cve.rst file with
>> + all CVE information.
>> + """
>> + output = '_static/cve.rst'
>> + runtest_cve = '../runtest/cve'
> I do not like much that we depend on the cve runtest file, we want to
> get rid of runtest files eventually and depend only on the ltp.json.
Ah I see. Thanks for the review. Will remove the dependency on runtest/cve.
>> + text.extend([
>> + f' * - {cve_id}',
>> + f' - {test_link}',
>> + ])
> Can we please instead iterate over the "tests" in the metadata here and
> collect all tests that have "CVE" key in "tags"?
>
> That should be more straightforward since we do not need to parse two
> files.
Sure, will rewrite the logic based on ltp.json metadata.
Will send an updated version of the patch.
--
Thanks
- Sachin
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [LTP] [PATCH v4 1/2] doc: generate CVE catalog documentation
2026-05-07 10:14 ` Sachin Sant
@ 2026-05-07 10:30 ` Sachin Sant
0 siblings, 0 replies; 10+ messages in thread
From: Sachin Sant @ 2026-05-07 10:30 UTC (permalink / raw)
To: ltp
On 07/05/26 3:44 pm, Sachin Sant wrote:
>
>
> On 06/05/26 10:17 pm, Cyril Hrubis wrote:
>> Hi!
>>> - rm -rf html/ build/ _static/syscalls.rst _static/tests.rst
>>> syscalls.tbl \
>>> + rm -rf html/ build/ _static/syscalls.rst _static/tests.rst
>>> _static/cve.rst syscalls.tbl \
>>> ${abs_top_builddir}/metadata/ltp.json
>> This shouldn't be added here. the ltp.json is cleaned up by the
>> metadata/Makefile.
> My bad, probably an oversight on my part. Will remove.
Actually this change (remove ltp.json) is not introduced by my patch.
This was already present and was added via commit 86de077fb128.
--
Thanks
- Sachin
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-05-07 10:30 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-28 14:36 [LTP] [PATCH v4 1/2] doc: generate CVE catalog documentation Sachin Sant
2026-04-28 14:36 ` [LTP] [PATCH 2/2] doc: Rename statistics page to 'Supported syscalls' Sachin Sant
2026-04-29 7:21 ` Andrea Cervesato via ltp
2026-04-28 16:55 ` [LTP] doc: generate CVE catalog documentation linuxtestproject.agent
2026-04-29 7:20 ` [LTP] [PATCH v4 1/2] " Andrea Cervesato via ltp
2026-05-06 16:05 ` Andrea Cervesato via ltp
2026-05-06 16:47 ` Cyril Hrubis
2026-05-07 10:14 ` Sachin Sant
2026-05-07 10:30 ` Sachin Sant
-- strict thread matches above, loose matches on Subject: below --
2026-04-24 12:18 [LTP] [PATCH v3 " Sachin Sant
2026-04-28 7:06 ` [LTP] " linuxtestproject.agent
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox