[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20111028112035.504124931@goodmis.org>
Date: Fri, 28 Oct 2011 07:16:14 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: linux-kernel@...r.kernel.org
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Andrew Morton <akpm@...ux-foundation.org>
Subject: [PATCH 16/21] ktest: Fix parsing of config section lines
From: Steven Rostedt <srostedt@...hat.com>
The order for some of the keywords on a section line
(TEST_START or DEFAULTS) does not really matter. Simply need
to remove the keyword from the line as we process it and
evaluate the next keyword in the line. By removing the keywords
as we find them, we do not need to keep track of where on the
line they were found.
Signed-off-by: Steven Rostedt <rostedt@...dmis.org>
---
tools/testing/ktest/ktest.pl | 49 ++++++++++++++++++++++++++---------------
1 files changed, 31 insertions(+), 18 deletions(-)
diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
index 2a9d042..d292c2d 100755
--- a/tools/testing/ktest/ktest.pl
+++ b/tools/testing/ktest/ktest.pl
@@ -449,6 +449,7 @@ sub __read_config {
my $num_tests_set = 0;
my $skip = 0;
my $rest;
+ my $line;
my $test_case = 0;
my $if = 0;
my $if_set = 0;
@@ -465,6 +466,7 @@ sub __read_config {
my $type = $1;
$rest = $2;
+ $line = $2;
my $old_test_num;
my $old_repeat;
@@ -486,32 +488,28 @@ sub __read_config {
$default = 1;
}
- if ($rest =~ /\s+SKIP\b(.*)/) {
- $rest = $1;
+ # If SKIP is anywhere in the line, the command will be skipped
+ if ($rest =~ s/\s+SKIP\b//) {
$skip = 1;
} else {
$test_case = 1;
$skip = 0;
}
- 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 =~ s/\sELSE\b//) {
+ if (!$if) {
+ die "$name: $.: ELSE found with out matching IF section\n$_";
+ }
+ $if = 0;
+
+ if ($if_set) {
+ $skip = 1;
+ } else {
+ $skip = 0;
}
}
- if ($rest =~ /\sIF\s+(.*)/) {
- $rest = "";
+ if ($rest =~ s/\sIF\s+(.*)//) {
if (process_if($name, $1)) {
$if_set = 1;
} else {
@@ -520,9 +518,24 @@ sub __read_config {
$if = 1;
} else {
$if = 0;
+ $if_set = 0;
}
- if ($rest !~ /^\s*$/) {
+ if (!$skip) {
+ if ($type eq "TEST_START") {
+ if ($rest =~ s/\s+ITERATE\s+(\d+)//) {
+ $repeat = $1;
+ $repeat_tests{"$test_num"} = $repeat;
+ }
+ } elsif ($rest =~ s/\sOVERRIDE\b//) {
+ # DEFAULT only
+ $override = 1;
+ # Clear previous overrides
+ %overrides = ();
+ }
+ }
+
+ if (!$skip && $rest !~ /^\s*$/) {
die "$name: $.: Gargbage found after $type\n$_";
}
--
1.7.6.3
Download attachment "signature.asc" of type "application/pgp-signature" (837 bytes)
Powered by blists - more mailing lists