summaryrefslogtreecommitdiff
path: root/tools/testing
diff options
context:
space:
mode:
authorRicardo B. Marlière <rbm@suse.com>2026-03-08 01:08:02 +0300
committerSteven Rostedt <rostedt@goodmis.org>2026-03-09 17:32:08 +0300
commit972816d21bb1c4eb2e5095aee34eb4b109f4c2e3 (patch)
tree26bc37c3b65a46dc8f25b923a79facea107cf989 /tools/testing
parenteae247f65dece5018c83d25d165ddecd45f93dfb (diff)
downloadlinux-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>
Diffstat (limited to 'tools/testing')
-rwxr-xr-xtools/testing/ktest/ktest.pl8
-rw-r--r--tools/testing/ktest/sample.conf6
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