X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=t%2Fnntpd-tls.t;h=1a74924c81a60ea9997c430a35074be90fdc7674;hb=b3f2f4645b1d849817d7b38d64db45cd640c9a94;hp=4cf53daad8cd0325fdb7e9555ab56bc7a19906d4;hpb=5769d488526b88a394b4b6741e77dd0e7441d248;p=public-inbox.git diff --git a/t/nntpd-tls.t b/t/nntpd-tls.t index 4cf53daa..1a74924c 100644 --- a/t/nntpd-tls.t +++ b/t/nntpd-tls.t @@ -13,12 +13,14 @@ foreach my $mod (qw(DBD::SQLite IO::Socket::SSL Net::NNTP IO::Poll)) { } Net::NNTP->can('starttls') or plan skip_all => 'Net::NNTP does not support TLS'; +IO::Socket::SSL->VERSION(2.007) or + plan skip_all => 'IO::Socket::SSL <2.007 not supported by Net::NNTP'; my $cert = 'certs/server-cert.pem'; my $key = 'certs/server-key.pem'; unless (-r $key && -r $cert) { plan skip_all => - "certs/ missing for $0, run ./create-certs.perl in certs/"; + "certs/ missing for $0, run $^X ./create-certs.perl in certs/"; } use_ok 'PublicInbox::TLS'; @@ -27,6 +29,9 @@ require './t/common.perl'; require PublicInbox::InboxWritable; require PublicInbox::MIME; require PublicInbox::SearchIdx; +my $need_zlib; +eval { require Compress::Raw::Zlib } or + $need_zlib = 'Compress::Raw::Zlib missing'; my $version = 2; # v2 needs newer git require_git('2.6') if $version >= 2; my $tmpdir = tempdir('pi-nntpd-tls-XXXXXX', TMPDIR => 1, CLEANUP => 1); @@ -112,12 +117,7 @@ for my $args ( my $expect = { $group => [qw(1 1 n)] }; # start negotiating a slow TLS connection - my $slow = IO::Socket::INET->new( - Proto => 'tcp', - PeerAddr => $nntps_addr, - Type => SOCK_STREAM, - Blocking => 0, - ); + my $slow = tcp_connect($nntps, Blocking => 0); $slow = IO::Socket::SSL->start_SSL($slow, SSL_startHandshake => 0, %o); my $slow_done = $slow->connect_SSL; diag('W: connect_SSL early OK, slow client test invalid') if $slow_done; @@ -232,6 +232,14 @@ sub get_capa { die "unexpected: $!" unless defined($r); die 'unexpected EOF' if $r == 0; } until $capa =~ /\.\r\n\z/; + + my $deflate_capa = qr/\r\nCOMPRESS DEFLATE\r\n/; + if ($need_zlib) { + unlike($capa, $deflate_capa, + 'COMPRESS DEFLATE NOT advertised '.$need_zlib); + } else { + like($capa, $deflate_capa, 'COMPRESS DEFLATE advertised'); + } $capa; }