diff --git a/auth_delay.t b/auth_delay.t
index edc1d32..90034eb 100644
--- a/auth_delay.t
+++ b/auth_delay.t
@@ -55,7 +55,7 @@
 $t->write_file('index.html', '');
 $t->write_file('htpasswd', 'user:' . '{PLAIN}good' . "\n");
 
-$t->try_run('no auth_delay')->plan(4);
+$t->run()->plan(4);
 
 ###############################################################################
 
diff --git a/binary_upgrade.t b/binary_upgrade.t
index a3c57d5..d4e7c1d 100644
--- a/binary_upgrade.t
+++ b/binary_upgrade.t
@@ -89,11 +89,6 @@
 	select undef, undef, undef, 0.2
 }
 
-TODO: {
-$TODO = 'not yet' unless $t->has_version('1.19.1');
-
 ok(-e "$d/unix.sock", 'unix socket exists on new master termination');
 
-}
-
 ###############################################################################
diff --git a/body.t b/body.t
index 0e3561d..dc487cc 100644
--- a/body.t
+++ b/body.t
@@ -170,9 +170,6 @@
 
 # discarded request body in redirect via error_page
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.7');
-
 unlike(
 	http(
 		'POST /redirect HTTP/1.1' . CRLF
@@ -184,8 +181,6 @@
 	qr/400 Bad Request/ms, 'redirect - discard request body'
 );
 
-}
-
 ###############################################################################
 
 sub read_body_file {
diff --git a/body_chunked.t b/body_chunked.t
index 549d4cc..31702e3 100644
--- a/body_chunked.t
+++ b/body_chunked.t
@@ -136,9 +136,6 @@
 
 # invalid chunks
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.4');
-
 like(
 	http(
 		'GET / HTTP/1.1' . CRLF
@@ -165,8 +162,6 @@
 	qr/400 Bad/, 'runaway chunk discard'
 );
 
-}
-
 # proxy_next_upstream
 
 like(http_get_body('/next', '0123456789'),
@@ -174,17 +169,12 @@
 
 # invalid Transfer-Encoding
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.9');
-
 like(http_transfer_encoding('identity'), qr/501 Not Implemented/,
 	'transfer encoding identity');
 
 like(http_transfer_encoding("chunked\nTransfer-Encoding: chunked"),
 	qr/400 Bad/, 'transfer encoding repeat');
 
-}
-
 like(http_transfer_encoding('chunked, identity'), qr/501 Not Implemented/,
 	'transfer encoding list');
 
diff --git a/dav.t b/dav.t
index 7da52aa..751ea2a 100644
--- a/dav.t
+++ b/dav.t
@@ -137,15 +137,10 @@
 SKIP: {
 skip 'perl too old', 1 if !$^V or $^V lt v5.12.0;
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.7');
-
 like($r, qr!(?(?{ $r =~ /Location/ })Location: /test/)!, 'mkcol location');
 
 }
 
-}
-
 $r = http(<<EOF);
 COPY /test/ HTTP/1.1
 Host: localhost
@@ -225,7 +220,6 @@
 
 like($r, qr/415 Unsupported/, 'copy body');
 
-
 $r = http(<<EOF . '0123456789');
 DELETE /file HTTP/1.1
 Host: localhost
@@ -236,9 +230,6 @@
 
 like($r, qr/415 Unsupported/, 'delete body');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.7');
-
 $r = http(<<EOF);
 MKCOL /test/ HTTP/1.1
 Host: localhost
@@ -282,6 +273,4 @@
 
 like($r, qr/415 Unsupported/, 'delete body chunked');
 
-}
-
 ###############################################################################
diff --git a/debug_connection_unix.t b/debug_connection_unix.t
index 72fce14..71082e0 100644
--- a/debug_connection_unix.t
+++ b/debug_connection_unix.t
@@ -52,7 +52,7 @@
 
 EOF
 
-$t->try_run('no unix support')->plan(5);
+$t->run()->plan(5);
 
 ###############################################################################
 
diff --git a/fastcgi_extra_data.t b/fastcgi_extra_data.t
index 35524f7..2f35380 100644
--- a/fastcgi_extra_data.t
+++ b/fastcgi_extra_data.t
@@ -81,32 +81,22 @@
 
 ###############################################################################
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 like(http_get('/'), qr/SEE-THIS(?!-BUT-NOT-THIS)/, 'response with extra data');
 like(http_get('/short'), qr/SEE-THIS(?!.*:after)/s, 'too short response');
 like(http_get('/empty'), qr/200 OK(?!.*:after)/s, 'empty too short response');
 
-}
-
 like(http_head('/'), qr/200 OK(?!.*SEE-THIS)/s, 'no data in HEAD');
 like(http_head('/short'), qr/200 OK(?!.*SEE-THIS)/s, 'too short to HEAD');
 like(http_head('/empty'), qr/200 OK/, 'empty response to HEAD');
 
 # unbuffered responses
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 like(http_get('/unbuf/'), qr/SEE-THIS(?!-BUT-NOT-THIS)/,
 	'unbuffered with extra data');
 like(http_get('/unbuf/short'), qr/SEE-THIS(?!.*:after)/s,
 	'unbuffered too short response');
 like(http_get('/unbuf/empty'), qr/200 OK(?!.*:after)/s,
-	'unbuffered empty too short responsde');
-
-}
+	'unbuffered empty too short response');
 
 like(http_head('/unbuf/'), qr/200 OK(?!.*SEE-THIS)/s,
 	'unbuffered no data in HEAD');
@@ -124,31 +114,17 @@
 
 like(http_get('/head/empty'), qr/200 OK/, 'head no body cached');
 like(http_get('/head/matching'), qr/SEE-THIS/, 'head matching cached');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 like(http_get('/head/extra'), qr/SEE-THIS(?!-BUT-NOT-THIS)/s,
 	'head extra cached');
 like(http_get('/head/short'), qr/SEE-THIS(?!.*:after)/s,
 	'head too short cached');
 
-}
-
 # "zero size buf" alerts (ticket #2018)
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.2');
-
 like(http_get('/zero'), qr/200 OK(?!.*NOT-THIS)/s, 'zero size');
 like(http_get('/unbuf/zero'), qr/200 OK(?!.*NOT-THIS)/s,
 	'unbuffered zero size');
 
-}
-
-$t->todo_alerts() unless $t->has_version('1.19.2')
-	or !$t->has_version('1.19.1');
-
 ###############################################################################
 
 sub fastcgi_daemon {
diff --git a/geo_unix.t b/geo_unix.t
index 0e5a2ed..fcdace4 100644
--- a/geo_unix.t
+++ b/geo_unix.t
@@ -102,11 +102,6 @@
 
 $t->stop();
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 is(-e $t->testdir() . '/unix.sock', undef, 'unix socket removed');
 
-}
-
 ###############################################################################
diff --git a/grpc.t b/grpc.t
index 813a7b7..68c6091 100644
--- a/grpc.t
+++ b/grpc.t
@@ -47,8 +47,6 @@
         listen       127.0.0.1:8080 http2;
         server_name  localhost;
 
-        http2_max_field_size 128k;
-        http2_max_header_size 128k;
         http2_body_preread_size 128k;
         large_client_header_buffers 4 32k;
 
@@ -92,11 +90,7 @@
 
 EOF
 
-# suppress deprecation warning
-
-open OLDERR, ">&", \*STDERR; close STDERR;
 $t->run();
-open STDERR, ">&", \*OLDERR;
 
 ###############################################################################
 
@@ -284,9 +278,6 @@
 
 # malformed response body length not equal to content-length
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 $f->{http_start}('/SayHello');
 $f->{data}('Hello');
 $frames = $f->{http_err2}(cl => 42);
@@ -299,8 +290,6 @@
 ($frame) = grep { $_->{type} eq "RST_STREAM" } @$frames;
 ok($frame, 'response body more than content-length');
 
-}
-
 # continuation from backend, expect parts assembled
 
 $f->{http_start}('/SayHello');
@@ -481,10 +470,6 @@
 
 # DATA padding with Content-Length
 
-TODO: {
-local $TODO = 'not yet'
-	if $t->has_version('1.19.1') and !$t->has_version('1.19.9');
-
 $f->{http_start}('/SayPadding');
 $f->{data}('Hello');
 $frames = $f->{http_end}(body_padding => 42, cl => length('Hello world'));
@@ -493,8 +478,6 @@
 is($frame->{length}, 11, 'DATA padding cl - length');
 is($frame->{flags}, 0, 'DATA padding cl - flags');
 
-}
-
 # :authority inheritance
 
 $frames = $f->{http_start}('/SayHello?if=1');
@@ -548,9 +531,6 @@
 $f->{data}('Hello');
 $f->{http_end}();
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.0');
-
 # receiving END_STREAM followed by WINDOW_UPDATE on incomplete request body
 
 $f->{http_start}('/Discard_WU');
@@ -565,8 +545,6 @@
 (undef, $frame) = grep { $_->{type} eq "HEADERS" } @$frames;
 is($frame->{flags}, 5, 'discard NO_ERROR - trailers');
 
-}
-
 # receiving END_STREAM followed by several RST_STREAM NO_ERROR
 
 $f->{http_start}('/Discard_NE3');
@@ -595,14 +573,8 @@
 
 $frames = $f->{http_start}('/KeepAlive', reuse => 1);
 ($frame) = grep { $_->{type} eq "HEADERS" } @$frames;
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.5');
-
 ok($frame, 'keepalive 3 - connection reused');
 
-}
-
 undef $f;
 $f = grpc();
 
diff --git a/grpc_pass.t b/grpc_pass.t
index 35027de..17130f8 100644
--- a/grpc_pass.t
+++ b/grpc_pass.t
@@ -97,7 +97,7 @@
 }
 
 $t->run_daemon(\&dns_daemon, port(8982), $t);
-$t->try_run('no grpc_pass variables')->plan(5);
+$t->run()->plan(5);
 
 $t->waitforfile($t->testdir . '/' . port(8982));
 
diff --git a/h2.t b/h2.t
index 9e9b8bc..8c1cb00 100644
--- a/h2.t
+++ b/h2.t
@@ -229,9 +229,6 @@
 #   An endpoint MUST treat a GOAWAY frame with a stream identifier other
 #   than 0x0 as a connection error (Section 5.4.1) of type PROTOCOL_ERROR.
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.3');
-
 $s = Test::Nginx::HTTP2->new();
 $s->h2_goaway(1, 0, 5, 'foobar');
 $frames = $s->read(all => [{ type => "GOAWAY" }], wait => 0.5);
@@ -240,8 +237,6 @@
 ok($frame, 'GOAWAY invalid stream - GOAWAY frame');
 is($frame->{code}, 1, 'GOAWAY invalid stream - GOAWAY PROTOCOL_ERROR');
 
-}
-
 # client-initiated PUSH_PROMISE, just to ensure nothing went wrong
 # N.B. other implementation returns zero code, which is not anyhow regulated
 
@@ -592,15 +587,10 @@
 $sid = $s->new_stream({ path => '/t2.html', split => [20], split_delay => 2.1 });
 $frames = $s->read(all => [{ type => 'RST_STREAM' }]);
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.9');
-
 ($frame) = grep { $_->{type} eq "RST_STREAM" } @$frames;
 ok($frame, 'client header timeout 2');
 is($frame->{code}, 1, 'client header timeout 2 - protocol error');
 
-}
-
 $s->h2_ping('SEE-THIS');
 $frames = $s->read(all => [{ type => 'PING' }]);
 
diff --git a/h2_headers.t b/h2_headers.t
index 76062a1..3f5f79f 100644
--- a/h2_headers.t
+++ b/h2_headers.t
@@ -42,8 +42,6 @@
         listen       127.0.0.1:8082 http2 sndbuf=128;
         server_name  localhost;
 
-        http2_max_field_size 128k;
-        http2_max_header_size 128k;
         large_client_header_buffers 2 64k;
 
         location / {
@@ -94,7 +92,6 @@
         listen       127.0.0.1:8084 http2;
         server_name  localhost;
 
-        http2_max_field_size 512;
         large_client_header_buffers 4 512;
     }
 
@@ -102,7 +99,6 @@
         listen       127.0.0.1:8085 http2;
         server_name  localhost;
 
-        http2_max_header_size 512;
         large_client_header_buffers 1 512;
     }
 
@@ -126,14 +122,7 @@
 EOF
 
 $t->run_daemon(\&http_daemon);
-
-# suppress deprecation warning
-
-open OLDERR, ">&", \*STDERR; close STDERR;
-$t->run();
-open STDERR, ">&", \*OLDERR;
-
-$t->waitforsocket('127.0.0.1:' . port(8083));
+$t->run()->waitforsocket('127.0.0.1:' . port(8083));
 
 # file size is slightly beyond initial window size: 2**16 + 80 bytes
 
diff --git a/h2_max_requests.t b/h2_max_requests.t
index dd49893..8dae1ad 100644
--- a/h2_max_requests.t
+++ b/h2_max_requests.t
@@ -3,7 +3,7 @@
 # (C) Sergey Kandaurov
 # (C) Nginx, Inc.
 
-# Tests for HTTP/2 protocol, http2_max_requests directive.
+# Tests for HTTP/2 protocol, keepalive directives.
 
 ###############################################################################
 
@@ -42,7 +42,6 @@
         listen       127.0.0.1:8080 http2 sndbuf=1m;
         server_name  localhost;
 
-        http2_max_requests 2;
         keepalive_requests 2;
 
         location / { }
@@ -74,11 +73,7 @@
 $t->write_file('index.html', 'SEE-THAT' x 50000);
 $t->write_file('t.html', 'SEE-THAT');
 
-# suppress deprecation warning
-
-open OLDERR, ">&", \*STDERR; close STDERR;
-$t->try_run('no keepalive_time')->plan(19);
-open STDERR, ">&", \*OLDERR;
+$t->run()->plan(19);
 
 ###############################################################################
 
@@ -116,42 +111,26 @@
 ($frame) = grep { $_->{type} eq "HEADERS" } @$frames;
 is($frame->{headers}->{':status'}, 200, 'max requests limited');
 
-TODO: {
-local $TODO = 'not yet' if ($^O eq 'linux' or $^O eq 'freebsd')
-	and !$t->has_version('1.19.1');
-
 my @data = grep { $_->{type} eq "DATA" } @$frames;
 my $sum = eval join '+', map { $_->{length} } @data;
 is($sum, 400000, 'max requests limited - all data received');
 
-}
-
 ($frame) = grep { $_->{type} eq "GOAWAY" } @$frames;
 ok($frame, 'max requests limited - GOAWAY');
 is($frame->{last_sid}, $sid, 'max requests limited - GOAWAY last stream');
 
 # keepalive_timeout 0
 
-SKIP: {
-skip 'not yet', 2 unless $t->has_version('1.19.7');
-
 $s = Test::Nginx::HTTP2->new(port(8081));
 $sid = $s->new_stream({ path => '/t.html' });
 $frames = $s->read(all => [{ sid => $sid, fin => 1 }, { type => 'GOAWAY' }]);
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.8');
-
 ($frame) = grep { $_->{type} eq "HEADERS" } @$frames;
 is($frame->{headers}->{':status'}, 200, 'keepalive_timeout 0');
 
-}
-
 ($frame) = grep { $_->{type} eq "GOAWAY" } @$frames;
 ok($frame, 'keepalive_timeout 0 - GOAWAY');
 
-}
-
 # keepalive_time
 
 $s = Test::Nginx::HTTP2->new(port(8082));
@@ -204,18 +183,12 @@
 ($frame) = grep { $_->{type} eq "HEADERS" } @$frames;
 is($frame->{headers}->{':status'}, 200, 'graceful shutdown in idle');
 
-TODO: {
-local $TODO = 'not yet' if ($^O eq 'linux' or $^O eq 'freebsd')
-	and !$t->has_version('1.19.1');
-
-my @data = grep { $_->{type} eq "DATA" } @$frames;
-my $sum = eval join '+', map { $_->{length} } @data;
+@data = grep { $_->{type} eq "DATA" } @$frames;
+$sum = eval join '+', map { $_->{length} } @data;
 is($sum, 400000, 'graceful shutdown in idle - all data received');
 
 ($frame) = grep { $_->{type} eq "GOAWAY" } @$frames;
 ok($frame, 'graceful shutdown in idle - GOAWAY');
 is($frame->{last_sid}, $sid, 'graceful shutdown in idle - GOAWAY last stream');
 
-}
-
 ###############################################################################
diff --git a/h2_priority.t b/h2_priority.t
index d17c7f5..73b4f37 100644
--- a/h2_priority.t
+++ b/h2_priority.t
@@ -208,9 +208,6 @@
 #   stream error of type PROTOCOL_ERROR.
 # Instead, we respond with a connection error of type PROTOCOL_ERROR.
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.4');
-
 $s = Test::Nginx::HTTP2->new();
 $sid = $s->new_stream();
 $s->read(all => [{ sid => $sid, fin => 1 }]);
@@ -222,8 +219,6 @@
 is($frame->{last_sid}, $sid, 'dependency - PRIORITY self - GOAWAY');
 is($frame->{code}, 1, 'dependency - PRIORITY self - PROTOCOL_ERROR');
 
-}
-
 # HEADERS PRIORITY flag, reprioritize prior PRIORITY frame records
 
 $s = Test::Nginx::HTTP2->new();
@@ -278,19 +273,14 @@
 
 # HEADERS - self dependency
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.4');
-
 $s = Test::Nginx::HTTP2->new();
 $sid = $s->new_stream({ dep => 1 });
 $frames = $s->read(all => [{ type => 'GOAWAY' }]);
 
-my ($frame) = grep { $_->{type} eq "GOAWAY" } @$frames;
+($frame) = grep { $_->{type} eq "GOAWAY" } @$frames;
 is($frame->{last_sid}, 0, 'dependency - HEADERS self - GOAWAY');
 is($frame->{code}, 1, 'dependency - HEADERS self - PROTOCOL_ERROR');
 
-}
-
 # PRIORITY frame, weighted dependencies
 
 $s = Test::Nginx::HTTP2->new();
@@ -402,7 +392,7 @@
 	{ sid => $sid3, fin => 1 },
 ]);
 
-my ($frame) = grep { $_->{type} eq "DATA" && $_->{sid} == $sid } @$frames;
+($frame) = grep { $_->{type} eq "DATA" && $_->{sid} == $sid } @$frames;
 is($frame->{length}, 81, 'removed dependency - first stream');
 
 ($frame) = grep { $_->{type} eq "DATA" && $_->{sid} == $sid3 } @$frames;
diff --git a/h2_proxy_request_buffering_redirect.t b/h2_proxy_request_buffering_redirect.t
index 3617a44..7805880 100644
--- a/h2_proxy_request_buffering_redirect.t
+++ b/h2_proxy_request_buffering_redirect.t
@@ -72,15 +72,6 @@
 
 # unbuffered request body
 
-SKIP: {
-skip 'leaves coredump', 1 unless $t->has_version('1.17.4')
-	or $ENV{TEST_NGINX_UNSAFE};
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.4');
-
-$t->todo_alerts() unless $t->has_version('1.17.4');
-
 my $s = Test::Nginx::HTTP2->new();
 my $sid = $s->new_stream({ body_more => 1 });
 
@@ -92,8 +83,4 @@
 my ($frame) = grep { $_->{type} eq "HEADERS" } @$frames;
 is($frame->{headers}->{':status'}, 200, 'discard body rest on redirect');
 
-}
-
-}
-
 ###############################################################################
diff --git a/h2_request_body.t b/h2_request_body.t
index c992dd4..5df0a6f 100644
--- a/h2_request_body.t
+++ b/h2_request_body.t
@@ -168,9 +168,6 @@
 # request body discarded
 # RST_STREAM with zero code received
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.4');
-
 $s = Test::Nginx::HTTP2->new();
 $sid = $s->new_stream({ body_more => 1 });
 $frames = $s->read(all => [{ type => 'RST_STREAM' }], wait => 0.5);
@@ -178,8 +175,6 @@
 ($frame) = grep { $_->{type} eq "RST_STREAM" } @$frames;
 is($frame->{code}, 0, 'request body discarded - zero RST_STREAM');
 
-}
-
 # malformed request body length not equal to content-length
 
 $s = Test::Nginx::HTTP2->new();
@@ -465,10 +460,6 @@
 
 # request body after 400 errors redirected to a proxied location
 
-TODO: {
-todo_skip 'leaves coredump', 1 unless $ENV{TEST_NGINX_UNSAFE}
-	or $t->has_version('1.19.3');
-
 $s = Test::Nginx::HTTP2->new();
 $sid = $s->new_stream({ body => "", headers => [
 	{ name => ':method', value => "" }]});
@@ -477,8 +468,6 @@
 ($frame) = grep { $_->{type} eq 'DATA' } @$frames;
 is($frame->{data}, 'SEE-THIS', 'request body after 400 redirect');
 
-}
-
 ###############################################################################
 
 sub read_body_file {
diff --git a/h2_request_body_js.t b/h2_request_body_js.t
index bba5578..15efa48 100644
--- a/h2_request_body_js.t
+++ b/h2_request_body_js.t
@@ -71,9 +71,6 @@
 
 ###############################################################################
 
-local $TODO = 'not yet' unless $t->has_version('1.19.3');
-$t->todo_alerts() unless $t->has_version('1.19.3');
-
 my $s = Test::Nginx::HTTP2->new();
 my $sid = $s->new_stream({ body => 'TEST' });
 my $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
@@ -85,6 +82,4 @@
 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
 is($frame->{data}, 'SEE-THIS', 'response body');
 
-$t->stop();
-
 ###############################################################################
diff --git a/http_host.t b/http_host.t
index 94f51ea..8b9f6ad 100644
--- a/http_host.t
+++ b/http_host.t
@@ -169,13 +169,8 @@
 is(http_host_header('123.40.56.78:9000:80'), '123.40.56.78',
 	'double port hack');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.9');
-
 like(http_host_header("localhost\nHost: again", 1), qr/ 400 /, 'host repeat');
 
-}
-
 ###############################################################################
 
 sub http_host_header {
diff --git a/http_include.t b/http_include.t
index d4ee01b..8d36a17 100644
--- a/http_include.t
+++ b/http_include.t
@@ -77,7 +77,7 @@
 $t->write_file('lmt.conf', 'deny all;');
 $t->write_file('ups.conf', "server 127.0.0.1:$p;");
 
-$t->try_run('no include in any context')->plan(5);
+$t->run()->plan(5);
 
 ###############################################################################
 
diff --git a/http_keepalive.t b/http_keepalive.t
index be6324d..4e30db5 100644
--- a/http_keepalive.t
+++ b/http_keepalive.t
@@ -85,7 +85,7 @@
 $t->write_file('safari', '');
 $t->write_file('none', '');
 $t->write_file('zero', '');
-$t->try_run('no keepalive_time')->plan(21);
+$t->run()->plan(21);
 
 ###############################################################################
 
@@ -143,14 +143,8 @@
 read_keepalive($s);
 shutdown($s, 1);
 
-TODO: {
-local $TODO = 'not yet' unless ($^O eq 'MSWin32' or $^O eq 'solaris')
-	or $t->has_version('1.19.9');
-
 ok(IO::Select->new($s)->can_read(3), 'EOF in discard body');
 
-}
-
 $t->stop();
 
 TODO: {
diff --git a/http_uri.t b/http_uri.t
index f6317ea..0345536 100644
--- a/http_uri.t
+++ b/http_uri.t
@@ -64,30 +64,18 @@
 
 like(http_get('http://localhost'), qr!x / x!, 'absolute');
 like(http_get('http://localhost/'), qr!x / x!, 'absolute slash');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.6');
-
 like(http_get('http://localhost?args'), qr!x / x.*y args y!ms,
 	'absolute args');
 like(http_get('http://localhost?args#frag'), qr!x / x.*y args y!ms,
 	'absolute args and frag');
 
-}
-
 like(http_get('http://localhost:8080'), qr!x / x!, 'port');
 like(http_get('http://localhost:8080/'), qr!x / x!, 'port slash');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.6');
-
 like(http_get('http://localhost:8080?args'), qr!x / x.*y args y!ms,
 	'port args');
 like(http_get('http://localhost:8080?args#frag'), qr!x / x.*y args y!ms,
 	'port args and frag');
 
-}
-
 like(http_get('/ /'), qr!x / / x!, 'space');
 
 ###############################################################################
diff --git a/http_variables.t b/http_variables.t
index 7ea6325..5a16a62 100644
--- a/http_variables.t
+++ b/http_variables.t
@@ -82,14 +82,8 @@
 http_get('/../bad_uri');
 http_get('/redefine');
 
-TODO: {
-todo_skip 'overflow', 1 unless $ENV{TEST_NGINX_UNSAFE}
-	or $t->has_version('1.19.0');
-
 like(http_get('/arg?l=42'), qr/42:$/, 'arg');
 
-}
-
 # $limit_rate is a special variable that has its own set_handler / get_handler
 
 like(http_get('/limit_rate?l=40k'), qr/X-Rate: 40960/, 'limit_rate handlers');
diff --git a/ignore_invalid_headers.t b/ignore_invalid_headers.t
index 44b13ad..b3d9a30 100644
--- a/ignore_invalid_headers.t
+++ b/ignore_invalid_headers.t
@@ -101,16 +101,11 @@
 
 # ignore_invalid_headers off; headers parsing post 8f55cb5c7e79
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.5');
-
 unlike(http('GET /v HTTP/1.0' . CRLF
 	. 'Host: localhost' . CRLF
 	. 'coo: foo' . CRLF
 	. '</kie>: x-bar' . CRLF . CRLF), qr/x-bar/, 'off - several');
 
-}
-
 # ignore_invalid_headers on;
 
 unlike(get($us, 8081), qr/x-bar/, 'on - underscore');
diff --git a/js_subrequests.t b/js_subrequests.t
index edf6d44..6452e93 100644
--- a/js_subrequests.t
+++ b/js_subrequests.t
@@ -508,20 +508,7 @@
 is(get_json('/sr_body'), '{"a":{"b":1}}', 'sr_body');
 is(get_json('/sr_body_special'), '{"e":"msg"}', 'sr_body_special');
 is(get_json('/sr_in_variable_handler'), '["CB-VAR"]', 'sr_in_variable_handler');
-
-$t->todo_alerts() if $t->read_file('nginx.conf') =~ /aio (on|threads)/
-	and !$t->has_version('1.17.9');
-
-TODO: {
-local $TODO = 'header already sent' if $t->read_file('nginx.conf') =~ /aio on/
-	and !$t->has_version('1.17.9');
-local $TODO = 'open socket left' if $t->read_file('nginx.conf') =~ /aio thread/
-	and !$t->has_version('1.17.9');
-
 is(get_json('/sr_file'), '["SEE-THIS"]', 'sr_file');
-
-}
-
 is(get_json('/sr_cache?c=1'), '["SEE-THIS"]', 'sr_cache');
 is(get_json('/sr_cache?c=1'), '["SEE-THIS"]', 'sr_cached');
 is(get_json('/sr_js_in_subrequest'), '["JS-SUB"]', 'sr_js_in_subrequest');
diff --git a/limit_conn_dry_run.t b/limit_conn_dry_run.t
index 2ea63dc..3a31dea 100644
--- a/limit_conn_dry_run.t
+++ b/limit_conn_dry_run.t
@@ -74,7 +74,7 @@
 EOF
 
 $t->write_file('w', '');
-$t->try_run('no limit_conn_dry_run/limit_conn_status')->plan(6);
+$t->run()->plan(6);
 
 ###############################################################################
 
diff --git a/limit_rate.t b/limit_rate.t
index b9644b4..245c5e8 100644
--- a/limit_rate.t
+++ b/limit_rate.t
@@ -82,7 +82,7 @@
 EOF
 
 $t->write_file('data', 'X' x 30000);
-$t->try_run('no limit_rate variables')->plan(7);
+$t->run()->plan(7);
 
 ###############################################################################
 
diff --git a/limit_req_dry_run.t b/limit_req_dry_run.t
index 2376d47..24c5e9b 100644
--- a/limit_req_dry_run.t
+++ b/limit_req_dry_run.t
@@ -70,7 +70,7 @@
 
 $t->write_file('delay', 'SEE-THIS');
 $t->write_file('reject', 'SEE-THIS');
-$t->try_run('no limit_req_dry_run/limit_req_status')->plan(8);
+$t->run()->plan(8);
 
 ###############################################################################
 
diff --git a/mail_proxy_protocol.t b/mail_proxy_protocol.t
index 2a7d54a..d4f4852 100644
--- a/mail_proxy_protocol.t
+++ b/mail_proxy_protocol.t
@@ -92,7 +92,7 @@
 EOF
 
 $t->run_daemon(\&Test::Nginx::SMTP::smtp_test_daemon);
-$t->try_run('no proxy_protocol')->plan(8);
+$t->run()->plan(8);
 
 $t->waitforsocket('127.0.0.1:' . port(8026));
 
diff --git a/mail_proxy_smtp_auth.t b/mail_proxy_smtp_auth.t
index 28ef0fc..4eb92b9 100644
--- a/mail_proxy_smtp_auth.t
+++ b/mail_proxy_smtp_auth.t
@@ -76,7 +76,7 @@
 EOF
 
 $t->run_daemon(\&Test::Nginx::SMTP::smtp_test_daemon);
-$t->try_run('no proxy_smtp_auth')->plan(7);
+$t->run()->plan(7);
 
 $t->waitforsocket('127.0.0.1:' . port(8026));
 
diff --git a/mail_resolver.t b/mail_resolver.t
index 6b375d0..36d7130 100644
--- a/mail_resolver.t
+++ b/mail_resolver.t
@@ -296,10 +296,6 @@
 
 # before 1.17.3, read event while in resolving resulted in duplicate resolving
 
-TODO: {
-todo_skip 'leaves coredump', 1 unless $ENV{TEST_NGINX_UNSAFE}
-	or $t->has_version('1.17.3');
-
 my %ssl = (
 	SSL => 1,
 	SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE(),
@@ -319,8 +315,6 @@
 $s->send('QUIT');
 $s->read();
 
-}
-
 ###############################################################################
 
 sub reply_handler {
diff --git a/mail_ssl_conf_command.t b/mail_ssl_conf_command.t
index f505e44..ba385ed 100644
--- a/mail_ssl_conf_command.t
+++ b/mail_ssl_conf_command.t
@@ -88,7 +88,7 @@
 		or die "Can't create certificate for $name: $!\n";
 }
 
-$t->try_run('no ssl_conf_command')->plan(3);
+$t->run()->plan(3);
 
 ###############################################################################
 
diff --git a/memcached_fake_extra.t b/memcached_fake_extra.t
index ea23f3c..1eb6060 100644
--- a/memcached_fake_extra.t
+++ b/memcached_fake_extra.t
@@ -57,8 +57,6 @@
 
 ###############################################################################
 
-$t->todo_alerts() unless $t->has_version('1.19.1');
-
 like(http_get('/'), qr/SEE-THIS/, 'memcached data after trailer');
 
 ###############################################################################
diff --git a/merge_slashes.t b/merge_slashes.t
index 4447bbc..7407cab 100644
--- a/merge_slashes.t
+++ b/merge_slashes.t
@@ -52,8 +52,6 @@
 
 ###############################################################################
 
-local $TODO = 'not yet' unless $t->has_version('1.17.5');
-
 like(http_get('/foo//../bar'), qr!x /foo/bar x!, 'merge slashes');
 like(http_get('/foo///../bar'), qr!x /foo//bar x!, 'merge slashes 2');
 
diff --git a/mp4.t b/mp4.t
index 872e633..88ca1e9 100644
--- a/mp4.t
+++ b/mp4.t
@@ -117,16 +117,8 @@
 
 # corrupted formats
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.9');
-
 like(http_get("/bad.mp4?start=0.5"), qr/500 Internal/, 'co64 chunk beyond EOF');
 
-}
-
-$t->todo_alerts() if $t->read_file('nginx.conf') =~ /sendfile on/
-	and !$t->has_version('1.17.9');
-
 ###############################################################################
 
 sub durations {
diff --git a/not_modified_finalize.t b/not_modified_finalize.t
index ae5d9ef..306acf2 100644
--- a/not_modified_finalize.t
+++ b/not_modified_finalize.t
@@ -84,14 +84,8 @@
 
 http_get('/t.html');
 
-TODO: {
-todo_skip 'leaves coredump', 1 unless $ENV{TEST_NGINX_UNSAFE}
-	or $t->has_version('1.17.1');
-
 like(http_match_get('/t.html'), qr//, 'request 412 cached');
 
-}
-
 ###############################################################################
 
 sub http_match_get {
diff --git a/perl.t b/perl.t
index 0522c50..b5ede66 100644
--- a/perl.t
+++ b/perl.t
@@ -196,29 +196,18 @@
 ), qr/Content-Length: (?!42).*^xx\x0d.*^xxx\x0d/ms,
 	'perl header_out content-length multipart');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.2');
-
 like(http(
 	'GET /range HTTP/1.0' . CRLF
 	. 'Host: localhost' . CRLF
 	. 'Range: bytes=100000-' . CRLF . CRLF
 ), qr|^\QHTTP/1.1 416\E.*(?!xxx)|ms, 'perl range not satisfiable');
 
-}
-
-TODO: {
-todo_skip 'leaves coredump', 1 unless $t->has_version('1.17.1')
-	or $ENV{TEST_NGINX_UNSAFE};
-
 like(http(
 	'GET / HTTP/1.0' . CRLF
 	. 'Host: localhost' . CRLF
 	. 'If-Match: tt' . CRLF . CRLF
 ), qr|200 OK|ms, 'perl precondition failed');
 
-}
-
 # various request body tests
 
 like(http_get('/body'), qr/400 Bad Request/, 'perl no body');
@@ -287,9 +276,6 @@
 	. '0' . CRLF . CRLF
 ), qr/host: localhost/, 'perl body discard');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.2');
-
 like(http(
 	'GET /discard HTTP/1.1' . CRLF
 	. 'Host: localhost' . CRLF
@@ -310,6 +296,4 @@
 	. '0' . CRLF . CRLF
 ), qr/400 Bad Request/, 'perl body bad chunk');
 
-}
-
 ###############################################################################
diff --git a/proxy_cache_min_free.t b/proxy_cache_min_free.t
index 8fdc739..6daeebf 100644
--- a/proxy_cache_min_free.t
+++ b/proxy_cache_min_free.t
@@ -64,7 +64,7 @@
 EOF
 
 $t->write_file('t.html', 'SEE-THIS');
-$t->try_run('no proxy_cache_path min_free')->plan(2);
+$t->run()->plan(2);
 
 ###############################################################################
 
diff --git a/proxy_cache_use_stale.t b/proxy_cache_use_stale.t
index 8fbd838..9326636 100644
--- a/proxy_cache_use_stale.t
+++ b/proxy_cache_use_stale.t
@@ -179,17 +179,11 @@
 
 sleep 2;
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.3');
-
 # stale 5xx response is ignored since 1.19.3,
 # "proxy_cache_use_stale updating;" allows to get it still
 
 like(http_get('/t.html?e=1'), qr/ 500 /, 's-i-e - stale 5xx ignore');
 like(http_get('/tt.html?e=1'), qr/ 500 /, 's-i-e - stale 5xx ignore 2');
-
-}
-
 like(http_get('/updating/tt.html'), qr/STALE/, 's-i-e - stale 5xx updating');
 like(http_get('/t.html'), qr/REVALIDATED/, 's-i-e - revalidated');
 
@@ -201,14 +195,8 @@
 	's-w-r - unconditional revalidate');
 like(http_get('/t4.html'), qr/HIT/, 's-w-r - unconditional revalidated');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.3');
-
 like(http_get('/t5.html?e=1'), qr/ 500 /,
 	's-w-r - foreground revalidate error');
-
-}
-
 like(http_get('/t5.html'), qr/REVALIDATED/, 's-w-r - foreground revalidated');
 
 # proxy_pass to regular expression with named and positional captures
diff --git a/proxy_cache_vary.t b/proxy_cache_vary.t
index 30ed4b0..48f29b7 100644
--- a/proxy_cache_vary.t
+++ b/proxy_cache_vary.t
@@ -262,14 +262,8 @@
 
 get1('/cold?vary=z', 'z:1');
 like(get1('/cold?vary=x,y', 'x:1'), qr/MISS/, 'change first');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.3');
-
 like(get1('/cold?vary=x,y', 'x:1'), qr/HIT/, 'change first cached');
 
-}
-
 like(get1('/cold?vary=x,y&xtra=1', 'x:2'), qr/MISS/, 'change second');
 like(get1('/cold?vary=x,y&xtra=1', 'x:2'), qr/HIT/, 'change second cached');
 
@@ -282,23 +276,12 @@
 # triggering "cache file .. has too long header" critical errors
 
 like(get1('/cold?vary=x,y', 'x:1'), qr/HIT/, 'cold first');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.3');
-
 like(get1('/cold?vary=x,y&xtra=1', 'x:2'), qr/HIT/, 'cold second');
 
-}
-
 $t->stop();
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.3');
-
 like(`grep -F '[crit]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no crit');
 
-}
-
 ###############################################################################
 
 sub get {
diff --git a/proxy_chunked_extra.t b/proxy_chunked_extra.t
index af5f873..5e8de63 100644
--- a/proxy_chunked_extra.t
+++ b/proxy_chunked_extra.t
@@ -59,13 +59,8 @@
 
 ###############################################################################
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 like(http_get('/'), qr/200 OK(?!.*zzz)/s, 'chunked with extra data');
 
-}
-
 ###############################################################################
 
 sub http_chunked_daemon {
diff --git a/proxy_cookie_flags.t b/proxy_cookie_flags.t
index 5f7bd69..1bf18c9 100644
--- a/proxy_cookie_flags.t
+++ b/proxy_cookie_flags.t
@@ -77,7 +77,7 @@
 
 EOF
 
-$t->try_run('no proxy_cookie_flags')->plan(14);
+$t->run()->plan(14);
 
 ###############################################################################
 
diff --git a/proxy_extra_data.t b/proxy_extra_data.t
index 03e8aa4..4345f13 100644
--- a/proxy_extra_data.t
+++ b/proxy_extra_data.t
@@ -74,13 +74,7 @@
 
 ###############################################################################
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 like(http_get('/'), qr/SEE-THIS(?!-BUT-NOT-THIS)/, 'response with extra data');
-
-}
-
 like(http_get('/short'), qr/SEE-THIS(?!.*:after)/s, 'too short response');
 like(http_get('/empty'), qr/200 OK(?!.*:after)/s, 'empty too short response');
 
@@ -90,14 +84,8 @@
 
 # unbuffered responses
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 like(http_get('/unbuf/'), qr/SEE-THIS(?!-BUT-NOT-THIS)/,
 	'unbuffered with extra data');
-
-}
-
 like(http_get('/unbuf/short'), qr/SEE-THIS(?!.*:after)/s,
 	'unbuffered too short response');
 like(http_get('/unbuf/empty'), qr/200 OK(?!.*:after)/s,
@@ -119,38 +107,17 @@
 
 like(http_get('/head/empty'), qr/SEE-THIS/, 'head no body cached');
 like(http_get('/head/matching'), qr/SEE-THIS/, 'head matching cached');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 like(http_get('/head/extra'), qr/SEE-THIS(?!-BUT-NOT-THIS)/s,
 	'head extra cached');
-
-}
-
 like(http_get('/head/short'), qr/SEE-THIS(?!.*:after)/s,
 	'head too short cached');
 
-
 # "zero size buf" alerts (ticket #2117)
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 like(http_get('/zero'), qr/200 OK(?!.*NOT-THIS)/s, 'zero size');
-
-}
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.7');
-
 like(http_get('/unbuf/zero'), qr/200 OK(?!.*NOT-THIS)/s,
 	'unbuffered zero size');
 
-}
-
-$t->todo_alerts() if $t->has_version('1.19.1') and !$t->has_version('1.19.7');
-
 ###############################################################################
 
 sub http_daemon {
diff --git a/proxy_force_ranges.t b/proxy_force_ranges.t
index 2cc910d..3453f65 100644
--- a/proxy_force_ranges.t
+++ b/proxy_force_ranges.t
@@ -109,14 +109,9 @@
 
 # range sent using chunked transfer encoding
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.0');
-
 like(http_get_range('/proxy/t.html', 'Range: bytes=-2'),
 	qr/2${CRLF}IS${CRLF}0$CRLF$CRLF$/, 'no dublicate final chunk');
 
-}
-
 ###############################################################################
 
 sub http_get_range {
diff --git a/proxy_next_upstream.t b/proxy_next_upstream.t
index a11f007..b789cd7 100644
--- a/proxy_next_upstream.t
+++ b/proxy_next_upstream.t
@@ -146,11 +146,6 @@
 # make sure backend marked as down doesn't count towards "no live upstreams"
 # after all backends are tried with http_404
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.6');
-
 like(http_get('/down/'), qr/Not Found/, 'all tried with down');
 
-}
-
 ###############################################################################
diff --git a/proxy_protocol2_server.t b/proxy_protocol2_server.t
index 7d4f36e..23ddc7e 100644
--- a/proxy_protocol2_server.t
+++ b/proxy_protocol2_server.t
@@ -70,7 +70,7 @@
 EOF
 
 $t->write_file('t1', 'SEE-THIS');
-$t->try_run('no proxy_protocol_server_addr')->plan(28);
+$t->run()->plan(28);
 
 ###############################################################################
 
diff --git a/proxy_protocol_server.t b/proxy_protocol_server.t
index da26669..44bbedc 100644
--- a/proxy_protocol_server.t
+++ b/proxy_protocol_server.t
@@ -72,7 +72,7 @@
 EOF
 
 $t->write_file('t1', 'SEE-THIS');
-$t->try_run('no proxy_protocol_server_addr')->plan(24);
+$t->run()->plan(24);
 
 ###############################################################################
 
diff --git a/proxy_ssl_conf_command.t b/proxy_ssl_conf_command.t
index 3d0ba70..b2d37fd 100644
--- a/proxy_ssl_conf_command.t
+++ b/proxy_ssl_conf_command.t
@@ -89,7 +89,7 @@
 }
 
 $t->write_file('index.html', '');
-$t->try_run('no proxy_ssl_conf_command')->plan(1);
+$t->run()->plan(1);
 
 ###############################################################################
 
diff --git a/rewrite.t b/rewrite.t
index 1bae290..31b1a6f 100644
--- a/rewrite.t
+++ b/rewrite.t
@@ -239,11 +239,6 @@
 
 # break
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.8');
-
 like(http_get('/break'), qr/200/, 'valid_location reset');
 
-}
-
 ###############################################################################
diff --git a/scgi_extra_data.t b/scgi_extra_data.t
index aee5b11..249d7e1 100644
--- a/scgi_extra_data.t
+++ b/scgi_extra_data.t
@@ -81,24 +81,16 @@
 
 ###############################################################################
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 like(http_get('/'), qr/SEE-THIS(?!-BUT-NOT-THIS)/, 'response with extra data');
 like(http_get('/short'), qr/SEE-THIS(?!.*:after)/s, 'too short response');
 like(http_get('/empty'), qr/200 OK(?!.*:after)/s, 'empty too short response');
 
-}
-
 like(http_head('/'), qr/200 OK(?!.*SEE-THIS)/s, 'no data in HEAD');
 like(http_head('/short'), qr/200 OK(?!.*SEE-THIS)/s, 'too short to HEAD');
 like(http_head('/empty'), qr/200 OK/, 'empty response to HEAD');
 
 # unbuffered responses
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 like(http_get('/unbuf/'), qr/SEE-THIS(?!-BUT-NOT-THIS)/,
 	'unbuffered with extra data');
 like(http_get('/unbuf/short'), qr/SEE-THIS(?!.*:after)/s,
@@ -106,8 +98,6 @@
 like(http_get('/unbuf/empty'), qr/200 OK(?!.*:after)/s,
 	'unbuffered empty too short response');
 
-}
-
 like(http_head('/unbuf/'), qr/200 OK(?!.*SEE-THIS)/s,
 	'unbuffered no data in HEAD');
 like(http_head('/unbuf/short'), qr/200 OK(?!.*SEE-THIS)/s,
@@ -124,36 +114,17 @@
 
 like(http_get('/head/empty'), qr/SEE-THIS/, 'head no body cached');
 like(http_get('/head/matching'), qr/SEE-THIS/, 'head matching cached');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 like(http_get('/head/extra'), qr/SEE-THIS(?!-BUT-NOT-THIS)/s,
 	'head extra cached');
 like(http_get('/head/short'), qr/SEE-THIS(?!.*:after)/s,
 	'head too short cached');
 
-}
-
 # "zero size buf" alerts (ticket #2117)
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 like(http_get('/zero'), qr/200 OK(?!.*NOT-THIS)/s, 'zero size');
-
-}
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.7');
-
 like(http_get('/unbuf/zero'), qr/200 OK(?!.*NOT-THIS)/s,
 	'unbuffered zero size');
 
-}
-
-$t->todo_alerts() if $t->has_version('1.19.1') and !$t->has_version('1.19.7');
-
 ###############################################################################
 
 sub scgi_daemon {
diff --git a/slice.t b/slice.t
index 841d285..26dba3f 100644
--- a/slice.t
+++ b/slice.t
@@ -15,7 +15,7 @@
 BEGIN { use FindBin; chdir($FindBin::Bin); }
 
 use lib 'lib';
-use Test::Nginx qw/ :DEFAULT http_end /;
+use Test::Nginx;
 
 ###############################################################################
 
@@ -134,14 +134,8 @@
 $r = get('/proxy/t', 'Range: bytes=3-4');
 like($r, qr/ 206 /, 'proxy - 206 partial reply');
 like($r, qr/^34$/m, 'proxy - correct content');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.2');
-
 unlike($r, qr/Accept-Ranges/, 'proxy - no original accept-ranges');
 
-}
-
 $r = get('/cache/t?single', "Range: bytes=0-0");
 like($r, qr/ 206 /, 'single - 206 partial reply');
 like($r, qr/^0$/m, 'single - correct content');
diff --git a/ssl.t b/ssl.t
index 1fc516f..610fb02 100644
--- a/ssl.t
+++ b/ssl.t
@@ -318,13 +318,8 @@
 
 # close_notify is sent before lingering close
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.5');
-
 is(get_ssl_shutdown(8085), 1, 'ssl shutdown on lingering close');
 
-}
-
 $t->stop();
 
 TODO: {
diff --git a/ssl_conf_command.t b/ssl_conf_command.t
index c863407..766c533 100644
--- a/ssl_conf_command.t
+++ b/ssl_conf_command.t
@@ -88,7 +88,7 @@
 		or die "Can't create certificate for $name: $!\n";
 }
 
-$t->try_run('no ssl_conf_command')->plan(3);
+$t->run()->plan(3);
 
 ###############################################################################
 
diff --git a/ssl_ocsp.t b/ssl_ocsp.t
index 629c1e3..9769bf2 100644
--- a/ssl_ocsp.t
+++ b/ssl_ocsp.t
@@ -287,7 +287,7 @@
 
 $t->run_daemon(\&http_daemon, $t, port(8081));
 $t->run_daemon(\&http_daemon, $t, port(8082));
-$t->try_run('no ssl_ocsp')->plan(14);
+$t->run()->plan(14);
 
 $t->waitforsocket("127.0.0.1:" . port(8081));
 $t->waitforsocket("127.0.0.1:" . port(8082));
@@ -300,16 +300,10 @@
 
 # demonstrate that ocsp int request is failed due to missing resolver
 
-TODO: {
-todo_skip 'leaves coredump', 1 unless $t->has_version('1.19.1')
-	or $ENV{TEST_NGINX_UNSAFE};
-
 like(get('RSA', 'end', sni => 'resolver'),
 	qr/400 Bad.*FAILED:certificate status request failed/s,
 	'ocsp many failed request');
 
-}
-
 # demonstrate that ocsp int request is actually made by failing ocsp response
 
 like(get('RSA', 'end', port => 8444),
diff --git a/ssl_reject_handshake.t b/ssl_reject_handshake.t
index 2011404..3386b35 100644
--- a/ssl_reject_handshake.t
+++ b/ssl_reject_handshake.t
@@ -109,7 +109,12 @@
 }
 
 $t->write_file('index.html', '');
-$t->try_run('no ssl_reject_handshake')->plan(9);
+
+# suppress deprecation warning
+
+open OLDERR, ">&", \*STDERR; close STDERR;
+$t->run()->plan(9);
+open STDERR, ">&", \*OLDERR;
 
 ###############################################################################
 
diff --git a/stream_limit_conn_dry_run.t b/stream_limit_conn_dry_run.t
index c86522f..ca7e528 100644
--- a/stream_limit_conn_dry_run.t
+++ b/stream_limit_conn_dry_run.t
@@ -84,7 +84,7 @@
 EOF
 
 $t->write_file('index.html', 'OK');
-$t->try_run('no limit_conn_dry_run/limit_conn_status')->plan(9);
+$t->run()->plan(9);
 
 ###############################################################################
 
diff --git a/stream_limit_rate2.t b/stream_limit_rate2.t
index 663c798..9635810 100644
--- a/stream_limit_rate2.t
+++ b/stream_limit_rate2.t
@@ -102,7 +102,7 @@
 
 $t->run_daemon(\&stream_daemon, port(8080));
 $t->run_daemon(\&stream_daemon, port(8087));
-$t->try_run('no proxy_download_rate variables')->plan(9);
+$t->run()->plan(9);
 
 $t->waitforsocket('127.0.0.1:' . port(8080));
 $t->waitforsocket('127.0.0.1:' . port(8087));
diff --git a/stream_proxy_next_upstream.t b/stream_proxy_next_upstream.t
index 12fbad5..7e6a231 100644
--- a/stream_proxy_next_upstream.t
+++ b/stream_proxy_next_upstream.t
@@ -104,14 +104,9 @@
 
 $t->stop();
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.6');
-
 is($t->read_file('test.log'), '127.0.0.1:' . port(8083) . "\n",
 	'next down log');
 
-}
-
 ###############################################################################
 
 sub stream_daemon {
diff --git a/stream_proxy_ssl_conf_command.t b/stream_proxy_ssl_conf_command.t
index ea56457..e2db3e9 100644
--- a/stream_proxy_ssl_conf_command.t
+++ b/stream_proxy_ssl_conf_command.t
@@ -83,7 +83,7 @@
 }
 
 $t->write_file('index.html', '');
-$t->try_run('no proxy_ssl_conf_command')->plan(1);
+$t->run()->plan(1);
 
 ###############################################################################
 
diff --git a/stream_set.t b/stream_set.t
index a5b9b84..582807a 100644
--- a/stream_set.t
+++ b/stream_set.t
@@ -23,7 +23,8 @@
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/stream stream_return stream_set/);
+my $t = Test::Nginx->new()
+	->has(qw/stream stream_return stream_map stream_set/);
 
 $t->write_file_expand('nginx.conf', <<'EOF');
 
@@ -37,7 +38,6 @@
 stream {
     %%TEST_GLOBALS_STREAM%%
 
-
     map 0 $map_var {
         default "original";
     }
@@ -58,7 +58,7 @@
 
 EOF
 
-$t->try_run('no stream set')->plan(2);
+$t->run()->plan(2);
 
 ###############################################################################
 
diff --git a/stream_ssl_conf_command.t b/stream_ssl_conf_command.t
index 33fa457..bf03783 100644
--- a/stream_ssl_conf_command.t
+++ b/stream_ssl_conf_command.t
@@ -88,7 +88,7 @@
 		or die "Can't create certificate for $name: $!\n";
 }
 
-$t->try_run('no ssl_conf_command')->plan(3);
+$t->run()->plan(3);
 
 ###############################################################################
 
diff --git a/stream_udp_proxy.t b/stream_udp_proxy.t
index 9ceae74..51174ed 100644
--- a/stream_udp_proxy.t
+++ b/stream_udp_proxy.t
@@ -79,9 +79,6 @@
 
 # zero-length payload
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.1');
-
 $s = dgram('127.0.0.1:' . port(8982));
 $s->write('');
 is($s->read(), 'zero', 'upstream read zero bytes');
@@ -91,8 +88,6 @@
 is($s->read(), 'zero', 'upstream read zero bytes again');
 is($s->read(), '', 'upstream sent zero bytes again');
 
-}
-
 ###############################################################################
 
 sub udp_daemon {
diff --git a/stream_upstream_hash.t b/stream_upstream_hash.t
index db231cf..12a8f00 100644
--- a/stream_upstream_hash.t
+++ b/stream_upstream_hash.t
@@ -102,14 +102,9 @@
 
 # fallback to round-robin
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.1');
-
 like(many(4, port(8084)), qr/$port2: 2, $port3: 2/, 'empty key');
 like(many(4, port(8085)), qr/$port2: 2, $port3: 2/, 'empty key - consistent');
 
-}
-
 ###############################################################################
 
 sub many {
diff --git a/upstream_hash.t b/upstream_hash.t
index 8edbe95..e513a7e 100644
--- a/upstream_hash.t
+++ b/upstream_hash.t
@@ -180,14 +180,9 @@
 
 # fallback to round-robin
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.1');
-
 like(many('/?a=', 6), qr/$p1: 2, $p2: 2, $p3: 2/, 'empty key');
 like(many('/c?a=', 6), qr/$p1: 2, $p2: 2, $p3: 2/, 'empty key - consistent');
 
-}
-
 my @res = iter('/', 10);
 
 is(@res, 10, 'all hashed peers');
diff --git a/upstream_keepalive.t b/upstream_keepalive.t
index af9b869..6227df5 100644
--- a/upstream_keepalive.t
+++ b/upstream_keepalive.t
@@ -77,7 +77,7 @@
 EOF
 
 $t->write_file('index.html', 'SEE-THIS');
-$t->try_run('no keepalive_time')->plan(11);
+$t->run()->plan(11);
 
 ###############################################################################
 
diff --git a/userid_flags.t b/userid_flags.t
index cf3661a..9214d7f 100644
--- a/userid_flags.t
+++ b/userid_flags.t
@@ -70,7 +70,7 @@
 $t->write_file('index.html', '');
 $t->write_file('lax', '');
 $t->write_file('many', '');
-$t->try_run('no userid_flags')->plan(5);
+$t->run()->plan(5);
 
 ###############################################################################
 
diff --git a/uwsgi_ssl.t b/uwsgi_ssl.t
index 514d410..1c5c035 100644
--- a/uwsgi_ssl.t
+++ b/uwsgi_ssl.t
@@ -112,9 +112,6 @@
 
 ###############################################################################
 
-TODO: {
-todo_skip 'not yet', 7 unless $t->has_version('1.19.1');
-
 like(http_get('/'), qr/SEE-THIS/, 'uwsgi request');
 like(http_head('/head'), qr/200 OK(?!.*SEE-THIS)/s, 'no data in HEAD');
 
@@ -128,8 +125,6 @@
 like(http_post('/'), qr/SEE-THIS/, 'uwsgi post');
 like(http_post_big('/'), qr/SEE-THIS/, 'uwsgi big post');
 
-}
-
 ###############################################################################
 
 sub http_get_headers {
diff --git a/worker_shutdown_timeout_h2.t b/worker_shutdown_timeout_h2.t
index 7265dd8..d217289 100644
--- a/worker_shutdown_timeout_h2.t
+++ b/worker_shutdown_timeout_h2.t
@@ -63,15 +63,8 @@
 
 $t->stop();
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.17.4');
-
 like($t->read_file('access.log'), qr/ (?!504)\d{3} /, 'shutdown timeout');
 
-}
-
-$t->todo_alerts() unless $t->has_version('1.17.4');
-
 ###############################################################################
 
 sub http_silent_daemon {
diff --git a/xslt.t b/xslt.t
index b21bc4c..b3b37d0 100644
--- a/xslt.t
+++ b/xslt.t
@@ -118,20 +118,10 @@
 	'params');
 like(http_get("/x3"), qr!200 OK.*data=test entity!ms, 'entities');
 like(http_get("/x4"), qr!200 OK.*data=other data!ms, 'several stylesheets');
-
-TODO: {
-todo_skip 'heap-buffer-overflow', 1 unless $t->has_version('1.17.2')
-	or $ENV{TEST_NGINX_UNSAFE};
-
 like(http_get("/x5"), qr!200 OK.*param1=localhost!ms, 'params variable');
 
-}
-
 # xslt and ranges
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.19.2');
-
 unlike(http_get("/x1"), qr!Accept-Ranges!, 'no Accept-Ranges');
 like(http(<<EOF), qr!200 OK.*test xslt result!ms, 'no ranges');
 GET /x1 HTTP/1.1
@@ -141,6 +131,4 @@
 
 EOF
 
-}
-
 ###############################################################################
