[LTP] [PATCH] lib: Check minimal supported kernel version
Andrea Cervesato
andrea.cervesato@suse.de
Fri Sep 4 10:07:34 CEST 2026
From: Andrea Cervesato <andrea.cervesato@suse.com>
LTP does not support kernels older than 4.4, but this requirement was
only documented in static text without automated runtime validation.
Define the minimal supported kernel version in tst_kvercmp.h so that
the documentation fetches it dynamically and the core library aborts
unsupported kernels with TCONF during test setup.
Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
---
Add a variable to check minimum kernel version before running tests.
Until now, the only place we have to verify the minimum kernel is to
read the documentation.
---
doc/conf.py | 15 +++++++++++++++
doc/users/supported_systems.rst | 2 +-
include/tst_kvercmp.h | 7 ++++++-
lib/tst_test.c | 17 +++++++++++++++++
4 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/doc/conf.py b/doc/conf.py
index c28db7af1..69ea31b0c 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -21,6 +21,21 @@ ltp_repo = 'https://github.com/linux-test-project/ltp'
ltp_repo_base_url = f"{ltp_repo}/tree/master"
cve_url = "https://www.cve.org/CVERecord?id="
+def _get_min_kernel_version():
+ header_path = os.path.join(os.path.dirname(__file__), '../include/tst_kvercmp.h')
+ with open(header_path, 'r', encoding='utf-8') as f:
+ match = re.search(r'#define\s+TST_MIN_KVER\s+"([^"]+)"', f.read())
+ if match:
+ return match.group(1)
+ raise RuntimeError(f"Could not find TST_MIN_KVER in {header_path}")
+
+min_kernel_version = _get_min_kernel_version()
+
+rst_prolog = f"""
+.. |min_kernel_version| replace:: **{min_kernel_version}**
+.. |min_kernel_version_plain| replace:: {min_kernel_version}
+"""
+
# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
diff --git a/doc/users/supported_systems.rst b/doc/users/supported_systems.rst
index b5d792eeb..5765214b0 100644
--- a/doc/users/supported_systems.rst
+++ b/doc/users/supported_systems.rst
@@ -14,7 +14,7 @@ branch is build tested in
Kernel version
--------------
-Minimal supported kernel version is **4.4**.
+Minimal supported kernel version is |min_kernel_version|.
Oldest build tested distributions
---------------------------------
diff --git a/include/tst_kvercmp.h b/include/tst_kvercmp.h
index 26e8f8e3c..52267fd2b 100644
--- a/include/tst_kvercmp.h
+++ b/include/tst_kvercmp.h
@@ -1,12 +1,17 @@
/* SPDX-License-Identifier: GPL-2.0-or-later
* Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
* Copyright (c) 2009-2016 Cyril Hrubis chrubis@suse.cz
- * Copyright (c) Linux Test Project, 2020-2025
+ * Copyright (c) Linux Test Project, 2020-2026
*/
#ifndef TST_KVERCMP_H__
#define TST_KVERCMP_H__
+/**
+ * TST_MIN_KVER - Minimal kernel version supported by LTP.
+ */
+#define TST_MIN_KVER "4.4"
+
/**
* tst_kvcmp() - Compare given kernel version with kernel in string.
*
diff --git a/lib/tst_test.c b/lib/tst_test.c
index 166e0f672..1bd62e24a 100644
--- a/lib/tst_test.c
+++ b/lib/tst_test.c
@@ -1087,6 +1087,21 @@ static bool check_kver(const char *min_kver, const int brk_nosupp)
return true;
}
+static void check_supported_kver(void)
+{
+ int v1, v2, v3;
+
+ if (tst_parse_kver(TST_MIN_KVER, &v1, &v2, &v3)) {
+ tst_res(TWARN,
+ "Invalid minimal kernel version %s, expected %%d.%%d.%%d",
+ TST_MIN_KVER);
+ return;
+ }
+
+ if (tst_kvercmp(v1, v2, v3) < 0)
+ tst_brk(TCONF, "Kernel is older than minimal supported %s", TST_MIN_KVER);
+}
+
/*
* Checks if the struct results values are equal.
*
@@ -1455,6 +1470,8 @@ static void do_setup(int argc, char *argv[])
if (context->tdebug)
tst_res(TINFO, "Enabling debug info (level %d)", context->tdebug);
+ check_supported_kver();
+
if (tst_test->needs_kconfigs && tst_kconfig_check(tst_test->needs_kconfigs))
tst_brk(TCONF, "Aborting due to unsuitable kernel config, see above!");
---
base-commit: d377d1cff1ec393459a136eec85088ffd5729430
change-id: 20260904-min_kernel-22066a2e046c
Best regards,
--
Andrea Cervesato <andrea.cervesato@suse.com>
More information about the ltp
mailing list