From a4640b457ea8fba35408583e155a3eb2f6c34fb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20B=C3=BChler?= Date: Fri, 6 Sep 2013 16:44:41 +0000 Subject: [tests] use list for perl exec to skip the sh wrapper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Stefan Bühler git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2903 152afb58-edef-0310-8abb-c4023f1b3aa9 --- tests/LightyTest.pm | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'tests/LightyTest.pm') diff --git a/tests/LightyTest.pm b/tests/LightyTest.pm index ebdfd362..b92af876 100755 --- a/tests/LightyTest.pm +++ b/tests/LightyTest.pm @@ -112,30 +112,35 @@ sub start_proc { # kill old proc if necessary #$self->stop_proc; + if ($self->listening_on($self->{PORT})) { + diag("\nPort ".$self->{PORT}." already in use"); + return -1; + } + # pre-process configfile if necessary # $ENV{'SRCDIR'} = $self->{BASEDIR}.'/tests'; $ENV{'PORT'} = $self->{PORT}; - my $cmdline = $self->{LIGHTTPD_PATH}." -D -f ".$self->{SRCDIR}."/".$self->{CONFIGFILE}." -m ".$self->{MODULES_PATH}; + my @cmdline = ($self->{LIGHTTPD_PATH}, "-D", "-f", $self->{SRCDIR}."/".$self->{CONFIGFILE}, "-m", $self->{MODULES_PATH}); if (defined $ENV{"TRACEME"} && $ENV{"TRACEME"} eq 'strace') { - $cmdline = "strace -tt -s 512 -o strace ".$cmdline; + @cmdline = (qw(strace -tt -s 512 -o strace), @cmdline); } elsif (defined $ENV{"TRACEME"} && $ENV{"TRACEME"} eq 'truss') { - $cmdline = "truss -a -l -w all -v all -o strace ".$cmdline; + @cmdline = (qw(truss -a -l -w all -v all -o strace), @cmdline); } elsif (defined $ENV{"TRACEME"} && $ENV{"TRACEME"} eq 'gdb') { - $cmdline = "gdb --batch --ex 'run' --ex 'bt full' --args ".$cmdline." > gdb.out"; + @cmdline = ('gdb', '--batch', '--ex', 'run', '--ex', 'bt full', '--args', @cmdline); } elsif (defined $ENV{"TRACEME"} && $ENV{"TRACEME"} eq 'valgrind') { - $cmdline = "valgrind --tool=memcheck --show-reachable=yes --leak-check=yes --log-file=valgrind ".$cmdline; + @cmdline = (qw(valgrind --tool=memcheck --show-reachable=yes --leak-check=yes --log-file=valgrind), @cmdline); } - # diag("\nstarting lighttpd at :".$self->{PORT}.", cmdline: ".$cmdline ); + # diag("\nstarting lighttpd at :".$self->{PORT}.", cmdline: ".@cmdline ); my $child = fork(); if (not defined $child) { diag("\nFork failed"); return -1; } if ($child == 0) { - exec $cmdline or die($?); + exec @cmdline or die($?); } if (0 != $self->wait_for_port_with_proc($self->{PORT}, $child)) { @@ -383,7 +388,7 @@ sub spawnfcgi { bind(SOCK, sockaddr_in($port, $iaddr)) || die "bind: $!"; listen(SOCK, 1024) || die "listen: $!"; dup2(fileno(SOCK), 0) || die "dup2: $!"; - exec $binary or die($?); + exec { $binary } ($binary) or die($?); } else { if (0 != $self->wait_for_port_with_proc($port, $child)) { diag(sprintf("\nThe process %i is not up (port %i, %s)", $child, $port, $binary)); -- cgit v1.2.1