Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
96 lines (66 sloc) 1.74 KB
#!perl
use strict;
use warnings;
use Test::More tests => 21;
use FindBin qw($Bin);
use File::Spec;
BEGIN{
eval 'use Fcntl;1' or *O_RDWR = sub(){ 2 };
}
use Fatal qw(unlink);
#use subs 'open';
#sub open(*;$@){
# my($fh, $layers, @arg) = @_;
# no strict 'refs';
# my $st = CORE::open(*$fh, $layers, @arg);
# if(!$st){
# diag "open failed: $!";
# }
# return $st;
#}
my $file = File::Spec->join($Bin, 'util', 'creat');
ok !-e $file, "before open: the file doesn't exist";
my $in;
ok open($in, "<:creat", $file), "open with :creat";
ok -e $file, "after open: the file does exist";
close $in;
unlink $file;
ok open($in, "<:utf8 :creat", $file), "open with :utf8 :creat -> failure";
ok scalar(grep { $_ eq 'utf8' } $in->get_layers()), 'utf8 on';
ok -e $file, "... not exist";
ok open($in, "<:creat :utf8", $file), "open with :creat :utf8";
ok -e $file, "... exist";
close $in;
unlink $file;
ok open($in, "<:raw :creat", $file), "open with :raw :creat";
ok -e $file, "... exist";
close $in;
unlink $file;
ok open($in, "<:unix :creat", $file), "open with :unix :creat";
ok -e $file, "... exist";
close $in;
unlink $file;
ok open($in, "<:crlf :creat", $file), "open with :crlf :creat";
ok -e $file, "... exist";
close $in;
unlink $file;
ok open($in, "<:creat :crlf", $file), "open with :creat :crlf";
ok -e $file, "... exist";
my @layers = $in->get_layers();
ok scalar( grep{ $_ eq 'crlf' } @layers ), "has other layers (in [@layers])";
close $in;
unlink $file;
{
use open IO => ':creat';
ok sysopen($in, $file, O_RDWR), "sysopen with :creat";
ok -e $file, "... exist";
}
eval{
use warnings FATAL => 'layer';
binmode $in, ":creat";
};
like $@, qr/Too late/, "Useless use of :creat";
ok close($in), "close";
END{
unlink $file if defined($file) and -e $file;
}
Something went wrong with that request. Please try again.