[GIT PULL] ktest: Updates for 7.1

Steven Rostedt
2026-04-14T11:06:45Z

Linus,

ktest updates for v7.1:

- Fix undef warning when WARNINGS_FILE is unset

The check_buildlog() references WARNINGS_FILE even when it's not set. Perl
triggers a warning in this case. Check if the WARNINGS_FILE is defined
before checking if the file it represents exists.

- Fix how LOG_FILE is resolved

LOG_FILE is expanded immediately after the config file is parsed. If
LOG_FILE depends on variables from the tests it will use stale values
instead of using the test variables. Have LOG_FILE also resolve test
variables.

- Treat a undefined self reference variable as empty

Variables can recursively include itself for appending. Currently, if the
references itself and it is not defined, it leaves the variable in the
define: "VAR = ${VAR} foo" keeps the ${VAR} around. Have it removed
instead.

- Fix clearing of variables per tests

If a variable has a defined default, a test can not clear it by assigning
the variable to empty. Fix this by clearing the variable for a test when
the test config has that variable assigned to nothing.

- Fix run_command() to catch stderr in the shell command parsing

Switch to Perl list form open to use "sh -c" wrapper to run shell commands
to have the log file catch shell parsing errors.

- Fix console output during reboot cycle

The POWER_CYCLE callback during reboot() can miss output from the next
boot making ktest miss the boot string it was waiting for.

- Add PRE_KTEST_DIE for PRE_KTEST failures

If the command for PRE_KTEST fails, ktest does not fail (this was by
design as this command was used to add patches that may or may not apply).
Add PRE_KTEST_DIE value to force ktest to fail if PRE_KTEST fails.

- Run POST_KTEST hooks on failure and cancellation

PRE_KTEST always runs before a ktest test, have POST_KTEST always run
after a test even if the test fails or is cancelled to do the teardown of
PRE_KTEST.

-- Add a --dry-run mode

Add --dry-run to parse the config, print the results and exit without
running any of the tests.

-- Store failures from the dodie() path as well

The STORE_FAILURES saves the logs on failure, but there's failure paths
that miss storing. Perform STORE_FAILURES in dodie() to capture these
failures too.

Please pull the latest ktest-v7.1 tree, which can be found at:

git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest.git
ktest-v7.1

Tag SHA1: 48960daaba200a9ab1db0dad11be71f900a60415
Head SHA1: 81fca7087466bd81fff7100d824b2c788edf7a97

Ricardo B. Marlière (10):
ktest: Avoid undef warning when WARNINGS_FILE is unset
ktest: Resolve LOG_FILE in test option context
ktest: Treat undefined self-reference as empty
ktest: Honor empty per-test option overrides
ktest: Run commands through list-form shell open
ktest: Stop dropping console output during power-cycle reboot
ktest: Add PRE_KTEST_DIE for PRE_KTEST failures
ktest: Run POST_KTEST hooks on failure and cancellation
ktest: Add a --dry-run mode
ktest: Store failure logs also in fatal paths

----
tools/testing/ktest/ktest.pl | 163 +++++++++++++++++++++++++++++-----------
tools/testing/ktest/sample.conf | 6 ++
2 files changed, 127 insertions(+), 42 deletions(-)
---------------------------