Commit ccc513b6 authored by Steven Rostedt's avatar Steven Rostedt Committed by Steven Rostedt

ktest: Add MIN_CONFIG_TYPE to allow making a minum .config that has network

Add a MIN_CONFIG_TYPE that can be set to 'test' or 'boot'. The default
is 'boot' which is what make_min_config has done previously: makes a
config file that is the minimum needed to boot the target.

But when MIN_CONFIG_TYPE is set to 'test', not only must the target
boot, but it must also successfully run the TEST. This allows the
creation of a config file that is the minimum to boot and also
perform ssh to the target, or anything else a developer wants.
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent 683a3e64
...@@ -39,6 +39,7 @@ my %default = ( ...@@ -39,6 +39,7 @@ my %default = (
"CLEAR_LOG" => 0, "CLEAR_LOG" => 0,
"BISECT_MANUAL" => 0, "BISECT_MANUAL" => 0,
"BISECT_SKIP" => 1, "BISECT_SKIP" => 1,
"MIN_CONFIG_TYPE" => "boot",
"SUCCESS_LINE" => "login:", "SUCCESS_LINE" => "login:",
"DETECT_TRIPLE_FAULT" => 1, "DETECT_TRIPLE_FAULT" => 1,
"NO_INSTALL" => 0, "NO_INSTALL" => 0,
...@@ -107,6 +108,7 @@ my $minconfig; ...@@ -107,6 +108,7 @@ my $minconfig;
my $start_minconfig; my $start_minconfig;
my $start_minconfig_defined; my $start_minconfig_defined;
my $output_minconfig; my $output_minconfig;
my $minconfig_type;
my $ignore_config; my $ignore_config;
my $ignore_errors; my $ignore_errors;
my $addconfig; my $addconfig;
...@@ -206,6 +208,7 @@ my %option_map = ( ...@@ -206,6 +208,7 @@ my %option_map = (
"MIN_CONFIG" => \$minconfig, "MIN_CONFIG" => \$minconfig,
"OUTPUT_MIN_CONFIG" => \$output_minconfig, "OUTPUT_MIN_CONFIG" => \$output_minconfig,
"START_MIN_CONFIG" => \$start_minconfig, "START_MIN_CONFIG" => \$start_minconfig,
"MIN_CONFIG_TYPE" => \$minconfig_type,
"IGNORE_CONFIG" => \$ignore_config, "IGNORE_CONFIG" => \$ignore_config,
"TEST" => \$run_test, "TEST" => \$run_test,
"ADD_CONFIG" => \$addconfig, "ADD_CONFIG" => \$addconfig,
...@@ -3128,6 +3131,12 @@ sub test_this_config { ...@@ -3128,6 +3131,12 @@ sub test_this_config {
sub make_min_config { sub make_min_config {
my ($i) = @_; my ($i) = @_;
my $type = $minconfig_type;
if ($type ne "boot" && $type ne "test") {
fail "Invalid MIN_CONFIG_TYPE '$minconfig_type'\n" .
" make_min_config works only with 'boot' and 'test'\n" and return;
}
if (!defined($output_minconfig)) { if (!defined($output_minconfig)) {
fail "OUTPUT_MIN_CONFIG not defined" and return; fail "OUTPUT_MIN_CONFIG not defined" and return;
} }
...@@ -3287,6 +3296,11 @@ sub make_min_config { ...@@ -3287,6 +3296,11 @@ sub make_min_config {
build "oldconfig" or $failed = 1; build "oldconfig" or $failed = 1;
if (!$failed) { if (!$failed) {
start_monitor_and_boot or $failed = 1; start_monitor_and_boot or $failed = 1;
if ($type eq "test" && !$failed) {
do_run_test or $failed = 1;
}
end_monitor; end_monitor;
} }
......
...@@ -1105,10 +1105,20 @@ ...@@ -1105,10 +1105,20 @@
# and will not be tested again in later runs. # and will not be tested again in later runs.
# (optional) # (optional)
# #
# MIN_CONFIG_TYPE can be either 'boot' or 'test'. With 'boot' it will
# test if the created config can just boot the machine. If this is
# set to 'test', then the TEST option must be defined and the created
# config will not only boot the target, but also make sure that the
# config lets the test succeed. This is useful to make sure the final
# config that is generated allows network activity (ssh).
# (optional)
#
# Example: # Example:
# #
# TEST_TYPE = make_min_config # TEST_TYPE = make_min_config
# OUTPUT_MIN_CONFIG = /path/to/config-new-min # OUTPUT_MIN_CONFIG = /path/to/config-new-min
# START_MIN_CONFIG = /path/to/config-min # START_MIN_CONFIG = /path/to/config-min
# IGNORE_CONFIG = /path/to/config-tested # IGNORE_CONFIG = /path/to/config-tested
# MIN_CONFIG_TYPE = test
# TEST = ssh ${USER}@${MACHINE} echo hi
# #
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment