Mercurial > hg > nginx-tests
changeset 1790:ba625d5a02e4
Tests: updated try_run() to rely on nginx "-e".
The "-e" command line option introduced in nginx 1.19.5 is now used
to print error line on startup failures with TEST_NGINX_VERBOSE set.
This change replaces a previous approach (a1874249496d) compatible
with pre-1.19.5 nginx versions that used to redirect stderr to file.
Hence, "-e" compatibility is removed.
As a side effect, this fixes temporary directory removal on win32
left on startup failures because the "stderr" file was kept open.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 19 Sep 2022 13:26:32 +0400 |
parents | c67b390cb9ef |
children | 42d9fd20eeb6 |
files | lib/Test/Nginx.pm |
diffstat | 1 files changed, 8 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/Test/Nginx.pm Thu Sep 15 16:53:57 2022 -0700 +++ b/lib/Test/Nginx.pm Mon Sep 19 13:26:32 2022 +0400 @@ -48,8 +48,6 @@ ) or die "Can't create temp directory: $!\n"; $self->{_testdir} =~ s!\\!/!g if $^O eq 'MSWin32'; - mkdir "$self->{_testdir}/logs" - or die "Can't create logs directory: $!\n"; Test::More::BAIL_OUT("no $NGINX binary found") unless -x $NGINX; @@ -291,24 +289,16 @@ my ($self, $message) = @_; eval { - open OLDERR, ">&", \*STDERR; - open NEWERR, ">", $self->{_testdir} . '/stderr' - or die "Can't open stderr: $!"; - close STDERR; - open STDERR, ">&", \*NEWERR; - close NEWERR; - + open OLDERR, ">&", \*STDERR; close STDERR; $self->run(); - - close STDERR; open STDERR, ">&", \*OLDERR; }; return $self unless $@; if ($ENV{TEST_NGINX_VERBOSE}) { - open F, '<', $self->{_testdir} . '/stderr' - or die "Can't open stderr: $!"; + open F, '<', $self->{_testdir} . '/error.log' + or die "Can't open error.log: $!"; log_core($_) while (<F>); close F; } @@ -350,10 +340,8 @@ my @globals = $self->{_test_globals} ? () : ('-g', "pid $testdir/nginx.pid; " . "error_log $testdir/error.log debug;"); - my @error = $self->has_version('1.19.5') ? - ('-e', 'error.log') : (); exec($NGINX, '-p', "$testdir/", '-c', 'nginx.conf', - @error, @globals) + '-e', 'error.log', @globals) or die "Unable to exec(): $!\n"; } @@ -425,10 +413,8 @@ my @globals = $self->{_test_globals} ? () : ('-g', "pid $testdir/nginx.pid; " . "error_log $testdir/error.log debug;"); - my @error = $self->has_version('1.19.5') ? - ('-e', 'error.log') : (); my $command = "$NGINX -T -p $testdir/ -c nginx.conf " - . join(' ', @error, @globals); + . "-e error.log " . join(' ', @globals); return qx/$command 2>&1/; } @@ -481,10 +467,8 @@ my @globals = $self->{_test_globals} ? () : ('-g', "pid $testdir/nginx.pid; " . "error_log $testdir/error.log debug;"); - my @error = $self->has_version('1.19.5') ? - ('-e', 'error.log') : (); system($NGINX, '-p', $testdir, '-c', "nginx.conf", - '-s', 'reload', @error, @globals) == 0 + '-s', 'reload', '-e', 'error.log', @globals) == 0 or die "system() failed: $?\n"; } else { @@ -506,10 +490,8 @@ my @globals = $self->{_test_globals} ? () : ('-g', "pid $testdir/nginx.pid; " . "error_log $testdir/error.log debug;"); - my @error = $self->has_version('1.19.5') ? - ('-e', 'error.log') : (); system($NGINX, '-p', $testdir, '-c', "nginx.conf", - '-s', 'quit', @error, @globals) == 0 + '-s', 'quit', '-e', 'error.log', @globals) == 0 or die "system() failed: $?\n"; } else { @@ -530,10 +512,8 @@ my @globals = $self->{_test_globals} ? () : ('-g', "pid $testdir/nginx.pid; " . "error_log $testdir/error.log debug;"); - my @error = $self->has_version('1.19.5') ? - ('-e', 'error.log') : (); system($NGINX, '-p', $testdir, '-c', "nginx.conf", - '-s', 'stop', @error, @globals) == 0 + '-s', 'stop', '-e', 'error.log', @globals) == 0 or die "system() failed: $?\n"; } else {