[LTP] [PATCH v1 00/31] Add sysfs sanity tests
Jan Stancek
jstancek@redhat.com
Wed Aug 19 09:46:51 CEST 2026
On Tue, Aug 18, 2026 at 4:13 PM Cyril Hrubis <chrubis@suse.cz> wrote:
>
> This is a first bach of the sysfs sanity tests I've been working on
> recently.
>
> The main goal of these tests is to make sure that these files contains
> expected data, e.g. files that are supposes to be boolean are 0 or 1,
> numeric files contain numbers, etc.
>
> I've tried to make the code of the tests as clear as possible. Hence the
> first addition in this patchset is a library that implements common
> assertions for sysfs files to be done in a single line of a code.
>
> Majority of these tests are just reading the files and checking that the
> content is sane.
My first thought is whether we really need a separate test for each of these?
We could have a single test where you just map file patterns to expected format.
Or extend "read_all_sys", which already tries to read from all /sys files, and
check that what was read matches expected format.
> The exceptions are loop device, veth, tap tests that
> cerate virtual devices, which attributes can be changed freely.
>
> Cyril Hrubis (31):
> lib: Add tst_sysfs_assert
> testcases: sysfs: Add sys_power01
> testcases: sysfs: Add sys_kernel01
> testcases: sysfs: Add sys_clocksource01
> testcases: sysfs: Add sys_node01
> testcases: sysfs: Add sys_cpu_topology01
> testcases: sysfs: Add sys_cpu_topology02
> testcases: sysfs: Add sys_cpu_vulnerabilities01
> testcases: sysfs: Add sys_cpu_smt01
> testcases: sysfs: Add sys_cpu_cache01
> testcases: sysfs: Add sys_clockevents01
> testcases: sysfs: Add sys_ata01
> testcases: sysfs: Add sys_bdi01
> testcases: sysfs: sys_hwmon01
> testcases: sysfs: sys_leds01
> testcases: sysfs: Add sys_wakeup01
> testcases: sysfs: Add sys_rtc01
> testcases: sysfs: Add sys_thermal01
> tst_netdevice: Add two more helper macros
> testcases: sysfs: Add sys_net01
> testcases: sysfs: Add sys_net02
> testcases: sysfs: Add sys_net03
> testcases: sysfs: Add sys_net04
> testcases: sysfs: Add sys_block_loop01
> testcases: sysfs: Add sys_block_queue01
> testcases: sysfs: Add sys_block_size01
> testcases: sysfs: Add sys_hugepages01
> testcases: sysfs: Add sys_hugepages02
> testcases: sysfs: Add sys_ksm01
> testcases: sysfs: Add sys_swap01
> testcases: sysfs: Add sys_thp01
>
> doc/developers/api_c_tests.rst | 5 +
> include/tst_netdevice.h | 20 +
> include/tst_sysfs_assert.h | 588 +++++++++++++
> lib/tst_netdevice.c | 90 ++
> lib/tst_sysfs_assert.c | 797 ++++++++++++++++++
> runtest/sysfs | 29 +
> testcases/kernel/sysfs/Makefile | 7 +
> testcases/kernel/sysfs/block/.gitignore | 3 +
> testcases/kernel/sysfs/block/Makefile | 7 +
> .../kernel/sysfs/block/sys_block_loop01.c | 320 +++++++
> .../kernel/sysfs/block/sys_block_queue01.c | 106 +++
> .../kernel/sysfs/block/sys_block_size01.c | 102 +++
> testcases/kernel/sysfs/class/Makefile | 7 +
> .../kernel/sysfs/class/ata_device/.gitignore | 1 +
> .../kernel/sysfs/class/ata_device/Makefile | 7 +
> .../kernel/sysfs/class/ata_device/sys_ata01.c | 93 ++
> testcases/kernel/sysfs/class/bdi/.gitignore | 1 +
> testcases/kernel/sysfs/class/bdi/Makefile | 7 +
> testcases/kernel/sysfs/class/bdi/sys_bdi01.c | 85 ++
> testcases/kernel/sysfs/class/hwmon/.gitignore | 1 +
> testcases/kernel/sysfs/class/hwmon/Makefile | 7 +
> .../kernel/sysfs/class/hwmon/sys_hwmon01.c | 196 +++++
> testcases/kernel/sysfs/class/leds/.gitignore | 1 +
> testcases/kernel/sysfs/class/leds/Makefile | 7 +
> .../kernel/sysfs/class/leds/sys_leds01.c | 67 ++
> testcases/kernel/sysfs/class/net/.gitignore | 4 +
> testcases/kernel/sysfs/class/net/Makefile | 7 +
> testcases/kernel/sysfs/class/net/sys_net01.c | 123 +++
> testcases/kernel/sysfs/class/net/sys_net02.c | 179 ++++
> testcases/kernel/sysfs/class/net/sys_net03.c | 144 ++++
> testcases/kernel/sysfs/class/net/sys_net04.c | 211 +++++
> .../kernel/sysfs/class/net/sys_net_common.h | 80 ++
> testcases/kernel/sysfs/class/rtc/.gitignore | 1 +
> testcases/kernel/sysfs/class/rtc/Makefile | 7 +
> testcases/kernel/sysfs/class/rtc/sys_rtc01.c | 200 +++++
> .../kernel/sysfs/class/thermal/.gitignore | 1 +
> testcases/kernel/sysfs/class/thermal/Makefile | 7 +
> .../sysfs/class/thermal/sys_thermal01.c | 70 ++
> .../kernel/sysfs/class/wakeup/.gitignore | 1 +
> testcases/kernel/sysfs/class/wakeup/Makefile | 7 +
> .../kernel/sysfs/class/wakeup/sys_wakeup01.c | 93 ++
> testcases/kernel/sysfs/devices/Makefile | 7 +
> .../kernel/sysfs/devices/system/Makefile | 7 +
> .../devices/system/clockevents/.gitignore | 1 +
> .../sysfs/devices/system/clockevents/Makefile | 7 +
> .../system/clockevents/sys_clockevents01.c | 88 ++
> .../devices/system/clocksource/.gitignore | 1 +
> .../sysfs/devices/system/clocksource/Makefile | 7 +
> .../system/clocksource/sys_clocksource01.c | 67 ++
> .../sysfs/devices/system/cpu/.gitignore | 5 +
> .../kernel/sysfs/devices/system/cpu/Makefile | 7 +
> .../devices/system/cpu/sys_cpu_cache01.c | 100 +++
> .../sysfs/devices/system/cpu/sys_cpu_smt01.c | 65 ++
> .../devices/system/cpu/sys_cpu_topology01.c | 103 +++
> .../devices/system/cpu/sys_cpu_topology02.c | 98 +++
> .../system/cpu/sys_cpu_vulnerabilities01.c | 85 ++
> .../sysfs/devices/system/node/.gitignore | 1 +
> .../kernel/sysfs/devices/system/node/Makefile | 7 +
> .../sysfs/devices/system/node/sys_node01.c | 112 +++
> testcases/kernel/sysfs/kernel/.gitignore | 1 +
> testcases/kernel/sysfs/kernel/Makefile | 7 +
> testcases/kernel/sysfs/kernel/mm/Makefile | 7 +
> .../sysfs/kernel/mm/hugepages/.gitignore | 2 +
> .../kernel/sysfs/kernel/mm/hugepages/Makefile | 7 +
> .../kernel/mm/hugepages/sys_hugepages01.c | 133 +++
> .../kernel/mm/hugepages/sys_hugepages02.c | 84 ++
> .../kernel/sysfs/kernel/mm/ksm/.gitignore | 1 +
> testcases/kernel/sysfs/kernel/mm/ksm/Makefile | 7 +
> .../kernel/sysfs/kernel/mm/ksm/sys_ksm01.c | 64 ++
> .../kernel/sysfs/kernel/mm/swap/.gitignore | 1 +
> .../kernel/sysfs/kernel/mm/swap/Makefile | 7 +
> .../sysfs/kernel/mm/swap/sys_mm_swap01.c | 32 +
> .../kernel/mm/transparent_hugepage/.gitignore | 1 +
> .../kernel/mm/transparent_hugepage/Makefile | 7 +
> .../mm/transparent_hugepage/sys_thp01.c | 86 ++
> testcases/kernel/sysfs/kernel/sys_kernel01.c | 46 +
> testcases/kernel/sysfs/power/.gitignore | 1 +
> testcases/kernel/sysfs/power/Makefile | 7 +
> testcases/kernel/sysfs/power/sys_power01.c | 66 ++
> 79 files changed, 5024 insertions(+)
> create mode 100644 include/tst_sysfs_assert.h
> create mode 100644 lib/tst_sysfs_assert.c
> create mode 100644 runtest/sysfs
> create mode 100644 testcases/kernel/sysfs/Makefile
> create mode 100644 testcases/kernel/sysfs/block/.gitignore
> create mode 100644 testcases/kernel/sysfs/block/Makefile
> create mode 100644 testcases/kernel/sysfs/block/sys_block_loop01.c
> create mode 100644 testcases/kernel/sysfs/block/sys_block_queue01.c
> create mode 100644 testcases/kernel/sysfs/block/sys_block_size01.c
> create mode 100644 testcases/kernel/sysfs/class/Makefile
> create mode 100644 testcases/kernel/sysfs/class/ata_device/.gitignore
> create mode 100644 testcases/kernel/sysfs/class/ata_device/Makefile
> create mode 100644 testcases/kernel/sysfs/class/ata_device/sys_ata01.c
> create mode 100644 testcases/kernel/sysfs/class/bdi/.gitignore
> create mode 100644 testcases/kernel/sysfs/class/bdi/Makefile
> create mode 100644 testcases/kernel/sysfs/class/bdi/sys_bdi01.c
> create mode 100644 testcases/kernel/sysfs/class/hwmon/.gitignore
> create mode 100644 testcases/kernel/sysfs/class/hwmon/Makefile
> create mode 100644 testcases/kernel/sysfs/class/hwmon/sys_hwmon01.c
> create mode 100644 testcases/kernel/sysfs/class/leds/.gitignore
> create mode 100644 testcases/kernel/sysfs/class/leds/Makefile
> create mode 100644 testcases/kernel/sysfs/class/leds/sys_leds01.c
> create mode 100644 testcases/kernel/sysfs/class/net/.gitignore
> create mode 100644 testcases/kernel/sysfs/class/net/Makefile
> create mode 100644 testcases/kernel/sysfs/class/net/sys_net01.c
> create mode 100644 testcases/kernel/sysfs/class/net/sys_net02.c
> create mode 100644 testcases/kernel/sysfs/class/net/sys_net03.c
> create mode 100644 testcases/kernel/sysfs/class/net/sys_net04.c
> create mode 100644 testcases/kernel/sysfs/class/net/sys_net_common.h
> create mode 100644 testcases/kernel/sysfs/class/rtc/.gitignore
> create mode 100644 testcases/kernel/sysfs/class/rtc/Makefile
> create mode 100644 testcases/kernel/sysfs/class/rtc/sys_rtc01.c
> create mode 100644 testcases/kernel/sysfs/class/thermal/.gitignore
> create mode 100644 testcases/kernel/sysfs/class/thermal/Makefile
> create mode 100644 testcases/kernel/sysfs/class/thermal/sys_thermal01.c
> create mode 100644 testcases/kernel/sysfs/class/wakeup/.gitignore
> create mode 100644 testcases/kernel/sysfs/class/wakeup/Makefile
> create mode 100644 testcases/kernel/sysfs/class/wakeup/sys_wakeup01.c
> create mode 100644 testcases/kernel/sysfs/devices/Makefile
> create mode 100644 testcases/kernel/sysfs/devices/system/Makefile
> create mode 100644 testcases/kernel/sysfs/devices/system/clockevents/.gitignore
> create mode 100644 testcases/kernel/sysfs/devices/system/clockevents/Makefile
> create mode 100644 testcases/kernel/sysfs/devices/system/clockevents/sys_clockevents01.c
> create mode 100644 testcases/kernel/sysfs/devices/system/clocksource/.gitignore
> create mode 100644 testcases/kernel/sysfs/devices/system/clocksource/Makefile
> create mode 100644 testcases/kernel/sysfs/devices/system/clocksource/sys_clocksource01.c
> create mode 100644 testcases/kernel/sysfs/devices/system/cpu/.gitignore
> create mode 100644 testcases/kernel/sysfs/devices/system/cpu/Makefile
> create mode 100644 testcases/kernel/sysfs/devices/system/cpu/sys_cpu_cache01.c
> create mode 100644 testcases/kernel/sysfs/devices/system/cpu/sys_cpu_smt01.c
> create mode 100644 testcases/kernel/sysfs/devices/system/cpu/sys_cpu_topology01.c
> create mode 100644 testcases/kernel/sysfs/devices/system/cpu/sys_cpu_topology02.c
> create mode 100644 testcases/kernel/sysfs/devices/system/cpu/sys_cpu_vulnerabilities01.c
> create mode 100644 testcases/kernel/sysfs/devices/system/node/.gitignore
> create mode 100644 testcases/kernel/sysfs/devices/system/node/Makefile
> create mode 100644 testcases/kernel/sysfs/devices/system/node/sys_node01.c
> create mode 100644 testcases/kernel/sysfs/kernel/.gitignore
> create mode 100644 testcases/kernel/sysfs/kernel/Makefile
> create mode 100644 testcases/kernel/sysfs/kernel/mm/Makefile
> create mode 100644 testcases/kernel/sysfs/kernel/mm/hugepages/.gitignore
> create mode 100644 testcases/kernel/sysfs/kernel/mm/hugepages/Makefile
> create mode 100644 testcases/kernel/sysfs/kernel/mm/hugepages/sys_hugepages01.c
> create mode 100644 testcases/kernel/sysfs/kernel/mm/hugepages/sys_hugepages02.c
> create mode 100644 testcases/kernel/sysfs/kernel/mm/ksm/.gitignore
> create mode 100644 testcases/kernel/sysfs/kernel/mm/ksm/Makefile
> create mode 100644 testcases/kernel/sysfs/kernel/mm/ksm/sys_ksm01.c
> create mode 100644 testcases/kernel/sysfs/kernel/mm/swap/.gitignore
> create mode 100644 testcases/kernel/sysfs/kernel/mm/swap/Makefile
> create mode 100644 testcases/kernel/sysfs/kernel/mm/swap/sys_mm_swap01.c
> create mode 100644 testcases/kernel/sysfs/kernel/mm/transparent_hugepage/.gitignore
> create mode 100644 testcases/kernel/sysfs/kernel/mm/transparent_hugepage/Makefile
> create mode 100644 testcases/kernel/sysfs/kernel/mm/transparent_hugepage/sys_thp01.c
> create mode 100644 testcases/kernel/sysfs/kernel/sys_kernel01.c
> create mode 100644 testcases/kernel/sysfs/power/.gitignore
> create mode 100644 testcases/kernel/sysfs/power/Makefile
> create mode 100644 testcases/kernel/sysfs/power/sys_power01.c
>
> --
> 2.54.0
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
>
More information about the ltp
mailing list