changeset 1995:d329b05e20fa

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.
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 09 Aug 2024 05:18:51 +0300
parents e9235c647f45
children 099c972fb42b
files grpc_request_buffering.t h3_ssl_session_reuse.t lib/Test/Nginx.pm memcached_fake.t post_action.t proxy_cache_vary.t proxy_keepalive.t ssl.t ssl_ocsp.t ssl_session_reuse.t ssl_stapling.t stream_resolver.t
diffstat 12 files changed, 23 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- 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');
 
 ###############################################################################
 
--- 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');
 
 ###############################################################################
 
--- 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) = @_;
 
--- 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');
 
 ###############################################################################
 
--- 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');
 
 ###############################################################################
--- 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');
 
 ###############################################################################
 
--- 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');
 
 ###############################################################################
 
--- 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');
 
 ###############################################################################
 
--- 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');
 
 ###############################################################################
 
--- 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');
 
 ###############################################################################
 
--- 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');
 
 }
 
--- 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');