diff options
author | Steven Rostedt <srostedt@redhat.com> | 2012-07-19 15:18:27 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2012-07-19 15:18:27 -0400 |
commit | 921ed4c7208e5c466a87db0a11c6fdd26bcc2fe7 (patch) | |
tree | 58245d96a213b292ad100f03cdec6dc3642681b9 /tools | |
parent | 958d8435c257f93123dec83647130457816a23e6 (diff) |
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>
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/testing/ktest/ktest.pl | 37 | ||||
-rw-r--r-- | tools/testing/ktest/sample.conf | 30 |
2 files changed, 67 insertions, 0 deletions
diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl index a40af07e7772..31b941613f98 100755 --- a/tools/testing/ktest/ktest.pl +++ b/tools/testing/ktest/ktest.pl | |||
@@ -77,6 +77,11 @@ my $output_config; | |||
77 | my $test_type; | 77 | my $test_type; |
78 | my $build_type; | 78 | my $build_type; |
79 | my $build_options; | 79 | my $build_options; |
80 | my $final_post_ktest; | ||
81 | my $pre_ktest; | ||
82 | my $post_ktest; | ||
83 | my $pre_test; | ||
84 | my $post_test; | ||
80 | my $pre_build; | 85 | my $pre_build; |
81 | my $post_build; | 86 | my $post_build; |
82 | my $pre_build_die; | 87 | my $pre_build_die; |
@@ -197,6 +202,10 @@ my %option_map = ( | |||
197 | "OUTPUT_DIR" => \$outputdir, | 202 | "OUTPUT_DIR" => \$outputdir, |
198 | "BUILD_DIR" => \$builddir, | 203 | "BUILD_DIR" => \$builddir, |
199 | "TEST_TYPE" => \$test_type, | 204 | "TEST_TYPE" => \$test_type, |
205 | "PRE_KTEST" => \$pre_ktest, | ||
206 | "POST_KTEST" => \$post_ktest, | ||
207 | "PRE_TEST" => \$pre_test, | ||
208 | "POST_TEST" => \$post_test, | ||
200 | "BUILD_TYPE" => \$build_type, | 209 | "BUILD_TYPE" => \$build_type, |
201 | "BUILD_OPTIONS" => \$build_options, | 210 | "BUILD_OPTIONS" => \$build_options, |
202 | "PRE_BUILD" => \$pre_build, | 211 | "PRE_BUILD" => \$pre_build, |
@@ -1273,6 +1282,10 @@ sub save_logs { | |||
1273 | 1282 | ||
1274 | sub fail { | 1283 | sub fail { |
1275 | 1284 | ||
1285 | if (defined($post_test)) { | ||
1286 | run_command $post_test; | ||
1287 | } | ||
1288 | |||
1276 | if ($die_on_failure) { | 1289 | if ($die_on_failure) { |
1277 | dodie @_; | 1290 | dodie @_; |
1278 | } | 1291 | } |
@@ -1937,6 +1950,10 @@ sub halt { | |||
1937 | sub success { | 1950 | sub success { |
1938 | my ($i) = @_; | 1951 | my ($i) = @_; |
1939 | 1952 | ||
1953 | if (defined($post_test)) { | ||
1954 | run_command $post_test; | ||
1955 | } | ||
1956 | |||
1940 | $successes++; | 1957 | $successes++; |
1941 | 1958 | ||
1942 | my $name = ""; | 1959 | my $name = ""; |
@@ -3518,6 +3535,18 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) { | |||
3518 | 3535 | ||
3519 | $start_minconfig_defined = 1; | 3536 | $start_minconfig_defined = 1; |
3520 | 3537 | ||
3538 | # The first test may override the PRE_KTEST option | ||
3539 | if (defined($pre_ktest) && $i == 1) { | ||
3540 | doprint "\n"; | ||
3541 | run_command $pre_ktest; | ||
3542 | } | ||
3543 | |||
3544 | # Any test can override the POST_KTEST option | ||
3545 | # The last test takes precedence. | ||
3546 | if (defined($post_ktest)) { | ||
3547 | $final_post_ktest = $post_ktest; | ||
3548 | } | ||
3549 | |||
3521 | if (!defined($start_minconfig)) { | 3550 | if (!defined($start_minconfig)) { |
3522 | $start_minconfig_defined = 0; | 3551 | $start_minconfig_defined = 0; |
3523 | $start_minconfig = $minconfig; | 3552 | $start_minconfig = $minconfig; |
@@ -3572,6 +3601,10 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) { | |||
3572 | doprint "\n\n"; | 3601 | doprint "\n\n"; |
3573 | doprint "RUNNING TEST $i of $opt{NUM_TESTS} with option $test_type $run_type$installme\n\n"; | 3602 | doprint "RUNNING TEST $i of $opt{NUM_TESTS} with option $test_type $run_type$installme\n\n"; |
3574 | 3603 | ||
3604 | if (defined($pre_test)) { | ||
3605 | run_command $pre_test; | ||
3606 | } | ||
3607 | |||
3575 | unlink $dmesg; | 3608 | unlink $dmesg; |
3576 | unlink $buildlog; | 3609 | unlink $buildlog; |
3577 | unlink $testlog; | 3610 | unlink $testlog; |
@@ -3637,6 +3670,10 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) { | |||
3637 | success $i; | 3670 | success $i; |
3638 | } | 3671 | } |
3639 | 3672 | ||
3673 | if (defined($final_post_ktest)) { | ||
3674 | run_command $final_post_ktest; | ||
3675 | } | ||
3676 | |||
3640 | if ($opt{"POWEROFF_ON_SUCCESS"}) { | 3677 | if ($opt{"POWEROFF_ON_SUCCESS"}) { |
3641 | halt; | 3678 | halt; |
3642 | } elsif ($opt{"REBOOT_ON_SUCCESS"} && !do_not_reboot && $reboot_success) { | 3679 | } elsif ($opt{"REBOOT_ON_SUCCESS"} && !do_not_reboot && $reboot_success) { |
diff --git a/tools/testing/ktest/sample.conf b/tools/testing/ktest/sample.conf index cf362b3d1ec9..4472452f5be1 100644 --- a/tools/testing/ktest/sample.conf +++ b/tools/testing/ktest/sample.conf | |||
@@ -376,6 +376,24 @@ | |||
376 | # DEFAULTS | 376 | # DEFAULTS |
377 | # DEFAULTS SKIP | 377 | # DEFAULTS SKIP |
378 | 378 | ||
379 | # If you want to execute some command before the first test runs | ||
380 | # you can set this option. Note, it can be set as a default option | ||
381 | # or an option in the first test case. All other test cases will | ||
382 | # ignore it. If both the default and first test have this option | ||
383 | # set, then the first test will take precedence. | ||
384 | # | ||
385 | # default (undefined) | ||
386 | #PRE_KTEST = ${SSH} ~/set_up_test | ||
387 | |||
388 | # If you want to execute some command after all the tests have | ||
389 | # completed, you can set this option. Note, it can be set as a | ||
390 | # default or any test case can override it. If multiple test cases | ||
391 | # set this option, then the last test case that set it will take | ||
392 | # precedence | ||
393 | # | ||
394 | # default (undefined) | ||
395 | #POST_KTEST = ${SSH} ~/dismantle_test | ||
396 | |||
379 | # The default test type (default test) | 397 | # The default test type (default test) |
380 | # The test types may be: | 398 | # The test types may be: |
381 | # build - only build the kernel, do nothing else | 399 | # build - only build the kernel, do nothing else |
@@ -426,6 +444,18 @@ | |||
426 | # (default 0) | 444 | # (default 0) |
427 | #NO_INSTALL = 1 | 445 | #NO_INSTALL = 1 |
428 | 446 | ||
447 | # If there is a command that you want to run before the individual test | ||
448 | # case executes, then you can set this option | ||
449 | # | ||
450 | # default (undefined) | ||
451 | #PRE_TEST = ${SSH} reboot_to_special_kernel | ||
452 | |||
453 | # If there is a command you want to run after the individual test case | ||
454 | # completes, then you can set this option. | ||
455 | # | ||
456 | # default (undefined) | ||
457 | #POST_TEST = cd ${BUILD_DIR}; git reset --hard | ||
458 | |||
429 | # If there is a script that you require to run before the build is done | 459 | # If there is a script that you require to run before the build is done |
430 | # you can specify it with PRE_BUILD. | 460 | # you can specify it with PRE_BUILD. |
431 | # | 461 | # |