diff --git a/access_log_none.t b/access_log_none.t
index c968b9c..8fca628 100644
--- a/access_log_none.t
+++ b/access_log_none.t
@@ -22,7 +22,7 @@
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http/)
+my $t = Test::Nginx->new()->has(qw/http/)->plan(1)
 	->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
@@ -47,7 +47,7 @@
 
 EOF
 
-$t->try_run('no escape=none')->plan(1);
+$t->run();
 
 ###############################################################################
 
diff --git a/grpc.t b/grpc.t
index 4c2d34d..e5b49ab 100644
--- a/grpc.t
+++ b/grpc.t
@@ -24,7 +24,7 @@
 select STDOUT; $| = 1;
 
 my $t = Test::Nginx->new()->has(qw/http rewrite http_v2 grpc/)
-	->has(qw/upstream_keepalive/);
+	->has(qw/upstream_keepalive/)->plan(105);
 
 $t->write_file_expand('nginx.conf', <<'EOF');
 
@@ -91,7 +91,7 @@
 
 EOF
 
-$t->try_run('no grpc')->plan(105);
+$t->run();
 
 ###############################################################################
 
diff --git a/grpc_next_upstream.t b/grpc_next_upstream.t
index 635466f..9b34167 100644
--- a/grpc_next_upstream.t
+++ b/grpc_next_upstream.t
@@ -23,7 +23,7 @@
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http http_v2 grpc rewrite/);
+my $t = Test::Nginx->new()->has(qw/http http_v2 grpc rewrite/)->plan(9);
 
 $t->write_file_expand('nginx.conf', <<'EOF');
 
@@ -106,7 +106,7 @@
 
 EOF
 
-$t->try_run('no grpc')->plan(9);
+$t->run();
 
 ###############################################################################
 
diff --git a/grpc_request_buffering.t b/grpc_request_buffering.t
index de7baef..57a0aea 100644
--- a/grpc_request_buffering.t
+++ b/grpc_request_buffering.t
@@ -23,7 +23,7 @@
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http http_v2 grpc mirror proxy/);
+my $t = Test::Nginx->new()->has(qw/http http_v2 grpc mirror proxy/)->plan(12);
 
 $t->write_file_expand('nginx.conf', <<'EOF');
 
@@ -64,7 +64,7 @@
 
 EOF
 
-$t->try_run('no grpc')->plan(12);
+$t->run();
 
 ###############################################################################
 
diff --git a/grpc_ssl.t b/grpc_ssl.t
index 2f67df7..e56794d 100644
--- a/grpc_ssl.t
+++ b/grpc_ssl.t
@@ -29,7 +29,7 @@
 $t->{_configure_args} =~ /OpenSSL ([\d\.]+)/;
 plan(skip_all => 'OpenSSL too old') unless defined $1 and $1 ge '1.0.2';
 
-$t->write_file_expand('nginx.conf', <<'EOF');
+$t->write_file_expand('nginx.conf', <<'EOF')->plan(33);
 
 %%TEST_GLOBALS%%
 
@@ -135,7 +135,7 @@
 
 $t->write_file('password', 'client');
 
-$t->try_run('no grpc')->plan(33);
+$t->run();
 
 ###############################################################################
 
diff --git a/h2.t b/h2.t
index 34c79cd..07dbf2f 100644
--- a/h2.t
+++ b/h2.t
@@ -226,14 +226,9 @@
 	{ type => 'GOAWAY' }
 ]);
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.2');
-
 ($frame) = grep { $_->{type} eq 'SETTINGS' } @$frames;
 is($frame, undef, 'SETTINGS PROTOCOL_ERROR - no ack');
 
-}
-
 ($frame) = grep { $_->{type} eq 'GOAWAY' } @$frames;
 ok($frame, 'SETTINGS PROTOCOL_ERROR - GOAWAY');
 
@@ -839,9 +834,6 @@
 
 }
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.2');
-
 $s = Test::Nginx::HTTP2->new();
 $s->h2_window(2**30);
 $s->h2_settings(0, 0x4 => 2**30);
@@ -855,8 +847,6 @@
 $lengths = join ' ', map { $_->{length} } @$frames;
 unlike($lengths, qr/16384 0 16384/, 'SETTINGS ack after queued DATA');
 
-}
-
 # ask write handler in sending large response
 
 SKIP: {
@@ -926,9 +916,6 @@
 # Expanding available stream window should not result in emitting
 # new frames before remaining SETTINGS parameters were applied.
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.2');
-
 $s = Test::Nginx::HTTP2->new();
 $s->h2_window(2**17);
 $s->h2_settings(0, 0x4 => 42);
@@ -943,8 +930,6 @@
 $lengths = join ' ', map { $_->{length} } @data;
 is($lengths, '32768 32768 38', 'multiple SETTINGS');
 
-}
-
 # stream multiplexing + WINDOW_UPDATE
 
 $s = Test::Nginx::HTTP2->new();
diff --git a/h2_headers.t b/h2_headers.t
index a04b6c4..d407c77 100644
--- a/h2_headers.t
+++ b/h2_headers.t
@@ -655,9 +655,6 @@
 
 SKIP: {
 skip 'response header failed', 1 unless $frame;
-skip 'broken sendfile', 1 if $^O eq 'freebsd' and
-	$Config{osvers} =~ '11.0-release' and
-	$t->read_file('nginx.conf') =~ /sendfile on/;
 
 is(length join('', @{$frame->{headers}->{'x-longheader'}}), 98304,
 	'response header - headers');
@@ -958,9 +955,6 @@
 
 # missing mandatory request header ':scheme'
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.2');
-
 $s = Test::Nginx::HTTP2->new();
 $sid = $s->new_stream({ headers => [
 	{ name => ':method', value => 'GET', mode => 0 },
@@ -971,8 +965,6 @@
 ($frame) = grep { $_->{type} eq "HEADERS" } @$frames;
 is($frame->{headers}->{':status'}, 400, 'incomplete headers');
 
-}
-
 # empty request header ':authority'
 
 $s = Test::Nginx::HTTP2->new();
@@ -988,17 +980,12 @@
 
 # client sent invalid :path header
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.9');
-
 $sid = $s->new_stream({ path => 't1.html' });
 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
 
 ($frame) = grep { $_->{type} eq "HEADERS" } @$frames;
 is($frame->{headers}->{':status'}, 400, 'invalid path');
 
-}
-
 ###############################################################################
 
 sub http_daemon {
diff --git a/h2_server_push.t b/h2_server_push.t
index 4dd0b32..3cd5f1c 100644
--- a/h2_server_push.t
+++ b/h2_server_push.t
@@ -23,7 +23,7 @@
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http http_v2 proxy rewrite gzip/)
+my $t = Test::Nginx->new()->has(qw/http http_v2 proxy rewrite gzip/)->plan(42)
 	->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
@@ -134,7 +134,7 @@
 $t->write_file('t2', 'SEE-THIS');
 $t->write_file('explf', join('', map { sprintf "X%06dXXX", $_ } (1 .. 6553)));
 
-$t->try_run('no http2_push')->plan(42);
+$t->run();
 
 ###############################################################################
 
diff --git a/h2_trailers.t b/h2_trailers.t
index f886f65..2b0098d 100644
--- a/h2_trailers.t
+++ b/h2_trailers.t
@@ -23,7 +23,7 @@
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http http_v2/)
+my $t = Test::Nginx->new()->has(qw/http http_v2/)->plan(22)
 	->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
@@ -62,7 +62,7 @@
 $t->write_file('index.html', 'SEE-THIS');
 $t->write_file('empty', '');
 $t->write_file('continuation', 'SEE-THIS');
-$t->try_run('no add_trailer')->plan(22);
+$t->run();
 
 ###############################################################################
 
diff --git a/headers.t b/headers.t
index 4e9c7c8..44538c1 100644
--- a/headers.t
+++ b/headers.t
@@ -157,14 +157,9 @@
 
 # "expires modified" with proxy
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.5');
-
 like(http_get('/modified/proxy'), qr/Expires: Mon, 28 Sep 1970 06:34:08 GMT/,
 	'expires modified proxy');
 
-}
-
 # expires with variables
 
 like(http_get('/var?e=epoch'), qr/Expires:.*1970/, 'expires var epoch');
diff --git a/index2.t b/index2.t
index 3db3071..f335cc3 100644
--- a/index2.t
+++ b/index2.t
@@ -23,7 +23,7 @@
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http/)
+my $t = Test::Nginx->new()->has(qw/http/)->plan(1)
 	->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
@@ -52,7 +52,7 @@
 
 $t->write_file('localhosthtml', 'varbody');
 
-$t->try_run('unsupported token')->plan(1);
+$t->run();
 
 ###############################################################################
 
diff --git a/mirror.t b/mirror.t
index fd1c655..195734f 100644
--- a/mirror.t
+++ b/mirror.t
@@ -22,7 +22,7 @@
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http mirror/);
+my $t = Test::Nginx->new()->has(qw/http mirror/)->plan(8);
 
 $t->write_file_expand('nginx.conf', <<'EOF');
 
@@ -67,7 +67,7 @@
 $t->write_file('index.html', '');
 $t->write_file('many', '');
 $t->write_file('off', '');
-$t->try_run('no mirror')->plan(8);
+$t->run();
 
 ###############################################################################
 
diff --git a/mirror_proxy.t b/mirror_proxy.t
index 3c52c42..c347e25 100644
--- a/mirror_proxy.t
+++ b/mirror_proxy.t
@@ -24,7 +24,7 @@
 
 my $t = Test::Nginx->new()->has(qw/http proxy mirror rewrite limit_req/);
 
-$t->write_file_expand('nginx.conf', <<'EOF');
+$t->write_file_expand('nginx.conf', <<'EOF')->plan(7);
 
 %%TEST_GLOBALS%%
 
@@ -81,7 +81,7 @@
 
 EOF
 
-$t->try_run('no mirror')->plan(7);
+$t->run();
 
 ###############################################################################
 
diff --git a/proxy_bind_transparent_capability.t b/proxy_bind_transparent_capability.t
index e68e621..626944f 100644
--- a/proxy_bind_transparent_capability.t
+++ b/proxy_bind_transparent_capability.t
@@ -63,8 +63,6 @@
 
 EOF
 
-plan(skip_all => 'no capability support yet') unless $t->has_version('1.13.8');
-
 $t->run()->plan(1);
 
 ###############################################################################
diff --git a/proxy_cache_error.t b/proxy_cache_error.t
index 41f45be..2b12db7 100644
--- a/proxy_cache_error.t
+++ b/proxy_cache_error.t
@@ -83,6 +83,4 @@
 # leading to an attempt to return additional error response and
 # the "header already sent" alert; fixed in 93abb5a855d6
 
-$t->todo_alerts() unless $t->has_version('1.13.9');
-
 ###############################################################################
diff --git a/proxy_cache_use_stale.t b/proxy_cache_use_stale.t
index 5bd271a..6559e98 100644
--- a/proxy_cache_use_stale.t
+++ b/proxy_cache_use_stale.t
@@ -220,9 +220,6 @@
 # before 1.13.1, if stale response was not sent in one pass, its remaining
 # part was blocked and not sent until background update has been finished
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.1');
-
 $t->write_file('t7.html', 'SEE-THAT' x 1024);
 
 my $r = read_all(get('/t7.html?lim=1', 'max-age=1', start => 1));
@@ -234,8 +231,6 @@
 $r = read_all(http_get('/ssi.html', start => 1));
 like($r, qr/^xxx (SEE-THIS){1024} xxx$/ms, 's-w-r - not blocked in subrequest');
 
-}
-
 # "aio_write" is used to produce "open socket ... left in connection" alerts.
 
 $t->todo_alerts() if $t->read_file('nginx.conf') =~ /aio_write on/
@@ -255,15 +250,9 @@
 get('/escape.htm%6C', 'max-age=1');
 get('/escape html', 'max-age=1');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.8');
-
 like(http_get('/escape.htm%6C'), qr/HIT/, 'escaped after escaped');
 like(http_get('/escape.html'), qr/MISS/, 'unescaped after escaped');
 like(http_get('/escape html'), qr/HIT/, 'space after escaped space');
-
-}
-
 like(http_get('/escape%20html'), qr/HIT/, 'escaped space after escaped space');
 
 ###############################################################################
diff --git a/proxy_cache_valid.t b/proxy_cache_valid.t
index 7762f62..3536bc9 100644
--- a/proxy_cache_valid.t
+++ b/proxy_cache_valid.t
@@ -106,26 +106,16 @@
 
 $t->write_file('t2.html', 'NOOP');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.6');
-
 like(http_get('/t2.html'), qr/403 Forbidden/, 'error cached from max-age');
 
-}
-
 # ticket #1382, cache item "error" field was set regardless of u->cacheable.
 
 like(http_get('/'), qr/403 Forbidden/, 'error no-cache');
 
 $t->write_file('index.html', '');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.6');
-
 like(http_get('/'), qr/200 OK/, 'error no-cache - not cacheable');
 
-}
-
 ###############################################################################
 
 sub get {
diff --git a/proxy_force_ranges.t b/proxy_force_ranges.t
index 30b950a..178fce0 100644
--- a/proxy_force_ranges.t
+++ b/proxy_force_ranges.t
@@ -94,15 +94,10 @@
 
 # If-Range HTTP-date request
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.5');
-
 like(http_get_range('/proxy/t.html',
 	"Range: bytes=4-\nIf-Range: Mon, 28 Sep 1970 06:00:00 GMT"),
 	qr/^THIS/m, 'if-range last-modified proxy');
 
-}
-
 # If-Range entity-tag request
 
 like(http_get_range('/proxy/t.html',
diff --git a/proxy_limit_rate.t b/proxy_limit_rate.t
index c1b2eb5..060ad1b 100644
--- a/proxy_limit_rate.t
+++ b/proxy_limit_rate.t
@@ -87,12 +87,6 @@
 # the read timer used to be a delay timer in the next request
 
 like(http_get('/keepalive'), qr/200 OK/, 'keepalive');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.8');
-
 like(http_get('/keepalive'), qr/200 OK/, 'keepalive 2');
 
-}
-
 ###############################################################################
diff --git a/proxy_non_idempotent.t b/proxy_non_idempotent.t
index ba993ca..51edc2d 100644
--- a/proxy_non_idempotent.t
+++ b/proxy_non_idempotent.t
@@ -106,14 +106,8 @@
 # in particular, not emit builtin error page due to next upstream
 
 like(http_get('/404'), qr/X-IP: (\S+), \1.*SEE-THIS/s, 'get 404');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.11');
-
 like(http_post('/404'), qr/X-IP: (\S++)(?! ).*SEE-THIS/s, 'post 404');
 
-}
-
 # with "proxy_next_upstream non_idempotent" there is no
 # difference between idempotent and non-idempotent requests,
 # non-idempotent requests are retried as usual
diff --git a/proxy_protocol2.t b/proxy_protocol2.t
index be5dfa7..2342eb6 100644
--- a/proxy_protocol2.t
+++ b/proxy_protocol2.t
@@ -24,8 +24,6 @@
 
 my $t = Test::Nginx->new()->has(qw/http access realip/);
 
-plan(skip_all => 'no proxy protocol v2') unless $t->has_version('1.13.11');
-
 $t->write_file_expand('nginx.conf', <<'EOF')->plan(21);
 
 %%TEST_GLOBALS%%
diff --git a/proxy_protocol2_port.t b/proxy_protocol2_port.t
index a2ebfd1..d5cbbf1 100644
--- a/proxy_protocol2_port.t
+++ b/proxy_protocol2_port.t
@@ -24,8 +24,6 @@
 
 my $t = Test::Nginx->new()->has(qw/http realip/);
 
-plan(skip_all => 'no proxy protocol v2') unless $t->has_version('1.13.11');
-
 $t->write_file_expand('nginx.conf', <<'EOF')->plan(8);
 
 %%TEST_GLOBALS%%
diff --git a/proxy_ssi_body.t b/proxy_ssi_body.t
index b66ac82..9df7daf 100644
--- a/proxy_ssi_body.t
+++ b/proxy_ssi_body.t
@@ -58,8 +58,6 @@
 $t->write_file('ssi.html', 'X<!--# include virtual="test.html" -->X');
 $t->write_file('test.html', 'YY');
 
-$t->todo_alerts() if $t->read_file('nginx.conf') =~ /sendfile on/
-	and !$t->has_version('1.13.4');
 $t->run();
 
 ###############################################################################
@@ -67,14 +65,9 @@
 # Request body cache file is released once a response is got.
 # If later a subrequest tries to use body, it fails.
 
-TODO: {
-local $TODO = 'prematurely pruned' unless $t->has_version('1.13.4');
-
 like(http_get_body('/proxy/ssi.html', "1234567890"), qr/^XYYX$/m,
 	'body in file in proxied subrequest');
 
-}
-
 ###############################################################################
 
 sub http_get_body {
diff --git a/proxy_upgrade.t b/proxy_upgrade.t
index d93bbbb..a5db257 100644
--- a/proxy_upgrade.t
+++ b/proxy_upgrade.t
@@ -137,15 +137,9 @@
 
 # connection upgrade in subrequests shouldn't cause a segfault
 
-SKIP: {
-skip 'leaves coredump', 1 unless $t->has_version('1.13.7')
-	or $ENV{TEST_NGINX_UNSAFE};
-
 $s = upgrade_connect(uri => '/ssi.html');
 ok(!$s, "handshake in subrequests");
 
-}
-
 # bytes sent on upgraded connection
 # verify with 1) data actually read by client, 2) expected data from backend
 
diff --git a/realip_hostname.t b/realip_hostname.t
index df2129e..48bbe7e 100644
--- a/realip_hostname.t
+++ b/realip_hostname.t
@@ -67,7 +67,7 @@
 
 $t->write_file('1', '');
 $t->write_file('2', '');
-$t->try_run('no realip hostnames support');
+$t->run();
 
 plan(skip_all => 'no 127.0.0.1 on host')
 	if http_get('/1') !~ /X-IP: 127.0.0.1/m;
diff --git a/secure_link.t b/secure_link.t
index 0b2b811..2bdc2ba 100644
--- a/secure_link.t
+++ b/secure_link.t
@@ -132,16 +132,8 @@
 	qr/PASSED/, 'request md5');
 like(http_get('/test.html?hash=q-5vpkjBkRXXtkUMXiJVHA'),
 	qr/PASSED/, 'request md5 no padding');
-
-TODO: {
-todo_skip 'stack-buffer-overflow', 1 unless $ENV{TEST_NGINX_UNSAFE}
-	or $t->has_version('1.13.5');
-
 like(http_get('/test.html?hash=q-5vpkjBkRXXtkUMXiJVHAQQ'),
 	qr/^HTTP.*403/, 'request md5 too long');
-
-}
-
 like(http_get('/test.html?hash=q-5vpkjBkRXXtkUMXiJVHA-TOOLONG'),
 	qr/^HTTP.*403/, 'request md5 too long encoding');
 like(http_get('/test.html?hash=BADHASHLENGTH'),
diff --git a/slice.t b/slice.t
index 7bb2381..3bab3bc 100644
--- a/slice.t
+++ b/slice.t
@@ -233,16 +233,11 @@
 
 # respect Last-Modified from non-cacheable response with If-Range
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.5');
-
 my ($lm) = http_get('/t') =~ /Last-Modified: (.*)/;
 $r = get('/proxy/t', "Range: bytes=3-4\nIf-Range: $lm");
 like($r, qr/ 206 /, 'if-range last-modified proxy - 206 partial reply');
 like($r, qr/^34$/m, 'if-range last-modified proxy - correct content');
 
-}
-
 $r = get('/cache/t?ifb', "Range: bytes=3-4\nIf-Range: bad");
 like($r, qr/ 200 /, 'if-range bad - 200 ok');
 like($r, qr/^0123456789abcdef$/m, 'if-range bad - correct content');
diff --git a/ssl_client_escaped_cert.t b/ssl_client_escaped_cert.t
index c86ed5b..d5cc29c 100644
--- a/ssl_client_escaped_cert.t
+++ b/ssl_client_escaped_cert.t
@@ -28,7 +28,7 @@
 plan(skip_all => 'IO::Socket::SSL too old') if $@;
 
 my $t = Test::Nginx->new()->has(qw/http http_ssl rewrite/)
-	->has_daemon('openssl');
+	->has_daemon('openssl')->plan(3);
 
 $t->write_file_expand('nginx.conf', <<'EOF');
 
@@ -79,7 +79,7 @@
 		or die "Can't create certificate for $name: $!\n";
 }
 
-$t->try_run('no ssl_client_escaped_cert')->plan(3);
+$t->run();
 
 ###############################################################################
 
diff --git a/ssl_sni_sessions.t b/ssl_sni_sessions.t
index 74d0618..24c6048 100644
--- a/ssl_sni_sessions.t
+++ b/ssl_sni_sessions.t
@@ -23,8 +23,6 @@
 
 my $t = Test::Nginx->new()->has(qw/http http_ssl sni rewrite/);
 
-plan(skip_all => 'win32') if $^O eq 'MSWin32' and !$t->has_version('1.13.5');
-
 $t->has_daemon('openssl')->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
diff --git a/ssl_verify_client.t b/ssl_verify_client.t
index 9c8836e..002ec5a 100644
--- a/ssl_verify_client.t
+++ b/ssl_verify_client.t
@@ -139,14 +139,7 @@
 
 like(http_get('/t'), qr/x:x/, 'plain connection');
 like(get('on'), qr/400 Bad Request/, 'no cert');
-
-TODO: {
-todo_skip 'leaves coredump', 1 unless $t->has_version('1.13.9');
-
 like(get('no_context'), qr/400 Bad Request/, 'no server cert');
-
-}
-
 like(get('optional'), qr/NONE:x/, 'no optional cert');
 like(get('optional', '1.example.com'), qr/400 Bad/, 'bad optional cert');
 like(get('optional_no_ca', '1.example.com'), qr/FAILED.*BEGIN/,
diff --git a/stream_access_log_none.t b/stream_access_log_none.t
index c946db5..5cd4ca0 100644
--- a/stream_access_log_none.t
+++ b/stream_access_log_none.t
@@ -22,7 +22,7 @@
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/stream stream_map stream_return/)
+my $t = Test::Nginx->new()->has(qw/stream stream_map stream_return/)->plan(1)
 	->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
@@ -52,7 +52,7 @@
 
 EOF
 
-$t->try_run('no escape=none')->plan(1);
+$t->run();
 
 ###############################################################################
 
diff --git a/stream_realip_hostname.t b/stream_realip_hostname.t
index 85aeeec..a867ba3 100644
--- a/stream_realip_hostname.t
+++ b/stream_realip_hostname.t
@@ -71,7 +71,7 @@
 
 EOF
 
-$t->try_run('no stream realip hostnames support');
+$t->run();
 
 plan(skip_all => 'no 127.0.0.1 on host')
 	if http_get('/') ne '127.0.0.1';
diff --git a/stream_ssl_preread_alpn.t b/stream_ssl_preread_alpn.t
index 751a8c2..047e364 100644
--- a/stream_ssl_preread_alpn.t
+++ b/stream_ssl_preread_alpn.t
@@ -82,6 +82,8 @@
 eval { exists &Net::SSLeay::P_alpn_selected or die; };
 plan(skip_all => 'Net::SSLeay with OpenSSL ALPN support required') if $@;
 
+$t->plan(5);
+
 $t->write_file('openssl.conf', <<EOF);
 [ req ]
 default_bits = 1024
@@ -100,7 +102,7 @@
 		or die "Can't create certificate for $name: $!\n";
 }
 
-$t->try_run('no ssl_preread_alpn_protocols')->plan(5);
+$t->run();
 
 ###############################################################################
 
diff --git a/stream_udp_wildcard.t b/stream_udp_wildcard.t
index cd45c95..202d9d8 100644
--- a/stream_udp_wildcard.t
+++ b/stream_udp_wildcard.t
@@ -57,11 +57,6 @@
 	PeerAddr  => '127.0.0.2:' . port(8999)
 );
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.0');
-
 is($s->io('test'), '127.0.0.2', 'stream udp wildcard');
 
-}
-
 ###############################################################################
diff --git a/stream_upstream_zone.t b/stream_upstream_zone.t
index c4d32f0..77a99d9 100644
--- a/stream_upstream_zone.t
+++ b/stream_upstream_zone.t
@@ -76,10 +76,6 @@
 
 my $p = port(8081);
 
-TODO: {
-todo_skip 'leaves coredump', 2 unless $^O ne 'MSWin32'
-	or $ENV{TEST_NGINX_UNSAFE} or $t->has_version('1.13.4');
-
 stream('127.0.0.1:' . port(8091));
 stream("127.0.0.1:" . port(8092));
 
@@ -88,6 +84,4 @@
 is($t->read_file('access1.log'), "127.0.0.1:$p\n", 'upstream name');
 is($t->read_file('access2.log'), "u2\n", 'no live upstreams');
 
-}
-
 ###############################################################################
diff --git a/stream_upstream_zone_ssl.t b/stream_upstream_zone_ssl.t
index 942fde8..12b37d5 100644
--- a/stream_upstream_zone_ssl.t
+++ b/stream_upstream_zone_ssl.t
@@ -106,10 +106,6 @@
 
 ###############################################################################
 
-TODO: {
-todo_skip 'leaves coredump', 9 unless $^O ne 'MSWin32'
-	or $ENV{TEST_NGINX_UNSAFE} or $t->has_version('1.13.4');
-
 is(stream('127.0.0.1:' . port(8080))->read(), '.', 'ssl');
 is(stream('127.0.0.1:' . port(8080))->read(), '.', 'ssl 2');
 
@@ -123,6 +119,4 @@
 is(stream('127.0.0.1:' . port(8083))->read(), '.', 'backup ssl session new');
 is(stream('127.0.0.1:' . port(8083))->read(), 'r', 'backup ssl session reused');
 
-}
-
 ###############################################################################
diff --git a/subrequest_output_buffer_size.t b/subrequest_output_buffer_size.t
index f1d709a..2446750 100644
--- a/subrequest_output_buffer_size.t
+++ b/subrequest_output_buffer_size.t
@@ -22,7 +22,7 @@
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http proxy ssi/)
+my $t = Test::Nginx->new()->has(qw/http proxy ssi/)->plan(4)
 	->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
@@ -71,7 +71,7 @@
 $t->write_file('long', 'x' x 400);
 $t->write_file('empty', '');
 
-$t->try_run('no subrequest_output_buffer_size')->plan(4);
+$t->run();
 
 ###############################################################################
 
diff --git a/trailers.t b/trailers.t
index 268b134..aa220c4 100644
--- a/trailers.t
+++ b/trailers.t
@@ -24,7 +24,7 @@
 select STDERR; $| = 1;
 select STDOUT; $| = 1;
 
-my $t = Test::Nginx->new()->has(qw/http proxy/)
+my $t = Test::Nginx->new()->has(qw/http proxy/)->plan(17)
 	->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
@@ -77,7 +77,7 @@
 
 $t->write_file('t1', 'SEE-THIS');
 $t->write_file('header', '');
-$t->try_run('no add_trailer')->plan(17);
+$t->run();
 
 ###############################################################################
 
diff --git a/upstream_zone.t b/upstream_zone.t
index 6ffc3a0..bc45a34 100644
--- a/upstream_zone.t
+++ b/upstream_zone.t
@@ -78,13 +78,7 @@
 
 my $p = port(8081);
 
-TODO: {
-todo_skip 'leaves coredump', 2 unless $^O ne 'MSWin32'
-	or $ENV{TEST_NGINX_UNSAFE} or $t->has_version('1.13.4');
-
 like(http_get('/'), qr/X-Name: 127.0.0.1:$p/, 'upstream name');
 like(http_get('/down'), qr/X-Name: u2/, 'no live upstreams');
 
-}
-
 ###############################################################################
diff --git a/upstream_zone_ssl.t b/upstream_zone_ssl.t
index 3777e23..32732f4 100644
--- a/upstream_zone_ssl.t
+++ b/upstream_zone_ssl.t
@@ -111,10 +111,6 @@
 
 ###############################################################################
 
-TODO: {
-todo_skip 'leaves coredump', 9 unless $^O ne 'MSWin32'
-	or $ENV{TEST_NGINX_UNSAFE} or $t->has_version('1.13.4');
-
 like(http_get('/ssl'), qr/200 OK.*X-Session: \./s, 'ssl');
 like(http_get('/ssl'), qr/200 OK.*X-Session: \./s, 'ssl 2');
 like(http_get('/ssl_reuse'), qr/200 OK.*X-Session: \./s, 'ssl session new');
@@ -126,6 +122,4 @@
 like(http_get('/backup_reuse'), qr/200 OK.*X-Session: \./s, 'backup new');
 like(http_get('/backup_reuse'), qr/200 OK.*X-Session: r/s, 'backup reused');
 
-}
-
 ###############################################################################
diff --git a/worker_shutdown_timeout_mail.t b/worker_shutdown_timeout_mail.t
index 8441158..432bbdd 100644
--- a/worker_shutdown_timeout_mail.t
+++ b/worker_shutdown_timeout_mail.t
@@ -84,13 +84,8 @@
 
 $t->reload();
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.7');
-
 ok($s->can_read(), 'mail connection shutdown');
 
-}
-
 undef $s;
 1;
 
diff --git a/worker_shutdown_timeout_proxy_upgrade.t b/worker_shutdown_timeout_proxy_upgrade.t
index 0ed32c0..64d1a67 100644
--- a/worker_shutdown_timeout_proxy_upgrade.t
+++ b/worker_shutdown_timeout_proxy_upgrade.t
@@ -76,13 +76,8 @@
 
 $t->reload();
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.7');
-
 ok($sel->can_read(3), 'upgraded connection shutdown');
 
-}
-
 undef $s;
 
 ###############################################################################
diff --git a/worker_shutdown_timeout_stream.t b/worker_shutdown_timeout_stream.t
index 6032a61..b7d1951 100644
--- a/worker_shutdown_timeout_stream.t
+++ b/worker_shutdown_timeout_stream.t
@@ -58,13 +58,8 @@
 
 $t->reload();
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.7');
-
 ok($s->can_read(), 'stream connection shutdown');
 
-}
-
 undef $s;
 1;
 
diff --git a/xslt_params.t b/xslt_params.t
index d1b2d70..83493e9 100644
--- a/xslt_params.t
+++ b/xslt_params.t
@@ -95,14 +95,9 @@
 
 # before 1.13.7, nginx used to overwrite xslt_stylesheet configuration data
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.13.7');
-
 like(http_get("/x1"), qr!200 OK.*param1=value1.*param2=data.*param3=value3!ms,
 	'params from xslt_stylesheet again');
 
-}
-
 like(http_get("/x2"), qr!200 OK.*param1=value1.*param2=data.*param3=value3!ms,
 	'params from xslt_param/xslt_string_param');
 like(http_get("/x3"), qr!200 OK.*param1=value1.*param2=data.*param3=value3!ms,
