lkml.org 
[lkml]   [2011]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 07/19] ktest: Have LOG_FILE evaluate options as well
    From: Steven Rostedt <srostedt@redhat.com>

    The LOG_FILE variable needs to evaluate the $ options as well.

    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    ---
    tools/testing/ktest/ktest.pl | 126 ++++++++++++++++++++++-------------------
    1 files changed, 68 insertions(+), 58 deletions(-)

    diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
    index 1e1fe83..83dcfaf 100755
    --- a/tools/testing/ktest/ktest.pl
    +++ b/tools/testing/ktest/ktest.pl
    @@ -478,6 +478,69 @@ sub read_config {
    }
    }

    +sub __eval_option {
    + my ($option, $i) = @_;
    +
    + # Add space to evaluate the character before $
    + $option = " $option";
    + my $retval = "";
    +
    + while ($option =~ /(.*?[^\\])\$\{(.*?)\}(.*)/) {
    + my $start = $1;
    + my $var = $2;
    + my $end = $3;
    +
    + # Append beginning of line
    + $retval = "$retval$start";
    +
    + # If the iteration option OPT[$i] exists, then use that.
    + # otherwise see if the default OPT (without [$i]) exists.
    +
    + my $o = "$var\[$i\]";
    +
    + if (defined($opt{$o})) {
    + $o = $opt{$o};
    + $retval = "$retval$o";
    + } elsif (defined($opt{$var})) {
    + $o = $opt{$var};
    + $retval = "$retval$o";
    + } else {
    + $retval = "$retval\$\{$var\}";
    + }
    +
    + $option = $end;
    + }
    +
    + $retval = "$retval$option";
    +
    + $retval =~ s/^ //;
    +
    + return $retval;
    +}
    +
    +sub eval_option {
    + my ($option, $i) = @_;
    +
    + my $prev = "";
    +
    + # Since an option can evaluate to another option,
    + # keep iterating until we do not evaluate any more
    + # options.
    + my $r = 0;
    + while ($prev ne $option) {
    + # Check for recursive evaluations.
    + # 100 deep should be more than enough.
    + if ($r++ > 100) {
    + die "Over 100 evaluations accurred with $option\n" .
    + "Check for recursive variables\n";
    + }
    + $prev = $option;
    + $option = __eval_option($option, $i);
    + }
    +
    + return $option;
    +}
    +
    sub _logit {
    if (defined($opt{"LOG_FILE"})) {
    open(OUT, ">> $opt{LOG_FILE}") or die "Can't write to $opt{LOG_FILE}";
    @@ -2079,6 +2142,10 @@ EOF
    }
    read_config $ktest_config;

    +if (defined($opt{"LOG_FILE"})) {
    + $opt{"LOG_FILE"} = eval_option($opt{"LOG_FILE"}, -1);
    +}
    +
    # Append any configs entered in manually to the config file.
    my @new_configs = keys %entered_configs;
    if ($#new_configs >= 0) {
    @@ -2147,70 +2214,13 @@ sub __set_test_option {
    return undef;
    }

    -sub eval_option {
    - my ($option, $i) = @_;
    -
    - # Add space to evaluate the character before $
    - $option = " $option";
    - my $retval = "";
    -
    - while ($option =~ /(.*?[^\\])\$\{(.*?)\}(.*)/) {
    - my $start = $1;
    - my $var = $2;
    - my $end = $3;
    -
    - # Append beginning of line
    - $retval = "$retval$start";
    -
    - # If the iteration option OPT[$i] exists, then use that.
    - # otherwise see if the default OPT (without [$i]) exists.
    -
    - my $o = "$var\[$i\]";
    -
    - if (defined($opt{$o})) {
    - $o = $opt{$o};
    - $retval = "$retval$o";
    - } elsif (defined($opt{$var})) {
    - $o = $opt{$var};
    - $retval = "$retval$o";
    - } else {
    - $retval = "$retval\$\{$var\}";
    - }
    -
    - $option = $end;
    - }
    -
    - $retval = "$retval$option";
    -
    - $retval =~ s/^ //;
    -
    - return $retval;
    -}
    -
    sub set_test_option {
    my ($name, $i) = @_;

    my $option = __set_test_option($name, $i);
    return $option if (!defined($option));

    - my $prev = "";
    -
    - # Since an option can evaluate to another option,
    - # keep iterating until we do not evaluate any more
    - # options.
    - my $r = 0;
    - while ($prev ne $option) {
    - # Check for recursive evaluations.
    - # 100 deep should be more than enough.
    - if ($r++ > 100) {
    - die "Over 100 evaluations accurred with $name\n" .
    - "Check for recursive variables\n";
    - }
    - $prev = $option;
    - $option = eval_option($option, $i);
    - }
    -
    - return $option;
    + return eval_option($option, $i);
    }

    # First we need to do is the builds
    --
    1.7.5.4



    \
     
     \ /
      Last update: 2011-07-26 03:31    [W:0.050 / U:183.860 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site