diff options
| author | Ricardo B. Marlière <rbm@suse.com> | 2026-03-08 01:08:02 +0300 |
|---|---|---|
| committer | Steven Rostedt <rostedt@goodmis.org> | 2026-03-09 17:32:08 +0300 |
| commit | 972816d21bb1c4eb2e5095aee34eb4b109f4c2e3 (patch) | |
| tree | 26bc37c3b65a46dc8f25b923a79facea107cf989 | |
| parent | eae247f65dece5018c83d25d165ddecd45f93dfb (diff) | |
| download | linux-972816d21bb1c4eb2e5095aee34eb4b109f4c2e3.tar.xz | |
ktest: Add PRE_KTEST_DIE for PRE_KTEST failures
PRE_KTEST runs before the first test, but its return status is currently
ignored. A failing setup hook can leave the rest of the run executing in a
partially initialized environment.
Add PRE_KTEST_DIE so PRE_KTEST can fail the run in the same way
PRE_BUILD_DIE and PRE_TEST_DIE already can. Keep the default behavior
unchanged when the new option is not set.
Cc: John Hawley <warthog9@eaglescrag.net>
Cc: Andrea Righi <arighi@nvidia.com>
Cc: Marcos Paulo de Souza <mpdesouza@suse.com>
Cc: Matthieu Baerts <matttbe@kernel.org>
Cc: Fernando Fernandez Mancera <fmancera@suse.de>
Cc: Pedro Falcato <pfalcato@suse.de>
Link: https://patch.msgid.link/20260307-ktest-fixes-v1-7-565d412f4925@suse.com
Signed-off-by: Ricardo B. Marlière <rbm@suse.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
| -rwxr-xr-x | tools/testing/ktest/ktest.pl | 8 | ||||
| -rw-r--r-- | tools/testing/ktest/sample.conf | 6 |
2 files changed, 13 insertions, 1 deletions
diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl index bd2e2311884c..b018b937e028 100755 --- a/tools/testing/ktest/ktest.pl +++ b/tools/testing/ktest/ktest.pl @@ -101,6 +101,7 @@ my $build_type; my $build_options; my $final_post_ktest; my $pre_ktest; +my $pre_ktest_die; my $post_ktest; my $pre_test; my $pre_test_die; @@ -283,6 +284,7 @@ my %option_map = ( "BUILD_DIR" => \$builddir, "TEST_TYPE" => \$test_type, "PRE_KTEST" => \$pre_ktest, + "PRE_KTEST_DIE" => \$pre_ktest_die, "POST_KTEST" => \$post_ktest, "PRE_TEST" => \$pre_test, "PRE_TEST_DIE" => \$pre_test_die, @@ -4506,7 +4508,11 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) { if ($i == 1) { if (defined($pre_ktest)) { doprint "\n"; - run_command $pre_ktest; + my $ret = run_command $pre_ktest; + if (!$ret && defined($pre_ktest_die) && + $pre_ktest_die) { + dodie "failed to pre_ktest\n"; + } } if ($email_when_started) { my $name = get_test_name; diff --git a/tools/testing/ktest/sample.conf b/tools/testing/ktest/sample.conf index 9c4c449a8f3e..b6e439ef511b 100644 --- a/tools/testing/ktest/sample.conf +++ b/tools/testing/ktest/sample.conf @@ -494,6 +494,12 @@ # # default (undefined) #PRE_KTEST = ${SSH} ~/set_up_test +# +# To specify if the test should fail if PRE_KTEST fails, +# PRE_KTEST_DIE needs to be set to 1. Otherwise the PRE_KTEST +# result is ignored. +# (default 0) +#PRE_KTEST_DIE = 1 # If you want to execute some command after all the tests have # completed, you can set this option. Note, it can be set as a |
