mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 22:51:42 +00:00
ktest: Add PRE/POST_KTEST and TEST options
In order to let the user add commands before and after ktest runs, the PRE_KTEST and POST_KTEST options are defined. They hold shell commands that will execute befor ktest runs its first test, as well as when it completed its last test. The PRE_TEST and POST_TEST will be run befor and after (respectively) for a given test. They can either be global (done for all tests) or defined by a single test. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
958d8435c2
commit
921ed4c720
@ -77,6 +77,11 @@ my $output_config;
|
||||
my $test_type;
|
||||
my $build_type;
|
||||
my $build_options;
|
||||
my $final_post_ktest;
|
||||
my $pre_ktest;
|
||||
my $post_ktest;
|
||||
my $pre_test;
|
||||
my $post_test;
|
||||
my $pre_build;
|
||||
my $post_build;
|
||||
my $pre_build_die;
|
||||
@ -197,6 +202,10 @@ my %option_map = (
|
||||
"OUTPUT_DIR" => \$outputdir,
|
||||
"BUILD_DIR" => \$builddir,
|
||||
"TEST_TYPE" => \$test_type,
|
||||
"PRE_KTEST" => \$pre_ktest,
|
||||
"POST_KTEST" => \$post_ktest,
|
||||
"PRE_TEST" => \$pre_test,
|
||||
"POST_TEST" => \$post_test,
|
||||
"BUILD_TYPE" => \$build_type,
|
||||
"BUILD_OPTIONS" => \$build_options,
|
||||
"PRE_BUILD" => \$pre_build,
|
||||
@ -1273,6 +1282,10 @@ sub save_logs {
|
||||
|
||||
sub fail {
|
||||
|
||||
if (defined($post_test)) {
|
||||
run_command $post_test;
|
||||
}
|
||||
|
||||
if ($die_on_failure) {
|
||||
dodie @_;
|
||||
}
|
||||
@ -1937,6 +1950,10 @@ sub halt {
|
||||
sub success {
|
||||
my ($i) = @_;
|
||||
|
||||
if (defined($post_test)) {
|
||||
run_command $post_test;
|
||||
}
|
||||
|
||||
$successes++;
|
||||
|
||||
my $name = "";
|
||||
@ -3518,6 +3535,18 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
|
||||
|
||||
$start_minconfig_defined = 1;
|
||||
|
||||
# The first test may override the PRE_KTEST option
|
||||
if (defined($pre_ktest) && $i == 1) {
|
||||
doprint "\n";
|
||||
run_command $pre_ktest;
|
||||
}
|
||||
|
||||
# Any test can override the POST_KTEST option
|
||||
# The last test takes precedence.
|
||||
if (defined($post_ktest)) {
|
||||
$final_post_ktest = $post_ktest;
|
||||
}
|
||||
|
||||
if (!defined($start_minconfig)) {
|
||||
$start_minconfig_defined = 0;
|
||||
$start_minconfig = $minconfig;
|
||||
@ -3572,6 +3601,10 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
|
||||
doprint "\n\n";
|
||||
doprint "RUNNING TEST $i of $opt{NUM_TESTS} with option $test_type $run_type$installme\n\n";
|
||||
|
||||
if (defined($pre_test)) {
|
||||
run_command $pre_test;
|
||||
}
|
||||
|
||||
unlink $dmesg;
|
||||
unlink $buildlog;
|
||||
unlink $testlog;
|
||||
@ -3637,6 +3670,10 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
|
||||
success $i;
|
||||
}
|
||||
|
||||
if (defined($final_post_ktest)) {
|
||||
run_command $final_post_ktest;
|
||||
}
|
||||
|
||||
if ($opt{"POWEROFF_ON_SUCCESS"}) {
|
||||
halt;
|
||||
} elsif ($opt{"REBOOT_ON_SUCCESS"} && !do_not_reboot && $reboot_success) {
|
||||
|
@ -376,6 +376,24 @@
|
||||
# DEFAULTS
|
||||
# DEFAULTS SKIP
|
||||
|
||||
# If you want to execute some command before the first test runs
|
||||
# you can set this option. Note, it can be set as a default option
|
||||
# or an option in the first test case. All other test cases will
|
||||
# ignore it. If both the default and first test have this option
|
||||
# set, then the first test will take precedence.
|
||||
#
|
||||
# default (undefined)
|
||||
#PRE_KTEST = ${SSH} ~/set_up_test
|
||||
|
||||
# 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
|
||||
# default or any test case can override it. If multiple test cases
|
||||
# set this option, then the last test case that set it will take
|
||||
# precedence
|
||||
#
|
||||
# default (undefined)
|
||||
#POST_KTEST = ${SSH} ~/dismantle_test
|
||||
|
||||
# The default test type (default test)
|
||||
# The test types may be:
|
||||
# build - only build the kernel, do nothing else
|
||||
@ -426,6 +444,18 @@
|
||||
# (default 0)
|
||||
#NO_INSTALL = 1
|
||||
|
||||
# If there is a command that you want to run before the individual test
|
||||
# case executes, then you can set this option
|
||||
#
|
||||
# default (undefined)
|
||||
#PRE_TEST = ${SSH} reboot_to_special_kernel
|
||||
|
||||
# If there is a command you want to run after the individual test case
|
||||
# completes, then you can set this option.
|
||||
#
|
||||
# default (undefined)
|
||||
#POST_TEST = cd ${BUILD_DIR}; git reset --hard
|
||||
|
||||
# If there is a script that you require to run before the build is done
|
||||
# you can specify it with PRE_BUILD.
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user