Skip to content

Commit

Permalink
ktest: Add CONFIG_BISECT_CHECK option
Browse files Browse the repository at this point in the history
The config-bisect can take a bad config and bisect it down to find out
what config actually breaks the config. But as all tests will apply a
minconfig (defined by a user) to apply before booting, it is possible
that the minconfig could actually make the bad config work (minconfigs
can disable configs). The end result is that the config bisect test will
not find a config that breaks. This can be rather frustrating to the
user.

The CONFIG_BISECT_CHECK option, when set to 1, will make sure that the
bad config (with the minconfig applied) still fails before trying to
bisect.

And yes, I did get burned by this.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
  • Loading branch information
Steven Rostedt authored and Steven Rostedt committed Jul 19, 2012
1 parent e5c2ec1 commit b091861
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
14 changes: 14 additions & 0 deletions tools/testing/ktest/ktest.pl
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@

my $config_bisect;
my $config_bisect_type;
my $config_bisect_check;

my $patchcheck_type;
my $patchcheck_start;
Expand Down Expand Up @@ -283,6 +284,7 @@

"CONFIG_BISECT" => \$config_bisect,
"CONFIG_BISECT_TYPE" => \$config_bisect_type,
"CONFIG_BISECT_CHECK" => \$config_bisect_check,

"PATCHCHECK_TYPE" => \$patchcheck_type,
"PATCHCHECK_START" => \$patchcheck_start,
Expand Down Expand Up @@ -2743,6 +2745,18 @@ sub config_bisect {
}
}
my $ret;

if (defined($config_bisect_check) && $config_bisect_check) {
doprint " Checking to make sure bad config with min config fails\n";
create_config keys %config_list;
$ret = run_config_bisect_test $config_bisect_type;
if ($ret) {
doprint " FAILED! Bad config with min config boots fine\n";
return -1;
}
doprint " Bad config with min config fails as expected\n";
}

do {
$ret = run_config_bisect;
} while (!$ret);
Expand Down
6 changes: 6 additions & 0 deletions tools/testing/ktest/sample.conf
Original file line number Diff line number Diff line change
Expand Up @@ -1077,6 +1077,12 @@
# can specify it with CONFIG_BISECT_GOOD. Otherwise
# the MIN_CONFIG is the base.
#
# CONFIG_BISECT_CHECK (optional)
# Set this to 1 if you want to confirm that the config ktest
# generates (the bad config with the min config) is still bad.
# It may be that the min config fixes what broke the bad config
# and the test will not return a result.
#
# Example:
# TEST_START
# TEST_TYPE = config_bisect
Expand Down

0 comments on commit b091861

Please sign in to comment.