[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