Tests: removed TODOs for fixes merged in 1.20.2.
diff --git a/grpc.t b/grpc.t
index 6c3c7a0..22eeedb 100644
--- a/grpc.t
+++ b/grpc.t
@@ -279,17 +279,12 @@
 ($frame) = grep { $_->{type} eq "HEADERS" } @$frames;
 ok($c = $frame->{headers}{'x-connection'}, 'keepalive 5 - GOAWAY next stream');
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.21.1');
-
 $f->{http_start}('/KeepAlive');
 $f->{data}('Hello');
 $frames = $f->{http_end}();
 ($frame) = grep { $_->{type} eq "HEADERS" } @$frames;
 cmp_ok($frame->{headers}{'x-connection'}, '>', $c, 'keepalive 5 - closed');
 
-}
-
 undef $f;
 $f = grpc();
 
diff --git a/grpc_ssl.t b/grpc_ssl.t
index b686562..759dff4 100644
--- a/grpc_ssl.t
+++ b/grpc_ssl.t
@@ -200,10 +200,6 @@
 my $sum = eval join '+', map { $_->{type} eq "DATA" && $_->{length} } @$frames;
 is($sum, 65535, 'flow control - iws length');
 
-TODO: {
-local $TODO = 'not yet' if ($^O eq 'MSWin32' or $^O eq 'solaris')
-	and !$t->has_version('1.21.2');
-
 $f->{update}(10);
 $f->{update_sid}(10);
 
@@ -220,8 +216,6 @@
 is($frame->{length}, 5, 'flow control - rest length');
 is($frame->{flags}, 1, 'flow control - rest flags');
 
-}
-
 $f->{http_end}();
 
 # upstream keepalive
diff --git a/h2_ssl_proxy_cache.t b/h2_ssl_proxy_cache.t
index 2a9d605..5edd43b 100644
--- a/h2_ssl_proxy_cache.t
+++ b/h2_ssl_proxy_cache.t
@@ -118,12 +118,6 @@
 
 $t->stop();
 
-# "aio_write" is used to produce "open socket ... left in connection" alerts.
-
-$t->todo_alerts() if $t->read_file('nginx.conf') =~ /aio_write on/
-	and $t->read_file('nginx.conf') =~ /aio threads/ and $^O eq 'linux'
-	and !$t->has_version('1.21.4');
-
 ###############################################################################
 
 sub getconn {
diff --git a/ssl.t b/ssl.t
index dc6a832..6b63b6e 100644
--- a/ssl.t
+++ b/ssl.t
@@ -326,15 +326,9 @@
 
 $t->stop();
 
-TODO: {
-local $TODO = 'not yet'
-	if $t->has_version('1.19.5') and !$t->has_version('1.21.1');
-
 like($t->read_file('ssl.log'), qr/^(TLS|SSL)v(\d|\.)+$/m,
 	'log ssl variable on lingering close');
 
-}
-
 like(`grep -F '[crit]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no crit');
 
 ###############################################################################
diff --git a/uwsgi_body.t b/uwsgi_body.t
index b715e5d..d8857c8 100644
--- a/uwsgi_body.t
+++ b/uwsgi_body.t
@@ -92,14 +92,9 @@
 
 # rewrite set is used to cache $content_length early
 
-TODO: {
-local $TODO = 'not yet' unless $t->has_version('1.21.4');
-
 like(http_get_chunked('/', 'foobar'), qr/cl=6 'foobar'/, 'uwsgi chunked');
 like(http_get_chunked('/', ''), qr/cl=0 ''/, 'uwsgi empty chunked');
 
-}
-
 ###############################################################################
 
 sub http_get_length {