Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 275175
b: refs/heads/master
c: 3d1cc41
h: refs/heads/master
i:
  275173: f822311
  275171: 9b5bf48
  275167: 4baf1ed
v: v3
  • Loading branch information
Steven Rostedt authored and Steven Rostedt committed Oct 17, 2011
1 parent dc45383 commit 1314e4a
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0050b6bbef01d871a34a77685047190aa428b210
refs/heads/master: 3d1cc41432b0491a39a3185b52bfa1d0411bba10
37 changes: 29 additions & 8 deletions trunk/tools/testing/ktest/ktest.pl
Original file line number Diff line number Diff line change
Expand Up @@ -337,10 +337,17 @@ sub process_variables {
}

sub set_value {
my ($lvalue, $rvalue) = @_;
my ($lvalue, $rvalue, $override, $overrides, $name) = @_;

if (defined($opt{$lvalue})) {
die "Error: Option $lvalue defined more than once!\n";
if (!$override || defined(${$overrides}{$lvalue})) {
my $extra = "";
if ($override) {
$extra = "In the same override section!\n";
}
die "$name: $.: Option $lvalue defined more than once!\n$extra";
}
${$overrides}{$lvalue} = $rvalue;
}
if ($rvalue =~ /^\s*$/) {
delete $opt{$lvalue};
Expand Down Expand Up @@ -430,6 +437,9 @@ sub __read_config {
my $test_case = 0;
my $if = 0;
my $if_set = 0;
my $override = 0;

my %overrides;

while (<$in>) {

Expand All @@ -443,6 +453,7 @@ sub __read_config {

my $old_test_num;
my $old_repeat;
$override = 0;

if ($type eq "TEST_START") {

Expand All @@ -468,10 +479,20 @@ sub __read_config {
$skip = 0;
}

if ($rest =~ /\s+ITERATE\s+(\d+)(.*)$/) {
$repeat = $1;
$rest = $2;
$repeat_tests{"$test_num"} = $repeat;
if (!$skip) {
if ($type eq "TEST_START") {
if ($rest =~ /\s+ITERATE\s+(\d+)(.*)$/) {
$repeat = $1;
$rest = $2;
$repeat_tests{"$test_num"} = $repeat;
}
} elsif ($rest =~ /\sOVERRIDE\b(.*)/) {
# DEFAULT only
$rest = $1;
$override = 1;
# Clear previous overrides
%overrides = ();
}
}

if ($rest =~ /\sIF\s+(.*)/) {
Expand Down Expand Up @@ -573,10 +594,10 @@ sub __read_config {
}

if ($default || $lvalue =~ /\[\d+\]$/) {
set_value($lvalue, $rvalue);
set_value($lvalue, $rvalue, $override, \%overrides, $name);
} else {
my $val = "$lvalue\[$test_num\]";
set_value($val, $rvalue);
set_value($val, $rvalue, $override, \%overrides, $name);

if ($repeat > 1) {
$repeats{$val} = $repeat;
Expand Down
15 changes: 15 additions & 0 deletions trunk/tools/testing/ktest/sample.conf
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,21 @@
# the same option name under the same test or as default
# ktest will fail to execute, and no tests will run.
#
# DEFAULTS OVERRIDE
#
# Options defined in the DEFAULTS section can not be duplicated
# even if they are defined in two different DEFAULT sections.
# This is done to catch mistakes where an option is added but
# the previous option was forgotten about and not commented.
#
# The OVERRIDE keyword can be added to a section to allow this
# section to override other DEFAULT sections values that have
# been defined previously. It will only override options that
# have been defined before its use. Options defined later
# in a non override section will still error. The same option
# can not be defined in the same section even if that section
# is marked OVERRIDE.
#
#
#
# Both TEST_START and DEFAULTS sections can also have the IF keyword
Expand Down

0 comments on commit 1314e4a

Please sign in to comment.