[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");
- [Quilt-dev] [patch 0/8] test/run: Cleanups and optimizations, Jean Delvare, 2014/02/02
- [Quilt-dev] [patch 1/8] test/run: Delay command line splitting, Jean Delvare, 2014/02/02
- [Quilt-dev] [patch 2/8] test/run: Use perl module Text::ParseWords, Jean Delvare, 2014/02/02
- [Quilt-dev] [patch 3/8] test/run: Drop support for su and sg, Jean Delvare, 2014/02/02
- [Quilt-dev] [patch 5/8] test/run: Reorder functions, Jean Delvare, 2014/02/02
- [Quilt-dev] [patch 6/8] test/run: Declare global variables as such, Jean Delvare, 2014/02/02
- [Quilt-dev] [patch 8/8] test/run: Minor performance optimizations,
Jean Delvare <=
- [Quilt-dev] [patch 4/8] test/run: Massive reindentation, Jean Delvare, 2014/02/02
- [Quilt-dev] [patch 7/8] test/run: Fix the condition for using /bin/sh, Jean Delvare, 2014/02/02
- Re: [Quilt-dev] [patch 0/8] test/run: Cleanups and optimizations, Andreas Grünbacher, 2014/02/02
- Re: [Quilt-dev] [patch 0/8] test/run: Cleanups and optimizations, Raphael Hertzog, 2014/02/05
Re: [Quilt-dev] [patch 0/8] test/run: Cleanups and optimizations, Jean Delvare, 2014/02/05