quilt-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Quilt-dev] [patch 8/8] test/run: Minor performance optimizations


From: Jean Delvare
Subject: [Quilt-dev] [patch 8/8] test/run: Minor performance optimizations
Date: Sun, 02 Feb 2014 15:20:55 +0100
User-agent: quilt/0.61-1

* Don't set $needs_shell before we need it. When handling commands
  internally, we don't care about $needs_shell.
* Use a single regexp to set $use_re.
* Clear $good as soon as a test fails, instead of grepping for
  failures later.
---
 test/run |   13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

--- a/test/run
+++ b/test/run
@@ -119,7 +119,7 @@ sub exec_test($$) {
        my ($raw_prog, $in) = @_;
        local (*IN, *IN_DUP, *IN2, *OUT_DUP, *OUT, *OUT2);
        my $prog = [ shellwords($raw_prog) ];
-       my $needs_shell = ($raw_prog =~ /[][|&<>;`\$*?]/);
+       my $needs_shell;
 
        if ($prog->[0] eq "umask") {
                umask oct $prog->[1];
@@ -139,6 +139,8 @@ sub exec_test($$) {
                return 0, [];
        }
 
+       $needs_shell = ($raw_prog =~ /[][|&<>;`\$*?]/);
+
        pipe *IN2, *OUT
                or die "Can't create pipe for reading: $!";
        open *IN_DUP, "<&STDIN"
@@ -219,23 +221,20 @@ sub process_test($$$$) {
        print_body "[$prog_line] \$ $prog -- ";
        my ($exec_status, $result) = exec_test($prog, $in);
        my @good = ();
+       my $good = 1;
        my $nmax = (@$out > @$result) ? @$out : @$result;
        for (my $n = 0; $n < $nmax; $n++) {
-               my $use_re;
-               if (defined $out->[$n] && $out->[$n] =~ /^~ /) {
-                       $use_re = 1;
-                       $out->[$n] =~ s/^~ //g;
-               }
+               my $use_re = defined($out->[$n]) && ($out->[$n] =~ s/^~ //);
 
                if (!defined($out->[$n]) || !defined($result->[$n]) ||
                    (!$use_re && $result->[$n] ne $out->[$n]) ||
                    ( $use_re && $result->[$n] !~ /^$out->[$n]/)) {
                        push @good, ($use_re ? '!~' : '!=');
+                       $good = 0;
                } else {
                        push @good, ($use_re ? '=~' : '==');
                }
        }
-       my $good = !grep(/!/, @good);
        $tests++;
        $failed++ unless $good;
        print_body(($good ? $OK : $FAILED)."\n");





reply via email to

[Prev in Thread] Current Thread [Next in Thread]