[LTP] [PATCH v1 03/31] testcases: sysfs: Add sys_kernel01
Cyril Hrubis
chrubis@suse.cz
Tue Aug 18 16:12:43 CEST 2026
A test for /sys/kernel/* files.
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
---
runtest/sysfs | 1 +
testcases/kernel/sysfs/kernel/.gitignore | 1 +
testcases/kernel/sysfs/kernel/Makefile | 7 +++
testcases/kernel/sysfs/kernel/sys_kernel01.c | 46 ++++++++++++++++++++
4 files changed, 55 insertions(+)
create mode 100644 testcases/kernel/sysfs/kernel/.gitignore
create mode 100644 testcases/kernel/sysfs/kernel/Makefile
create mode 100644 testcases/kernel/sysfs/kernel/sys_kernel01.c
diff --git a/runtest/sysfs b/runtest/sysfs
index e679cacb1..142b4a290 100644
--- a/runtest/sysfs
+++ b/runtest/sysfs
@@ -1 +1,2 @@
sys_power01 sys_power01
+sys_kernel01 sys_kernel01
diff --git a/testcases/kernel/sysfs/kernel/.gitignore b/testcases/kernel/sysfs/kernel/.gitignore
new file mode 100644
index 000000000..d11d43ce2
--- /dev/null
+++ b/testcases/kernel/sysfs/kernel/.gitignore
@@ -0,0 +1 @@
+/sys_kernel01
diff --git a/testcases/kernel/sysfs/kernel/Makefile b/testcases/kernel/sysfs/kernel/Makefile
new file mode 100644
index 000000000..d48598a66
--- /dev/null
+++ b/testcases/kernel/sysfs/kernel/Makefile
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (c) 2026 Cyril Hrubis <chrubis@suse.cz>
+
+top_srcdir ?= ../../../..
+
+include $(top_srcdir)/include/mk/testcases.mk
+include $(top_srcdir)/include/mk/generic_trunk_target.mk
diff --git a/testcases/kernel/sysfs/kernel/sys_kernel01.c b/testcases/kernel/sysfs/kernel/sys_kernel01.c
new file mode 100644
index 000000000..b5efbe2e1
--- /dev/null
+++ b/testcases/kernel/sysfs/kernel/sys_kernel01.c
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2026 Cyril Hrubis <chrubis@suse.cz>
+ */
+
+/*\
+ * Sanity checks for assorted scalar attributes exported directly under
+ * /sys/kernel/.
+ *
+ * The test verifies that:
+ *
+ * - address_bits is either 32 or 64
+ * - cpu_byteorder is "little" or "big" and matches the host byte order
+ * - rcu_expedited and rcu_normal are booleans (0 or 1)
+ *
+ * All checks skip gracefully with TCONF when a particular attribute is not
+ * present, since these files were added over several kernel releases.
+ */
+
+#include <endian.h>
+#include "tst_test.h"
+#include "tst_sysfs_assert.h"
+
+#define SYS_KERNEL "/sys/kernel"
+
+static const char *const address_bits_allowed[] = {
+ "32", "64", NULL
+};
+
+static void run(void)
+{
+ TST_SYSFS_ASSERT_ONEOF(address_bits_allowed, SYS_KERNEL "/address_bits");
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+ TST_SYSFS_EXP_EQ_STR("little", SYS_KERNEL "/cpu_byteorder");
+#elif __BYTE_ORDER == __BIG_ENDIAN
+ TST_SYSFS_EXP_EQ_STR("big", SYS_KERNEL "/cpu_byteorder");
+#endif
+
+ TST_SYSFS_ASSERT_BOOL(SYS_KERNEL "/rcu_expedited");
+ TST_SYSFS_ASSERT_BOOL(SYS_KERNEL "/rcu_normal");
+}
+
+static struct tst_test test = {
+ .test_all = run,
+};
--
2.54.0
More information about the ltp
mailing list