# HG changeset patch # User Maxim Dounin # Date 1723169931 -10800 # Node ID d329b05e20faf1fa7235d95657649f224e46edd4 # Parent e9235c647f45bc6a333fccbbc0d4e8f6d0ea716a Tests: removed usage of "cat" and "grep" in tests. Both "cat" and "grep" might not be available on Windows. Instead, $t->read_file() is used, as it is already used in other places. To simplify checking logs as previously done with "grep", $t->grep_file() helper function is introduced. diff --git a/grpc_request_buffering.t b/grpc_request_buffering.t --- a/grpc_request_buffering.t +++ b/grpc_request_buffering.t @@ -105,7 +105,7 @@ is(eval(join '+', map { $_->{length} } g is(eval(join '+', map { $_->{length} } grep { $_->{type} eq "DATA" } @$frames), 465, 'preserve_output - last body bytes'); -like(`grep -F '[crit]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no crits'); +is($t->grep_file('error.log', '[crit]'), '', 'no crit'); ############################################################################### diff --git a/h3_ssl_session_reuse.t b/h3_ssl_session_reuse.t --- a/h3_ssl_session_reuse.t +++ b/h3_ssl_session_reuse.t @@ -151,7 +151,7 @@ is(test_reuse(8949), 0, 'cache off not r $t->stop(); -like(`grep -F '[crit]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no crit'); +is($t->grep_file('error.log', '[crit]'), '', 'no crit'); ############################################################################### diff --git a/lib/Test/Nginx.pm b/lib/Test/Nginx.pm --- a/lib/Test/Nginx.pm +++ b/lib/Test/Nginx.pm @@ -84,14 +84,12 @@ sub DESTROY { } if (Test::More->builder->expected_tests) { - my $errors = $self->read_file('error.log'); - $errors = join "\n", $errors =~ /.+Sanitizer.+/gm; + my $errors = $self->grep_file('error.log', 'Sanitizer'); Test::More::is($errors, '', 'no sanitizer errors'); } if (Test::More->builder->expected_tests && $ENV{TEST_NGINX_VALGRIND}) { - my $errors = $self->read_file('valgrind.log'); - $errors = join "\n", $errors =~ /^==\d+== .+/gm; + my $errors = $self->grep_file('valgrind.log', /^==\d+== .+/m); Test::More::is($errors, '', 'no valgrind errors'); } @@ -633,6 +631,16 @@ sub read_file($) { return $content; } +sub grep_file($$) { + my ($self, $name, $regex) = @_; + + my $lines = $self->read_file($name); + + $regex = qr/.*\Q$regex\E.*/m if ref($regex) eq ''; + + return join "\n", $lines =~ /$regex/g; +} + sub write_file($$) { my ($self, $name, $content) = @_; diff --git a/memcached_fake.t b/memcached_fake.t --- a/memcached_fake.t +++ b/memcached_fake.t @@ -69,7 +69,7 @@ like(http_get('/'), qr/SEE-THIS/, 'memca like(http_get('/ssi.html'), qr/SEE-THIS/, 'memcached ssi var'); -like(`grep -F '[error]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no errors'); +is($t->grep_file('error.log', '[error]'), '', 'no errors'); ############################################################################### diff --git a/post_action.t b/post_action.t --- a/post_action.t +++ b/post_action.t @@ -76,6 +76,6 @@ unlike(http_get('/remote'), qr/HIDDEN/m, $t->stop(); -like(`cat ${\($t->testdir())}/access.log`, qr/post/, 'post action in logs'); +like($t->read_file('access.log'), qr/post/, 'post action in logs'); ############################################################################### diff --git a/proxy_cache_vary.t b/proxy_cache_vary.t --- a/proxy_cache_vary.t +++ b/proxy_cache_vary.t @@ -293,7 +293,7 @@ like(get1('/cold?vary=x,y&xtra=1', 'x:2' $t->stop(); -like(`grep -F '[crit]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no crit'); +is($t->grep_file('error.log', '[crit]'), '', 'no crit'); ############################################################################### diff --git a/proxy_keepalive.t b/proxy_keepalive.t --- a/proxy_keepalive.t +++ b/proxy_keepalive.t @@ -208,7 +208,7 @@ like(http_get('/inmemory/closed2'), qr/2 # check for errors, shouldn't be any -like(`grep -F '[error]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no errors'); +is($t->grep_file('error.log', '[error]'), '', 'no errors'); ############################################################################### diff --git a/ssl.t b/ssl.t --- a/ssl.t +++ b/ssl.t @@ -275,7 +275,7 @@ is(get_ssl_shutdown(8085), 1, 'ssl shutd like($t->read_file('ssl.log'), qr/^(TLS|SSL)v(\d|\.)+$/m, 'log ssl variable on lingering close'); -like(`grep -F '[crit]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no crit'); +is($t->grep_file('error.log', '[crit]'), '', 'no crit'); ############################################################################### diff --git a/ssl_ocsp.t b/ssl_ocsp.t --- a/ssl_ocsp.t +++ b/ssl_ocsp.t @@ -409,7 +409,7 @@ like(get('root', port => 8447), qr/200 O # check for errors -like(`grep -F '[crit]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no crit'); +is($t->grep_file('error.log', '[crit]'), '', 'no crit'); ############################################################################### diff --git a/ssl_session_reuse.t b/ssl_session_reuse.t --- a/ssl_session_reuse.t +++ b/ssl_session_reuse.t @@ -195,7 +195,7 @@ is(test_reuse(8449), 0, 'cache off not r $t->stop(); -like(`grep -F '[crit]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no crit'); +is($t->grep_file('error.log', '[crit]'), '', 'no crit'); ############################################################################### diff --git a/ssl_stapling.t b/ssl_stapling.t --- a/ssl_stapling.t +++ b/ssl_stapling.t @@ -301,7 +301,7 @@ local $TODO = 'broken TLSv1.3 sigalgs in && !Net::SSLeay::constant("LIBRESSL_VERSION_NUMBER") && test_tls13(); -like(`grep -F '[crit]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no crit'); +is($t->grep_file('error.log', '[crit]'), '', 'no crit'); } diff --git a/stream_resolver.t b/stream_resolver.t --- a/stream_resolver.t +++ b/stream_resolver.t @@ -107,7 +107,7 @@ ok(stream('127.0.0.1:' . port(8086))->re SKIP: { skip "relies on error log contents", 2 unless $ENV{TEST_NGINX_UNSAFE}; -my $log = `grep -F '[error]' ${\($t->testdir())}/error.log`; +my $log = $t->grep_file('error.log', '[error]'); like($log, qr/no port in upstream "a.example.com"/, 'log - no port'); like($log, qr/nx.example.com could not be resolved/, 'log - not found');