ktest: Fix off-by-one in config bisect result
authorSteven Rostedt <srostedt@redhat.com>
Thu, 2 Jun 2011 03:22:30 +0000 (23:22 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Thu, 2 Jun 2011 15:57:41 +0000 (11:57 -0400)
Because in perl the array size returned by $#arr, is the last
index and not the actually size of the array, we end the config
bisect early, thinking there is only one config left when there
are in fact two. Thus the result has a 50% chance of picking
the correct config that caused the problem.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
tools/testing/ktest/ktest.pl

index 1fd29b2daa9204fff6e345c8871799dcb0e04e5e..8dc8c3cf3acf700a2bd661feba3c4f3373942f2d 100755 (executable)
@@ -1638,7 +1638,7 @@ sub run_config_bisect {
        if (!$found) {
            # try the other half
            doprint "Top half produced no set configs, trying bottom half\n";
-           @tophalf = @start_list[$half .. $#start_list];
+           @tophalf = @start_list[$half + 1 .. $#start_list];
            create_config @tophalf;
            read_current_config \%current_config;
            foreach my $config (@tophalf) {
@@ -1690,7 +1690,7 @@ sub run_config_bisect {
        # remove half the configs we are looking at and see if
        # they are good.
        $half = int($#start_list / 2);
-    } while ($half > 0);
+    } while ($#start_list > 0);
 
     # we found a single config, try it again unless we are running manually