6bb6369e5587493b50a8104a3de5b2e55ee37b36
[p5sagit/p5-mst-13.2.git] / t / io / perlio_leaks.t
1 #!perl
2 # ioleaks.t
3
4 use strict;
5 use warnings;
6 use Test::More 'no_plan';
7
8 # :unix   -> not ok
9 # :stdio  -> not ok
10 # :perlio -> ok
11 # :crlf   -> ok
12
13 TODO: {
14     foreach my $layer(qw(:unix :stdio  :perlio :crlf)){
15         my $base_fd = do{ open my $in, '<', $0 or die $!; fileno $in };
16
17         for(1 .. 3){
18             local $TODO;
19             if ($_ > 1 && $layer =~ /^:(unix|stdio)$/) {
20                 $TODO = "[perl #56644] PerlIO resource leaks on open() and then :pop in :unix and :stdio"
21             }
22             open my $fh, "<$layer", $0 or die $!;
23
24             is fileno($fh), $base_fd, $layer;
25             binmode $fh, ':pop';
26         }
27     }
28 }
29