Skip to content

Commit 60ec29f

Browse files
committed
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.
1 parent 0ef82eb commit 60ec29f

File tree

1 file changed

+8
-28
lines changed

1 file changed

+8
-28
lines changed

lib/Test/Nginx.pm

+8-28
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@ sub new {
4848
)
4949
or die "Can't create temp directory: $!\n";
5050
$self->{_testdir} =~ s!\\!/!g if $^O eq 'MSWin32';
51-
mkdir "$self->{_testdir}/logs"
52-
or die "Can't create logs directory: $!\n";
5351

5452
Test::More::BAIL_OUT("no $NGINX binary found")
5553
unless -x $NGINX;
@@ -291,24 +289,16 @@ sub try_run($$) {
291289
my ($self, $message) = @_;
292290

293291
eval {
294-
open OLDERR, ">&", \*STDERR;
295-
open NEWERR, ">", $self->{_testdir} . '/stderr'
296-
or die "Can't open stderr: $!";
297-
close STDERR;
298-
open STDERR, ">&", \*NEWERR;
299-
close NEWERR;
300-
292+
open OLDERR, ">&", \*STDERR; close STDERR;
301293
$self->run();
302-
303-
close STDERR;
304294
open STDERR, ">&", \*OLDERR;
305295
};
306296

307297
return $self unless $@;
308298

309299
if ($ENV{TEST_NGINX_VERBOSE}) {
310-
open F, '<', $self->{_testdir} . '/stderr'
311-
or die "Can't open stderr: $!";
300+
open F, '<', $self->{_testdir} . '/error.log'
301+
or die "Can't open error.log: $!";
312302
log_core($_) while (<F>);
313303
close F;
314304
}
@@ -350,10 +340,8 @@ sub run(;$) {
350340
my @globals = $self->{_test_globals} ?
351341
() : ('-g', "pid $testdir/nginx.pid; "
352342
. "error_log $testdir/error.log debug;");
353-
my @error = $self->has_version('1.19.5') ?
354-
('-e', 'error.log') : ();
355343
exec($NGINX, '-p', "$testdir/", '-c', 'nginx.conf',
356-
@error, @globals)
344+
'-e', 'error.log', @globals)
357345
or die "Unable to exec(): $!\n";
358346
}
359347

@@ -425,10 +413,8 @@ sub dump_config() {
425413
my @globals = $self->{_test_globals} ?
426414
() : ('-g', "pid $testdir/nginx.pid; "
427415
. "error_log $testdir/error.log debug;");
428-
my @error = $self->has_version('1.19.5') ?
429-
('-e', 'error.log') : ();
430416
my $command = "$NGINX -T -p $testdir/ -c nginx.conf "
431-
. join(' ', @error, @globals);
417+
. "-e error.log " . join(' ', @globals);
432418

433419
return qx/$command 2>&1/;
434420
}
@@ -481,10 +467,8 @@ sub reload() {
481467
my @globals = $self->{_test_globals} ?
482468
() : ('-g', "pid $testdir/nginx.pid; "
483469
. "error_log $testdir/error.log debug;");
484-
my @error = $self->has_version('1.19.5') ?
485-
('-e', 'error.log') : ();
486470
system($NGINX, '-p', $testdir, '-c', "nginx.conf",
487-
'-s', 'reload', @error, @globals) == 0
471+
'-s', 'reload', '-e', 'error.log', @globals) == 0
488472
or die "system() failed: $?\n";
489473

490474
} else {
@@ -506,10 +490,8 @@ sub stop() {
506490
my @globals = $self->{_test_globals} ?
507491
() : ('-g', "pid $testdir/nginx.pid; "
508492
. "error_log $testdir/error.log debug;");
509-
my @error = $self->has_version('1.19.5') ?
510-
('-e', 'error.log') : ();
511493
system($NGINX, '-p', $testdir, '-c', "nginx.conf",
512-
'-s', 'quit', @error, @globals) == 0
494+
'-s', 'quit', '-e', 'error.log', @globals) == 0
513495
or die "system() failed: $?\n";
514496

515497
} else {
@@ -530,10 +512,8 @@ sub stop() {
530512
my @globals = $self->{_test_globals} ?
531513
() : ('-g', "pid $testdir/nginx.pid; "
532514
. "error_log $testdir/error.log debug;");
533-
my @error = $self->has_version('1.19.5') ?
534-
('-e', 'error.log') : ();
535515
system($NGINX, '-p', $testdir, '-c', "nginx.conf",
536-
'-s', 'stop', @error, @globals) == 0
516+
'-s', 'stop', '-e', 'error.log', @globals) == 0
537517
or die "system() failed: $?\n";
538518

539519
} else {

0 commit comments

Comments
 (0)