lkml.org 
[lkml]   [2011]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 14/21] ktest: Add DEFINED keyword for IF statements
    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

    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2011-10-28 13:25    [W:0.025 / U:122.072 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site