]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/nntpd-tls.t
tests: recommend running create-certs.pl with $^X
[public-inbox.git] / t / nntpd-tls.t
index 4cf53daad8cd0325fdb7e9555ab56bc7a19906d4..1a74924c81a60ea9997c430a35074be90fdc7674 100644 (file)
@@ -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;
 }