changeset 397:847ea345becb

Tests: removed TODO and try_run() checks for legacy versions.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 05 May 2014 11:46:01 +0400
parents 5eb0df61f371
children 077ffeac825c
files access.t auth_request_satisfy.t dav.t debug_connection.t error_log.t fastcgi_buffering.t fastcgi_split.t gunzip_memcached.t gunzip_static.t http_location.t http_location_auto.t http_resolver.t http_resolver_aaaa.t mail_resolver.t mail_smtp.t mail_smtp_greeting_delay.t mp4.t proxy_cache_lock.t proxy_cache_range.t proxy_cache_revalidate.t proxy_cookie.t proxy_protocol.t proxy_unfinished.t proxy_xar.t range_charset.t range_mp4.t referer.t rewrite.t scgi_cache.t spdy.t ssi.t ssl.t sub_filter.t sub_filter_perl.t xslt_params.t
diffstat 35 files changed, 10 insertions(+), 254 deletions(-) [+]
line wrap: on
line diff
--- a/access.t
+++ b/access.t
@@ -25,8 +25,6 @@ select STDOUT; $| = 1;
 
 my $t = Test::Nginx->new()->has(qw/http proxy access ipv6/);
 
-plan(skip_all => 'new syntax "unix:"') unless $t->has_version('1.5.1');
-
 $t->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
--- a/auth_request_satisfy.t
+++ b/auth_request_satisfy.t
@@ -133,12 +133,6 @@ like(http_get('/any/deny+forbidden'), qr
 
 like(http_get('/any/basic+open'), qr/ 404 /, 'any basic+open');
 like(http_get('/any/basic+unauthorized'), qr/ 401 /, 'any basic+unauthorized');
-
-TODO: {
-local $TODO = 'not yet, ticket 285' unless $t->has_version('1.5.7');
-
 like(http_get('/any/basic+forbidden'), qr/ 401 /, 'any basic+forbidden');
 
-}
-
 ###############################################################################
--- a/dav.t
+++ b/dav.t
@@ -142,11 +142,6 @@ EOF
 
 like($r, qr/204 No Content/, 'copy file escaped');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.9');
-
 is(-s $t->testdir() . '/file-moved escape', 10, 'file copied unescaped');
 
-}
-
 ###############################################################################
--- a/debug_connection.t
+++ b/debug_connection.t
@@ -23,8 +23,6 @@ select STDOUT; $| = 1;
 
 my $t = Test::Nginx->new()->has(qw/http --with-debug ipv6 proxy/);
 
-plan(skip_all => 'not yet') unless $t->has_version('1.5.2');
-
 $t->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
--- a/error_log.t
+++ b/error_log.t
@@ -24,7 +24,6 @@ select STDOUT; $| = 1;
 
 my $t = Test::Nginx->new()->has(qw/http limit_req/);
 
-plan(skip_all => 'not yet') unless $t->has_version('1.5.2');
 plan(skip_all => 'win32') if $^O eq 'MSWin32';
 
 $t->plan(25)->write_file_expand('nginx.conf', <<'EOF');
--- a/fastcgi_buffering.t
+++ b/fastcgi_buffering.t
@@ -62,7 +62,7 @@ EOF
 	'<!--#include virtual="/include$request_uri" set="x" -->' .
 	'set: <!--#echo var="x" -->');
 
-$t->try_run('no fastcgi_buffering')->plan(2);
+$t->run()->plan(2);
 
 $t->run_daemon(\&fastcgi_daemon)->waitforsocket('127.0.0.1:8081');
 
--- a/fastcgi_split.t
+++ b/fastcgi_split.t
@@ -70,13 +70,8 @@ EOF
 
 ###############################################################################
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.12');
-
 like(http_get('/'), qr/^Good: header/ms, 'fastcgi next upstream');
 
-}
-
 ###############################################################################
 
 sub fastcgi_daemon {
--- a/gunzip_memcached.t
+++ b/gunzip_memcached.t
@@ -71,7 +71,7 @@ if ($memhelp =~ /-U/) {
 
 $t->run_daemon('memcached', '-l', '127.0.0.1', '-p', '8081', @memopts);
 
-$t->try_run('no memcached_gzip_flag')->plan(2);
+$t->run()->plan(2);
 
 $t->waitforsocket('127.0.0.1:8081')
 	or die "Can't start memcached";
--- a/gunzip_static.t
+++ b/gunzip_static.t
@@ -74,7 +74,7 @@ IO::Compress::Gzip::gzip(\$in => \$out);
 $t->write_file('t2.gz', $out . $out);
 $t->write_file('t3', 'not compressed');
 
-$t->try_run('no gzip_static always')->plan(12);
+$t->run()->plan(12);
 
 ###############################################################################
 
--- a/http_location.t
+++ b/http_location.t
@@ -122,18 +122,11 @@ SKIP: {
 		'casefull regex do not match wrong case');
 }
 
-# on case-insensitive systems a request to "/UPPERCASE" fails,
-# as location search tree is incorrectly sorted if uppercase
+# on case-insensitive systems a request to "/UPPERCASE" might fail,
+# if location search tree is incorrectly sorted and uppercase
 # characters are used in location directives (ticket #90)
 
 like(http_get('/lowercase'), qr/X-Location: lowercase/, 'lowercase');
-
-TODO: {
-local $TODO = 'fails on caseless oses'
-	if ($^O eq 'MSWin32' or $^O eq 'darwin') and !$t->has_version('1.5.6');
-
 like(http_get('/UPPERCASE'), qr/X-Location: uppercase/, 'uppercase');
 
-}
-
 ###############################################################################
--- a/http_location_auto.t
+++ b/http_location_auto.t
@@ -65,13 +65,7 @@ EOF
 
 ###############################################################################
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.6');
-
 like(http_get('/a'), qr/301 Moved/, 'auto redirect');
-
-}
-
 like(http_get('/a/'), qr/X-Location: unset/, 'match a');
 like(http_get('/a-a'), qr/X-Location: a-a/, 'match a-a');
 like(http_get('/a-b'), qr/X-Location: a-b/, 'match a-b');
--- a/http_resolver.t
+++ b/http_resolver.t
@@ -92,15 +92,10 @@ like(http_host_header('a.example.net', '
 # ensure that resolver serves queries from cache in a case-insensitive manner
 # we check this by marking 2nd and subsequent queries on backend with SERVFAIL
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.8');
-
 http_x_name_header('case.example.net', '/case');
 like(http_x_name_header('CASE.example.net', '/case'), qr/200 OK/,
 	'A case-insensitive');
 
-}
-
 like(http_host_header('awide.example.net', '/'), qr/200 OK/, 'A uncompressed');
 like(http_host_header('short.example.net', '/'), qr/502 Bad/,
 	'A short dns response');
@@ -204,9 +199,6 @@ sleep 2;
 like(http_host_header('ttl.example.net', '/valid'), qr/502 Bad/,
 	'valid expired');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.9');
-
 # Ensure that resolver respects expired CNAME in CNAME + A combined response.
 # When ttl in CNAME is expired, the answer should not be served from cache.
 # Catch this by returning SERVFAIL on the 2nd and subsequent queries.
@@ -218,8 +210,6 @@ sleep 2;
 like(http_host_header('cname_a_ttl2.example.net', '/'), qr/502 Bad/,
 	'CNAME + A with expired CNAME ttl');
 
-}
-
 like(http_host_header('example.net', '/invalid'), qr/502 Bad/, 'no resolver');
 
 ###############################################################################
--- a/http_resolver_aaaa.t
+++ b/http_resolver_aaaa.t
@@ -24,8 +24,6 @@ select STDOUT; $| = 1;
 
 my $t = Test::Nginx->new()->has(qw/http proxy rewrite ipv6/);
 
-plan(skip_all => 'no ipv6 capable resolver') unless $t->has_version('1.5.8');
-
 $t->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
--- a/mail_resolver.t
+++ b/mail_resolver.t
@@ -170,9 +170,6 @@ close $s;
 
 # PTR with zero length RDATA
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.8');
-
 $s = Test::Nginx::SMTP->new(PeerAddr => "127.0.0.1:8028");
 $s->read();
 $s->send('EHLO example.com');
@@ -187,8 +184,6 @@ local $TODO = 'not yet' unless $t->has_v
 $s->read();
 close $s;
 
-}
-
 # CNAME
 
 TODO: {
--- a/mail_smtp.t
+++ b/mail_smtp.t
@@ -140,10 +140,6 @@ my $s = Test::Nginx::SMTP->new();
 
 # Try auth plain with pipelining
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.6');
-local $SIG{__WARN__} = sub {};
-
 $s = Test::Nginx::SMTP->new();
 $s->read();
 $s->send('EHLO example.com');
@@ -166,8 +162,6 @@ local $SIG{__WARN__} = sub {};
 $s->read();
 $s->ok('mail from after pipelined auth');
 
-}
-
 # Try auth none
 
 $s = Test::Nginx::SMTP->new();
@@ -196,16 +190,9 @@ local $SIG{__WARN__} = sub {};
 	. 'RSET');
 
 $s->ok('pipelined mail from');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.6');
-local $SIG{__WARN__} = sub {};
-
 $s->ok('pipelined rcpt to');
 $s->ok('pipelined rset');
 
-}
-
 # Connection must stay even if error returned to rcpt to command
 
 $s = Test::Nginx::SMTP->new();
--- a/mail_smtp_greeting_delay.t
+++ b/mail_smtp_greeting_delay.t
@@ -54,12 +54,6 @@ EOF
 my $s = Test::Nginx::SMTP->new();
 $s->send('HELO example.com');
 $s->check(qr/^5.. /, "command before greeting - session must be rejected");
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.6');
-
 ok($s->eof(), "session have to be closed");
 
-}
-
 ###############################################################################
--- a/mp4.t
+++ b/mp4.t
@@ -66,9 +66,6 @@ is(durations($t, 0.0), '10.0 20.0', 'sta
 is(durations($t, 2), '8.0 18.0', 'start integer');
 is(durations($t, 7.1), '2.9 12.9', 'start float');
 
-SKIP: {
-skip 'no end argument support', 8 unless $t->has_version('1.5.13');
-
 is(durations($t, 6, 9), '3.0 3.0', 'start end integer');
 is(durations($t, 2.7, 5.6), '2.9 2.9', 'start end float');
 
@@ -85,17 +82,8 @@ like(http_head('/test.mp4?start=1&end=0'
 unlike(http_head("/test.mp4?end=11"), qr!HTTP/1.1 500!,
 	'end beyond short track');
 unlike(http_head("/test.mp4?end=21"), qr!HTTP/1.1 500!, 'end beyond EOF');
-
-}
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.10');
-
 unlike(http_head("/test.mp4?start=11"), qr!HTTP/1.1 500!,
 	'start beyond short track');
-
-}
-
 like(http_head("/test.mp4?start=21"), qr!HTTP/1.1 500!, 'start beyond EOF');
 
 # check for alerts, e.g., "zero buf in output", shouldn't be any
--- a/proxy_cache_lock.t
+++ b/proxy_cache_lock.t
@@ -70,7 +70,7 @@ EOF
 
 $t->run_daemon(\&http_fake_daemon);
 
-$t->try_run('no proxy_cache_lock')->plan(19);
+$t->run()->plan(19);
 
 $t->waitforsocket('127.0.0.1:8081');
 
--- a/proxy_cache_range.t
+++ b/proxy_cache_range.t
@@ -66,12 +66,8 @@ EOF
 
 ###############################################################################
 
-{
-local $TODO = 'not yet' unless $t->has_version('1.5.13');
-
 like(http_get_range('/t.html?1', 'Range: bytes=4-'), qr/^THIS/m,
 	'range on first request');
-}
 
 {
 local $TODO = 'not yet';
--- a/proxy_cache_revalidate.t
+++ b/proxy_cache_revalidate.t
@@ -67,7 +67,7 @@ EOF
 $t->write_file('t', 'SEE-THIS');
 $t->write_file('t2', 'SEE-THIS');
 
-$t->try_run('no proxy_cache_revalidate')->plan(9);
+$t->run()->plan(9);
 
 ###############################################################################
 
--- a/proxy_cookie.t
+++ b/proxy_cookie.t
@@ -73,7 +73,7 @@ http {
 
 EOF
 
-$t->try_run('no proxy_cookie')->plan(8);
+$t->run()->plan(8);
 
 ###############################################################################
 
--- a/proxy_protocol.t
+++ b/proxy_protocol.t
@@ -26,8 +26,6 @@ select STDOUT; $| = 1;
 
 my $t = Test::Nginx->new()->has(qw/http access ipv6 realip/);
 
-plan(skip_all => 'no PROXY support') unless $t->has_version('1.5.12');
-
 $t->write_file_expand('nginx.conf', <<'EOF')->plan(18);
 
 %%TEST_GLOBALS%%
--- a/proxy_unfinished.t
+++ b/proxy_unfinished.t
@@ -98,20 +98,12 @@ EOF
 http_get('/cache/length');
 like(http_get('/cache/length'), qr/MISS/, 'unfinished not cached');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 # chunked encoding has enough information to don't cache a response,
 # much like with Content-Length available
 
 http_get('/cache/chunked');
 like(http_get('/cache/chunked'), qr/MISS/, 'unfinished chunked');
 
-}
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 # make sure there is no final chunk in unfinished responses
 
 like(http_get_11('/length'), qr/unfinished(?!.*\x0d\x0a?0\x0d\x0a?)/s,
@@ -119,8 +111,6 @@ like(http_get_11('/length'), qr/unfinish
 like(http_get_11('/chunked'), qr/unfinished(?!.*\x0d\x0a?0\x0d\x0a?)/s,
 	'chunked no final chunk');
 
-}
-
 # but there is final chunk in complete responses
 
 like(http_get_11('/length/ok'), qr/finished.*\x0d\x0a?0\x0d\x0a?/s,
@@ -128,9 +118,6 @@ like(http_get_11('/length/ok'), qr/finis
 like(http_get_11('/chunked/ok'), qr/finished.*\x0d\x0a?0\x0d\x0a?/s,
 	'chunked final chunk');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 # the same with proxy_buffering set to off
 
 like(http_get_11('/un/length'), qr/unfinished(?!.*\x0d\x0a?0\x0d\x0a?)/s,
@@ -138,8 +125,6 @@ like(http_get_11('/un/length'), qr/unfin
 like(http_get_11('/un/chunked'), qr/unfinished(?!.*\x0d\x0a?0\x0d\x0a?)/s,
         'unbuffered chunked no final chunk');
 
-}
-
 like(http_get_11('/un/length/ok'), qr/finished.*\x0d\x0a?0\x0d\x0a?/s,
         'unbuffered length final chunk');
 like(http_get_11('/un/chunked/ok'), qr/finished.*\x0d\x0a?0\x0d\x0a?/s,
@@ -152,9 +137,6 @@ like(http_get('/big/ok', sleep => 0.1), 
 like(http_get('/un/big', sleep => 0.1), qr/unfinished/s, 'big unfinished un');
 like(http_get('/un/big/ok', sleep => 0.1), qr/finished/s, 'big finished un');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 # if disk buffering fails for some reason, there should be
 # no final chunk
 
@@ -162,8 +144,6 @@ chmod(0000, $t->testdir() . '/proxy_temp
 like(http_get_11('/proxy/big.html', sleep => 0.5),
 	qr/X(?!.*\x0d\x0a?0\x0d\x0a?)|finished/s, 'no proxy temp');
 
-}
-
 ###############################################################################
 
 sub http_get_11 {
--- a/proxy_xar.t
+++ b/proxy_xar.t
@@ -84,8 +84,7 @@ like($r, qr/^Expires: fake/m, 'Expires p
 like($r, qr/^Accept-Ranges: parrots/m, 'Accept-Ranges preserved');
 unlike($r, qr/^Something/m, 'other headers stripped');
 
-TODO: {
-local $TODO = 'escaped characters' unless $t->has_version('1.5.9');
+# escaped characters
 
 like(http_get('/proxy?xar=/foo?bar'), qr/200 OK.*xar: \/foo\?bar/s,
 	'X-Accel-Redirect value unchanged');
@@ -100,6 +99,4 @@ unlike(http_get('/proxy?xar=/foo/.%2e'),
 like(http_get('/proxy?xar=/foo%20bar'), qr/uri: \/foo bar/,
 	'X-Accel-Redirect unescaped');
 
-}
-
 ###############################################################################
--- a/range_charset.t
+++ b/range_charset.t
@@ -87,14 +87,8 @@ http_get('/t1.html');
 like($t1, qr/206/, 'charset - 206 partial reply');
 like($t1, qr/Content-Type: multipart\/byteranges; boundary=\w+\x0d\x0a/,
 	'charset - content type');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.11');
-
 like($t1, qr/Content-Type: text\/html; charset=B(?!; charset)/,
 	'charset - charset attribute');
-}
-
 like($t1, qr/X000XXXXXX/m, 'charset - content 0-9');
 like($t1, qr/X001XXXXXX\x0d?$/m, 'charset - content 10-19');
 
--- a/range_mp4.t
+++ b/range_mp4.t
@@ -66,9 +66,6 @@ isnt($fsz0, $fsz, 'mp4 start argument wo
 
 my $t1;
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.13');
-
 # MP4 has minimally 16 byte ftyp object at start
 
 my $start = $fsz - 10;
@@ -91,8 +88,6 @@ like($t1, qr/Content-Length: 100/, 'mult
 like($t1, qr/Content-Range: bytes 0-99\/$fsz/,
 	'multi buffers - content range');
 
-}
-
 TODO: {
 local $TODO = 'multipart range on mp4';
 
--- a/referer.t
+++ b/referer.t
@@ -137,14 +137,7 @@ ok(!valid('/simple', 'http://www.example
 ok(!valid('/wc', 'http://example.' . 'a' x 256), 'long hostname wildcard');
 
 ok(valid('/long', 'http://' . 'a' x 255), 'long hostname 255');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.5');
-
 ok(valid('/long', 'http://' . 'a' x 256), 'long hostname 256');
-
-}
-
 ok(!valid('/long', 'http://' . 'a' x 257), 'long hostname 257');
 
 ok(valid('/uri', 'http://www.example.org/uri'), 'uri');
@@ -163,28 +156,15 @@ ok(!valid('/regex', 'http://www.eXample.
 ok(valid('/regex2', 'http://www.example.org/uri'), 'regex 2 uri');
 ok(!valid('/regex2', 'http://www.example.org'), 'regex 2 no uri');
 ok(valid('/regex2', 'http://www.example.org/uRI'), 'regex 2 uri caseless');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.4');
-
 ok(valid('/regex3', 'https://www.eXample.org'), 'regex https');
 
-}
-
 ok(valid('/sn', 'http://localhost'), 'server_names');
 ok(valid('/sn', 'http://localHost'), 'server_names caseless');
 ok(valid('/sn', 'http://localhost/uri'), 'server_names uri');
 ok(valid('/sn', 'http://foobar'), 'server_names regex');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.5');
-
 ok(valid('/sn', 'http://foobAr'), 'server_names regex caseless');
 ok(valid('/sn', 'http://foobAr/uri'), 'server_names regex caseless uri');
 ok(valid('/sn', 'http://anchoredre/uri'), 'server_names regex anchored');
-
-}
-
 ok(valid('/sn', 'http://foobar/uri'), 'server_names regex uri');
 ok(!valid('/sn', 'localhost'), 'server_names no scheme');
 ok(!valid('/sn', 'foobar'), 'server_names regex no scheme');
@@ -200,13 +180,8 @@ ok(valid('/', 'http://another', 'another
 
 # server_name below valid_referers
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.5');
-
 ok(valid('/', 'http://below', 'below'), 'server below');
 
-}
-
 ###############################################################################
 
 sub valid {
--- a/rewrite.t
+++ b/rewrite.t
@@ -155,14 +155,7 @@ like(http_get('/no?a=b'), qr!^Location: 
 
 like(http_get('/return204'), qr!204 No Content!, 'return 204');
 like(http_get('/return200'), qr!200 OK!, 'return 200');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.6');
-
 like(http_get('/return306'), qr!HTTP/1.1 306 !, 'return 306');
-
-}
-
 like(http_get('/return405'), qr!HTTP/1.1 405.*body!ms, 'return 405');
 
 like(http_get('/error404return405'), qr!HTTP/1.1 404!, 'error 404 return 405');
--- a/scgi_cache.t
+++ b/scgi_cache.t
@@ -70,12 +70,7 @@ like(http_get('/nolen'), qr/MISS/, 'no l
 like(http_get('/nolen'), qr/HIT/, 'no length cached');
 
 like(http_get('/len/empty'), qr/MISS/, 'empty length');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 like(http_get('/len/empty'), qr/HIT/, 'empty length cached');
-}
 
 like(http_get('/nolen/empty'), qr/MISS/, 'empty no length');
 like(http_get('/nolen/empty'), qr/HIT/, 'empty no length cached');
--- a/spdy.t
+++ b/spdy.t
@@ -36,8 +36,6 @@ plan(skip_all => 'win32') if $^O eq 'MSW
 
 my $t = Test::Nginx->new()->has(qw/http proxy cache limit_conn rewrite spdy/);
 
-plan(skip_all => 'no SPDY/3.1') unless $t->has_version('1.5.10');
-
 $t->plan(72)->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
@@ -389,9 +387,6 @@ is($frame->{data}, 7, 'priority 7');
 
 # stream muliplexing + priority
 
-TODO: {
-local $TODO = 'reversed priority' unless $t->has_version('1.5.11');
-
 $sess = new_session();
 $sid1 = spdy_stream($sess, { path => '/t1.html', prio => 7 });
 $sid2 = spdy_stream($sess, { path => '/t2.html', prio => 0 });
@@ -428,8 +423,6 @@ spdy_window($sess, 2**17);
 @data = grep { $_->{type} eq "DATA" } @$frames;
 is(join (' ', map { $_->{sid} } @data), "$sid1 $sid2", 'multiple priority 2');
 
-}
-
 # limit_conn
 
 $sess = new_session();
@@ -520,9 +513,6 @@ is($frame->{sid}, $sid1, 'dup stream - s
 
 # awkward protocol version
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.11');
-
 $sess = new_session();
 $sid1 = spdy_stream($sess, { path => '/s', version => 'HTTP/1.10' });
 $frames = spdy_read($sess, all => [{ sid => $sid1, fin => 1 }]);
@@ -530,8 +520,6 @@ local $TODO = 'not yet' unless $t->has_v
 ($frame) = grep { $_->{type} eq "SYN_REPLY" } @$frames;
 is($frame->{headers}->{':status'}, 200, 'awkward version');
 
-}
-
 # missing mandatory request header
 
 $sess = new_session();
--- a/ssi.t
+++ b/ssi.t
@@ -154,22 +154,13 @@ like(http_get('/test-empty3.html'), qr/H
 # handling of escaped URIs
 
 like(http_get('/unescape1.html'), qr/^XXtestXX$/m, 'escaped in path');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.9');
-
 like(http_get('/unescape2.html'), qr/^XSEE-THISX$/m,
 	'escaped question in path');
 like(http_get('/unescape3.html'), qr/404 Not Found/,
 	'escaped query separator');
 
-}
-
 # handling of embedded date variables
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.10');
-
 like(http_get('/var_nossi.html'),
 	qr/X-Var: \w+, \d\d-\w{3}-\d{4} \d\d:\d\d:\d\d \w+/, 'no ssi');
 like(http_get('/var_noformat.html'),
@@ -180,8 +171,6 @@ like(http_get('/var_format.html?custom=1
 like(http_get('/var_format.html'),
 	qr/X-Var: \w+, \d\d-\w{3}-\d{4} \d\d:\d\d:\d\d \w+/, 'default header');
 
-}
-
 like(http_get('/var_format.html?custom=1'),
 	qr/x\w+, \d\d:\d\d:\d\dx/, 'custom ssi');
 like(http_get('/var_format.html'),
--- a/ssl.t
+++ b/ssl.t
@@ -30,9 +30,6 @@ plan(skip_all => 'IO::Socket::SSL not in
 my $t = Test::Nginx->new()->has(qw/http http_ssl rewrite/)
 	->has_daemon('openssl');
 
-plan(skip_all => 'new syntax: "$ssl_session_reused"')
-	unless $t->has_version('1.5.11');
-
 $t->plan(4)->write_file_expand('nginx.conf', <<'EOF');
 
 %%TEST_GLOBALS%%
--- a/sub_filter.t
+++ b/sub_filter.t
@@ -85,43 +85,16 @@ like(http_get('/foofoo.html'), qr/barfoo
 
 like(http_get('/once?b=foofoo'), qr/barfoo/, 'once');
 like(http_get('/many?b=foofoo'), qr/barbar/, 'many');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 like(http_get('/many?b=fo'), qr/fo/, 'incomplete');
 like(http_get('/many?b=foofo'), qr/barfo/, 'incomplete long');
 
-}
-
 like(http_get('/complex?b=abac'), qr/_replaced/, 'complex');
 like(http_get('/complex?b=abaabac'), qr/aba_replaced/, 'complex 1st char');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 like(http_get('/complex?b=ababac'), qr/replaced/, 'complex 2nd char');
-
-}
-
 like(http_get('/complex2?b=ababX'), qr/_replaced/, 'complex2');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 like(http_get('/complex2?b=abababX'), qr/ab_replaced/, 'complex2 long');
-
-}
-
 like(http_get('/complex3?b=aab'), qr/_replaced/, 'complex3 aab in aab');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 like(http_get('/complex3?b=aaab'), qr/a_replaced/, 'complex3 aab in aaab');
-
-}
-
 like(http_get('/complex3?b=aaaab'), qr/aa_replaced/, 'complex3 aab in aaaab');
 
 ###############################################################################
--- a/sub_filter_perl.t
+++ b/sub_filter_perl.t
@@ -93,63 +93,31 @@ like(http_get('/flush'), qr/^replaced$/m
 
 like(http_get('/multi?a=a&b=ab'), qr/^_replaced$/m, 'aab in a + ab');
 like(http_get('/multi?a=a&b=aaab'), qr/^aa_replaced$/m, 'aab in a + aaab');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 like(http_get('/multi?a=a&b=aab'), qr/^a_replaced$/m, 'aab in a + aab');
 like(http_get('/multi?a=a&b=aaaab'), qr/^aaa_replaced$/m, 'aab in a + aaaab');
-
-}
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 like(http_get('/multi?a=aa&b=ab'), qr/^a_replaced$/m, 'aab in aa + ab');
 like(http_get('/multi?a=aa&b=aab'), qr/^aa_replaced$/m, 'aab in aa + aab');
 like(http_get('/multi?a=aa&b=aaab'), qr/^aaa_replaced$/m, 'aab in aa + aaab');
-
-}
-
 like(http_get('/multi?a=aa&b=aaaab'), qr/^aaaa_replaced$/m, 'aab in aa + aaaab');
 
 # full backtracking
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 like(http_get('/multi?a=aa&b=xaaab'), qr/^aaxa_replaced$/m, 'aab in aa + xaaab');
 like(http_get('/multi?a=aa&b=axaaab'), qr/^aaaxa_replaced$/m,
 	'aab in aa + axaaab');
 like(http_get('/multi?a=aa&b=aaxaaab'), qr/^aaaaxa_replaced$/m,
 	'aab in aa + aaxaaab');
 
-}
-
 # short pattern
 
 like(http_get('/short?a=a&b=b'), qr/^_replaced$/m, 'ab in a + b');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 like(http_get('/short?a=a&b=ab'), qr/^a_replaced$/m, 'ab in a + ab');
-
-}
-
 like(http_get('/short?a=a&b=aab'), qr/^aa_replaced$/m, 'ab in a + aab');
 like(http_get('/short?a=a&b=aaab'), qr/^aaa_replaced$/m, 'ab in a + aaab');
 like(http_get('/short?a=a&b=aaaab'), qr/^aaaa_replaced$/m, 'ab in a + aaaab');
 
 like(http_get('/short?a=aa&b=b'), qr/^a_replaced$/m, 'ab in aa + b');
-
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.5.3');
-
 like(http_get('/short?a=aa&b=ab'), qr/^aa_replaced$/m, 'ab in aa + ab');
-
-}
-
 like(http_get('/short?a=aa&b=aab'), qr/^aaa_replaced$/m, 'ab in aa + aab');
 like(http_get('/short?a=aa&b=aaab'), qr/^aaaa_replaced$/m, 'ab in aa + aaab');
 like(http_get('/short?a=aa&b=aaaab'), qr/^aaaaa_replaced$/m, 'ab in aa + aaaab');
--- a/xslt_params.t
+++ b/xslt_params.t
@@ -86,7 +86,7 @@ EOF
 $t->write_file('x2', '<root>data</root>');
 $t->write_file('x3', '<root>data</root>');
 
-$t->try_run('no xslt_param')->plan(3);
+$t->run()->plan(3);
 
 ###############################################################################