ktest: Allow perl regex expressions in conditional statements
authorSteven Rostedt <srostedt@redhat.com>
Mon, 30 Jul 2012 18:37:01 +0000 (14:37 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Mon, 30 Jul 2012 18:37:01 +0000 (14:37 -0400)
Add '=~' and '!~' to the list of allowed conditionals for DEFAULT and
TEST_START section if statements.

ie.

 TEST_START IF TEST =~ .*test$

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

index a022fb7..52b7959 100755 (executable)
@@ -623,6 +623,10 @@ sub process_compare {
        return $lval eq $rval;
     } elsif ($cmp eq "!=") {
        return $lval ne $rval;
+    } elsif ($cmp eq "=~") {
+       return $lval =~ m/$rval/;
+    } elsif ($cmp eq "!~") {
+       return $lval !~ m/$rval/;
     }
 
     my $statement = "$lval $cmp $rval";
@@ -678,7 +682,7 @@ sub process_expression {
        }
     }
 
-    if ($val =~ /(.*)(==|\!=|>=|<=|>|<)(.*)/) {
+    if ($val =~ /(.*)(==|\!=|>=|<=|>|<|=~|\!~)(.*)/) {
        my $ret = process_compare($1, $2, $3);
        if ($ret < 0) {
            die "$name: $.: Unable to process comparison\n";