diff options
| author | Gabriele Monaco <gmonaco@redhat.com> | 2025-10-17 13:52:03 +0200 |
|---|---|---|
| committer | Gabriele Monaco <gmonaco@redhat.com> | 2025-11-11 13:18:55 +0100 |
| commit | 0c0cd931a037638ec49ae57c6100fcbb6a729bae (patch) | |
| tree | 8df50c4ef9392bf41b1b7c887cf22c4fe1bb4e83 /tools/testing/selftests/verification/test.d/functions | |
| parent | a0aa283c53a703240a93ae38aa04bc9e4ca89d12 (diff) | |
| download | linux-next-0c0cd931a037638ec49ae57c6100fcbb6a729bae.tar.gz linux-next-0c0cd931a037638ec49ae57c6100fcbb6a729bae.zip | |
selftests/verification: Add initial RV tests
Add a series of tests to validate the RV tracefs API and basic
functionality.
* available monitors:
Check that all monitors (from the monitors folder) appear as
available and have a description. Works with nested monitors.
* enable/disable:
Enable and disable all monitors and validate both the enabled file
and the enabled_monitors. Check that enabling container monitors
enables all nested monitors.
* reactors:
Set all reactors and validate the setting, also for nested monitors.
* wwnr with printk:
wwnr is broken on purpose, run it with a load and check that the
printk reactor works. Also validate disabling reacting_on or
monitoring_on prevents reactions.
These tests use the ftracetest suite.
Acked-by: Nam Cao <namcao@linutronix.de>
Link: https://lore.kernel.org/r/20251017115203.140080-3-gmonaco@redhat.com
Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
Diffstat (limited to 'tools/testing/selftests/verification/test.d/functions')
| -rw-r--r-- | tools/testing/selftests/verification/test.d/functions | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tools/testing/selftests/verification/test.d/functions b/tools/testing/selftests/verification/test.d/functions new file mode 100644 index 000000000000..ec36a092f56e --- /dev/null +++ b/tools/testing/selftests/verification/test.d/functions @@ -0,0 +1,39 @@ +check_requires() { # Check required files, monitors and reactors + for i in "$@" ; do + p=${i%:program} + m=${i%:monitor} + r=${i%:reactor} + if [ $p != $i ]; then + if ! which $p ; then + echo "Required program $p is not found." + exit_unresolved + fi + elif [ $m != $i ]; then + if ! grep -wq $m available_monitors ; then + echo "Required monitor $m is not configured." + exit_unsupported + fi + elif [ $r != $i ]; then + if ! grep -wq $r available_reactors ; then + echo "Required reactor $r is not configured." + exit_unsupported + fi + elif [ ! -e $i ]; then + echo "Required feature interface $i doesn't exist." + exit_unsupported + fi + done +} + +initialize_system() { # Reset RV to initial-state + echo > enabled_monitors + for m in monitors/*; do + echo nop > $m/reactors || true + done + echo 1 > monitoring_on + echo 1 > reacting_on || true +} + +finish_system() { + initialize_system +} |
