All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH 14/21] ktest: Add DEFINED keyword for IF statements
Date: Fri, 28 Oct 2011 07:16:12 -0400	[thread overview]
Message-ID: <20111028112030.817512818@goodmis.org> (raw)
In-Reply-To: 20111028111558.173726794@goodmis.org

[-- Attachment #1: Type: text/plain, Size: 2107 bytes --]

From: Steven Rostedt <srostedt@redhat.com>

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>
---
 tools/testing/ktest/ktest.pl    |   17 ++++++++++++++++-
 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 7bce412..76a5964 100755
--- a/tools/testing/ktest/ktest.pl
+++ b/tools/testing/ktest/ktest.pl
@@ -396,6 +396,13 @@ sub process_compare {
     return $ret;
 }
 
+sub value_defined {
+    my ($val) = @_;
+
+    return defined($variable{$2}) ||
+	defined($opt{$2});
+}
+
 sub process_if {
     my ($name, $value) = @_;
 
@@ -409,13 +416,21 @@ sub process_if {
 	return $ret;
     }
 
+    if ($val =~ /^\s*(NOT\s*)?DEFINED\s+(\S+)\s*$/) {
+	if (defined $1) {
+	    return !value_defined($2);
+	} else {
+	    return value_defined($2);
+	}
+    }
+
     if ($val =~ /^\s*0\s*$/) {
 	return 0;
     } elsif ($val =~ /^\s*\d+\s*$/) {
 	return 1;
     }
 
-    die ("$name: $.: Undefined variable $val in if statement\n");
+    die ("$name: $.: Undefined content $val in if statement\n");
     return 1;
 }
 
diff --git a/tools/testing/ktest/sample.conf b/tools/testing/ktest/sample.conf
index 0fd3ca3..7b49f07 100644
--- a/tools/testing/ktest/sample.conf
+++ b/tools/testing/ktest/sample.conf
@@ -137,6 +137,23 @@
 # ELSE
 # BUILD_TYPE = useconfig:${CONFIG_DIR}/config-64
 #
+# The DEFINED keyword can be used by the IF statements too.
+# It returns true if the given config variable or option has been defined
+# or false otherwise.
+#
+# 
+# DEFAULTS IF DEFINED USE_CC
+# CC := ${USE_CC}
+# ELSE
+# CC := gcc
+#
+#
+# As well as NOT DEFINED.
+#
+# DEFAULTS IF NOT DEFINED MAKE_CMD
+# MAKE_CMD := make ARCH=x86
+#
+#
 #
 # INCLUDE file
 #
-- 
1.7.6.3



[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  parent reply	other threads:[~2011-10-28 11:22 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-28 11:15 [PATCH 00/21] [GIT PULL] ktest: lots of nice new features Steven Rostedt
2011-10-28 11:15 ` [PATCH 01/21] ktest: Add TEST_TYPE install option Steven Rostedt
2011-10-28 11:16 ` [PATCH 02/21] ktest: Create outputdir if it does not exist Steven Rostedt
2011-10-28 11:16 ` [PATCH 03/21] ktest: Only need to save .config when doing mrproper Steven Rostedt
2011-10-28 11:16 ` [PATCH 04/21] ktest: Include monitor in reboot code Steven Rostedt
2011-10-28 11:16 ` [PATCH 05/21] ktest: Fail when grub menu not found Steven Rostedt
2011-10-28 11:16 ` [PATCH 06/21] ktest: Add NO_INSTALL option to not install for a test Steven Rostedt
2011-10-28 11:16 ` [PATCH 07/21] ktest: Add option REBOOT_SUCCESS_LINE to stop waiting after a reboot Steven Rostedt
2011-10-28 11:16 ` [PATCH 08/21] ktest: Do not reboot on config or build issues Steven Rostedt
2011-10-28 11:16 ` [PATCH 09/21] ktest: Add IF and ELSE to config sections Steven Rostedt
2011-10-28 11:16 ` [PATCH 10/21] ktest: Let IF keyword take comparisons Steven Rostedt
2011-10-28 11:16 ` [PATCH 11/21] ktest: Add INCLUDE keyword to include other config files Steven Rostedt
2011-10-28 11:16 ` [PATCH 12/21] ktest: Consolidate TEST_TYPE and DEFAULT code Steven Rostedt
2011-10-28 11:16 ` [PATCH 13/21] ktest: Add OVERRIDE keyword to DEFAULTS section Steven Rostedt
2011-10-28 11:16 ` Steven Rostedt [this message]
2011-10-28 11:16 ` [PATCH 15/21] ktest: Sort make_min_config configs by dependecies Steven Rostedt
2011-10-28 11:16 ` [PATCH 16/21] ktest: Fix parsing of config section lines Steven Rostedt
2011-10-28 11:16 ` [PATCH 17/21] ktest: Add processing of complex conditionals Steven Rostedt
2011-10-28 11:16 ` [PATCH 18/21] ktest: Do not opencode reboot in grub setting Steven Rostedt
2011-10-28 11:16 ` [PATCH 19/21] ktest: Add another monitor flush before installing kernel Steven Rostedt
2011-10-28 11:16 ` [PATCH 20/21] ktest: Add variable ${PWD} Steven Rostedt
2011-10-28 11:16 ` [PATCH 21/21] ktest: Evaluate variables entered on the command line Steven Rostedt
2011-11-08  1:23 ` [PATCH 00/21] [GIT PULL] ktest: lots of nice new features Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111028112030.817512818@goodmis.org \
    --to=rostedt@goodmis.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.