diff options
author | Steven Rostedt <srostedt@redhat.com> | 2011-09-30 22:41:14 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2011-10-17 11:54:11 -0400 |
commit | 9900b5dc067551fcdcaec63d013b1d95b36835ae (patch) | |
tree | 7d5b8009f6ee03e4bae24efcb802be9b620c78c9 /tools/testing | |
parent | 3d1cc41432b0491a39a3185b52bfa1d0411bba10 (diff) |
ktest: Add DEFINED keyword for IF statements
Have IF statements process if a config variable or option has been
defined or not. Can use NOT DEFINED in the case for telling if
a variable or option has not been defined.
DEFAULTS IF NOT DEFINED SSH_USER
SSH_USER = root
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'tools/testing')
-rwxr-xr-x | tools/testing/ktest/ktest.pl | 17 | ||||
-rw-r--r-- | tools/testing/ktest/sample.conf | 17 |
2 files changed, 33 insertions, 1 deletions
diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl index 7bce412bbdcc..76a5964595da 100755 --- a/tools/testing/ktest/ktest.pl +++ b/tools/testing/ktest/ktest.pl | |||
@@ -396,6 +396,13 @@ sub process_compare { | |||
396 | return $ret; | 396 | return $ret; |
397 | } | 397 | } |
398 | 398 | ||
399 | sub value_defined { | ||
400 | my ($val) = @_; | ||
401 | |||
402 | return defined($variable{$2}) || | ||
403 | defined($opt{$2}); | ||
404 | } | ||
405 | |||
399 | sub process_if { | 406 | sub process_if { |
400 | my ($name, $value) = @_; | 407 | my ($name, $value) = @_; |
401 | 408 | ||
@@ -409,13 +416,21 @@ sub process_if { | |||
409 | return $ret; | 416 | return $ret; |
410 | } | 417 | } |
411 | 418 | ||
419 | if ($val =~ /^\s*(NOT\s*)?DEFINED\s+(\S+)\s*$/) { | ||
420 | if (defined $1) { | ||
421 | return !value_defined($2); | ||
422 | } else { | ||
423 | return value_defined($2); | ||
424 | } | ||
425 | } | ||
426 | |||
412 | if ($val =~ /^\s*0\s*$/) { | 427 | if ($val =~ /^\s*0\s*$/) { |
413 | return 0; | 428 | return 0; |
414 | } elsif ($val =~ /^\s*\d+\s*$/) { | 429 | } elsif ($val =~ /^\s*\d+\s*$/) { |
415 | return 1; | 430 | return 1; |
416 | } | 431 | } |
417 | 432 | ||
418 | die ("$name: $.: Undefined variable $val in if statement\n"); | 433 | die ("$name: $.: Undefined content $val in if statement\n"); |
419 | return 1; | 434 | return 1; |
420 | } | 435 | } |
421 | 436 | ||
diff --git a/tools/testing/ktest/sample.conf b/tools/testing/ktest/sample.conf index 0fd3ca30ad0c..7b49f07b6423 100644 --- a/tools/testing/ktest/sample.conf +++ b/tools/testing/ktest/sample.conf | |||
@@ -137,6 +137,23 @@ | |||
137 | # ELSE | 137 | # ELSE |
138 | # BUILD_TYPE = useconfig:${CONFIG_DIR}/config-64 | 138 | # BUILD_TYPE = useconfig:${CONFIG_DIR}/config-64 |
139 | # | 139 | # |
140 | # The DEFINED keyword can be used by the IF statements too. | ||
141 | # It returns true if the given config variable or option has been defined | ||
142 | # or false otherwise. | ||
143 | # | ||
144 | # | ||
145 | # DEFAULTS IF DEFINED USE_CC | ||
146 | # CC := ${USE_CC} | ||
147 | # ELSE | ||
148 | # CC := gcc | ||
149 | # | ||
150 | # | ||
151 | # As well as NOT DEFINED. | ||
152 | # | ||
153 | # DEFAULTS IF NOT DEFINED MAKE_CMD | ||
154 | # MAKE_CMD := make ARCH=x86 | ||
155 | # | ||
156 | # | ||
140 | # | 157 | # |
141 | # INCLUDE file | 158 | # INCLUDE file |
142 | # | 159 | # |