Import Upstream version 0.14
This commit is contained in:
commit
bbff9832e6
|
@ -0,0 +1,33 @@
|
|||
0.14 - Add metadata to Makefile.PL.
|
||||
- Define PERL_NO_GET_CONTEXT
|
||||
|
||||
0.13 - Apply patch from Xavier Guimard. (Ticket 80607)
|
||||
|
||||
0.12 - Apply patch from Diab Jerius. (Ticket #79983)
|
||||
|
||||
0.11 - Add copyright notice to the LICENSE section of the pod.
|
||||
|
||||
0.10 - Add is_FH() - which is just a (more intuitively named) alias for
|
||||
is_arg_ok().
|
||||
Various minor adjustments to enable trouble-free building on pre-5.6.
|
||||
|
||||
0.09 - Correct error that prevents the module from building on perl 5.6.0.
|
||||
|
||||
0.08 - Add is_A() function.
|
||||
Rewrite internal functions to reduce (but not completely eradicate) repetition.
|
||||
|
||||
0.05 - (Hopefully) fix problems with Solaris and some other operating
|
||||
systems re testing for readability.
|
||||
|
||||
0.04 - Can now handle filehandles connected to memory objects.
|
||||
|
||||
0.03 - Rewrite the existing functions so that they die if:
|
||||
1) the received argument is not an open filehandle;
|
||||
or
|
||||
2) the received argument is a filehandle connected to a memory object.
|
||||
|
||||
- Add the is_arg_ok() function.
|
||||
|
||||
0.02 - Minor changes for compatibility with pre-5.6 versions of perl, and some tidying up.
|
||||
|
||||
0.01 - ummm ....
|
|
@ -0,0 +1,230 @@
|
|||
package FileHandle::Fmode;
|
||||
use Fcntl qw(O_ACCMODE O_RDONLY O_WRONLY O_RDWR O_APPEND F_GETFL);
|
||||
use strict;
|
||||
|
||||
require Exporter;
|
||||
require DynaLoader;
|
||||
|
||||
*is_FH = \&is_arg_ok;
|
||||
|
||||
our $VERSION = '0.14';
|
||||
#$VERSION = eval $VERSION;
|
||||
|
||||
@FileHandle::Fmode::ISA = qw(Exporter DynaLoader);
|
||||
|
||||
@FileHandle::Fmode::EXPORT_OK = qw(is_R is_W is_RO is_WO is_RW is_arg_ok is_A is_FH);
|
||||
|
||||
%FileHandle::Fmode::EXPORT_TAGS = (all => [qw
|
||||
(is_R is_W is_RO is_WO is_RW is_arg_ok is_A is_FH)]);
|
||||
|
||||
bootstrap FileHandle::Fmode $VERSION;
|
||||
|
||||
my $is_win32 = $^O =~ /mswin32/i ? 1 : 0;
|
||||
|
||||
sub is_arg_ok {
|
||||
my $fileno = eval{fileno($_[0])};
|
||||
if($@) {return 0}
|
||||
if(defined($fileno)) {
|
||||
if($fileno == -1) {
|
||||
if($] < 5.007) {return 0}
|
||||
return 1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub is_RO {
|
||||
my $fileno = fileno($_[0]);
|
||||
if(!defined( $fileno)) {die "Not an open filehandle"}
|
||||
if( $fileno == -1) {
|
||||
if($] < 5.007) {die "Illegal fileno() return"}
|
||||
if(perliol_readable($_[0]) && !perliol_writable($_[0])) {return 1}
|
||||
return 0;
|
||||
}
|
||||
if($is_win32) {
|
||||
if(win32_fmode($_[0]) & 1) {return 1}
|
||||
return 0;
|
||||
}
|
||||
my $fmode = fcntl($_[0], F_GETFL, my $slush = 0);
|
||||
if(defined($fmode) && ($fmode & O_ACCMODE) == O_RDONLY) {return 1}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub is_WO {
|
||||
my $fileno = fileno($_[0]);
|
||||
if(!defined( $fileno)) {die "Not an open filehandle"}
|
||||
if( $fileno == -1) {
|
||||
if($] < 5.007) {die "Illegal fileno() return"}
|
||||
if(!perliol_readable($_[0]) && perliol_writable($_[0])) {return 1}
|
||||
return 0;
|
||||
}
|
||||
if($is_win32) {
|
||||
if(win32_fmode($_[0]) & 2) {return 1}
|
||||
return 0;
|
||||
}
|
||||
my $fmode = fcntl($_[0], F_GETFL, my $slush = 0);
|
||||
if(defined($fmode) && ($fmode & O_ACCMODE) == O_WRONLY) {return 1}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub is_W {
|
||||
if(is_WO($_[0]) || is_RW($_[0])) {return 1}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub is_R {
|
||||
if(is_RO($_[0]) || is_RW($_[0])) {return 1}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub is_RW {
|
||||
my $fileno = fileno($_[0]);
|
||||
if(!defined( $fileno)) {die "Not an open filehandle"}
|
||||
if( $fileno == -1) {
|
||||
if($] < 5.007) {die "Illegal fileno() return"}
|
||||
if(perliol_readable($_[0]) && perliol_writable($_[0])) {return 1}
|
||||
return 0;
|
||||
}
|
||||
if($is_win32) {
|
||||
if(win32_fmode($_[0]) & 128) {return 1}
|
||||
return 0;
|
||||
}
|
||||
my $fmode = fcntl($_[0], F_GETFL, my $slush = 0);
|
||||
if(defined($fmode) && ($fmode & O_ACCMODE) == O_RDWR) {return 1}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub is_A {
|
||||
my $fileno = fileno($_[0]);
|
||||
if(!defined( $fileno)) {die "Not an open filehandle"}
|
||||
if( $fileno == -1) {
|
||||
if($] < 5.007) {die "Illegal fileno() return"}
|
||||
return is_appendable($_[0]);
|
||||
}
|
||||
if($is_win32) {
|
||||
if($] < 5.006001) {die "is_A not currently implemented on Win32 for pre-5.6.1 perl"}
|
||||
return is_appendable($_[0]);
|
||||
}
|
||||
my $fmode = fcntl($_[0], F_GETFL, my $slush = 0);
|
||||
if($fmode & O_APPEND) {return 1}
|
||||
return 0;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
||||
FileHandle::Fmode - determine whether a filehandle is opened for reading, writing, or both.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
|
||||
use FileHandle::Fmode qw(:all);
|
||||
.
|
||||
.
|
||||
#$fh and FH are open filehandles
|
||||
print is_R($fh), "\n";
|
||||
print is_W(\*FH), "\n";
|
||||
|
||||
=head1 FUNCTIONS
|
||||
|
||||
$bool = is_FH($fh);
|
||||
$bool = is_FH(\*FH);
|
||||
This is just a (more intuitively named) alias for is_arg_ok().
|
||||
Returns 1 if its argument is an open filehandle.
|
||||
Returns 0 if its argument is something other than an open filehandle.
|
||||
|
||||
$bool = is_arg_ok($fh);
|
||||
$bool = is_arg_ok(\*FH);
|
||||
Returns 1 if its argument is an open filehandle.
|
||||
Returns 0 if its argument is something other than an open filehandle.
|
||||
|
||||
Arguments to the following functions must be open filehandles. If
|
||||
any of those functions receive an argument that is not an open
|
||||
filehandle then the function dies with an appropriate error message.
|
||||
To ensure that your script won't suffer such a death, you could first
|
||||
check by passing the argument to is_FH(). Or you could wrap the
|
||||
function call in an eval{} block.
|
||||
|
||||
Note that it may be possible that a filehandle opened for writing may
|
||||
become unwritable - if (eg) the disk becomes full. I don't know how
|
||||
the below functions would be affected by such an event. I suspect
|
||||
that they would be unaware of the change ... but I haven't actually
|
||||
checked.
|
||||
|
||||
$bool = is_R($fh);
|
||||
$bool = is_R(\*FH);
|
||||
Returns true if the filehandle is readable.
|
||||
Else returns false.
|
||||
|
||||
$bool = is_W($fh);
|
||||
$bool = is_W(\*FH);
|
||||
Returns true if the filehandle is writable.
|
||||
Else returns false
|
||||
|
||||
$bool = is_RO($fh);
|
||||
$bool = is_RO(\*FH);
|
||||
Returns true if the filehandle is readable but not writable.
|
||||
Else returns false
|
||||
|
||||
$bool = is_WO($fh);
|
||||
$bool = is_WO(\*FH);
|
||||
Returns true if the filehandle is writable but not readable.
|
||||
Else returns false
|
||||
|
||||
$bool = is_RW($fh);
|
||||
$bool = is_RW(\*FH);
|
||||
Returns true if the filehandle is both readable and writable.
|
||||
Else returns false
|
||||
|
||||
$bool = is_A($fh);
|
||||
$bool = is_A(\*FH);
|
||||
|
||||
Returns true if the filehandle was opened for appending.
|
||||
Else returns false.
|
||||
Not currently implemented on Win32 with pre-5.6.1 versions of perl (and
|
||||
dies with appropriate error message if called on such a platform).
|
||||
|
||||
|
||||
=head1 CREDITS
|
||||
|
||||
|
||||
Inspired (hmmm ... is that the right word ?) by an idea from BrowserUK
|
||||
posted on PerlMonks in response to a question from dragonchild. Win32
|
||||
code (including XS code) provided by BrowserUK. Zaxo presented the idea
|
||||
of using fcntl() in an earlier PerlMonks thread.
|
||||
|
||||
Thanks to dragonchild and BrowserUK for steering this module in
|
||||
the right direction.
|
||||
|
||||
Thanks to attn.steven.kuo for directing me to the perliol routines
|
||||
that enable us to query filehandles attached to memory objects.
|
||||
|
||||
And thanks to Jost Krieger for helping to sort out the test failures that
|
||||
were occurring on Solaris (and some other operating systems too).
|
||||
|
||||
|
||||
=head1 TODO
|
||||
|
||||
I don't know that anyone still runs pre-5.6.1 perl on Win32. However, if
|
||||
someone likes to tell me how is_A() could be made to work on pre-5.6.1
|
||||
Win32 perl, I would be quite happy to implement it.
|
||||
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
|
||||
This program is free software; you may redistribute it and/or
|
||||
modify it under the same terms as Perl itself.
|
||||
Copyright 2006-2008, 2009, 2010, 2012 Sisyphus
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
|
||||
Sisyphus <sisyphus at cpan dot org>
|
||||
|
||||
=cut
|
|
@ -0,0 +1,121 @@
|
|||
|
||||
#ifdef __MINGW32__
|
||||
#ifndef __USE_MINGW_ANSI_STDIO
|
||||
#define __USE_MINGW_ANSI_STDIO 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define PERL_NO_GET_CONTEXT 1
|
||||
|
||||
#include "EXTERN.h"
|
||||
#include "perl.h"
|
||||
#include "XSUB.h"
|
||||
|
||||
|
||||
SV * win32_fmode(pTHX_ FILE *stream ) {
|
||||
|
||||
#ifdef _WIN32
|
||||
/*
|
||||
* Win32 code supplied by BrowserUK
|
||||
* to work aroumd the MS C runtime library's
|
||||
* lack of a function to retrieve the file mode
|
||||
* used when a file is opened
|
||||
*/
|
||||
return newSViv(stream->_flag);
|
||||
#else
|
||||
croak("win32_fmode function works only with Win32");
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef PERL580_OR_LATER
|
||||
|
||||
/*
|
||||
* XS code to deal with filehandles
|
||||
* attached to memory objects supplied
|
||||
* by attn.steven.kuo. (Applies only
|
||||
* to perl 5.8 and later.)
|
||||
*/
|
||||
|
||||
#include <perliol.h>
|
||||
#endif
|
||||
|
||||
SV * perliol_readable(pTHX_ SV * handle) {
|
||||
#ifdef PERL580_OR_LATER
|
||||
IV flags;
|
||||
IO *io;
|
||||
PerlIO *f;
|
||||
io = sv_2io(handle);
|
||||
f = IoIFP(io);
|
||||
if(PerlIOValid(f)){
|
||||
flags = PerlIOBase(f)->flags;
|
||||
if(flags & PERLIO_F_CANREAD) return newSVuv(1);
|
||||
return newSVuv(0);
|
||||
}
|
||||
croak("Couldn't validate the filehandle passed to perliol_readable");
|
||||
#else
|
||||
croak("perliol_readable function works only with perl 5.8 or later");
|
||||
#endif
|
||||
}
|
||||
|
||||
SV * perliol_writable(pTHX_ SV * handle) {
|
||||
#ifdef PERL580_OR_LATER
|
||||
IV flags;
|
||||
IO *io;
|
||||
PerlIO *f;
|
||||
io = sv_2io(handle);
|
||||
f = IoIFP(io);
|
||||
if(PerlIOValid(f)){
|
||||
flags = PerlIOBase(f)->flags;
|
||||
if(flags & PERLIO_F_CANWRITE) return newSVuv(1);
|
||||
return newSVuv(0);
|
||||
}
|
||||
croak("Couldn't validate the filehandle passed to perliol_writable");
|
||||
#else
|
||||
croak("perliol_writable function works only with perl 5.8 or later");
|
||||
#endif
|
||||
}
|
||||
|
||||
SV * is_appendable(pTHX_ SV * handle) {
|
||||
#ifdef PERL561_OR_LATER
|
||||
IO *io;
|
||||
io = sv_2io(handle);
|
||||
if (IoTYPE(io) == IoTYPE_APPEND) return newSVuv(1);
|
||||
return newSVuv(0);
|
||||
#else
|
||||
croak("is_appendable function implemented only with perl 5.6.1 or later");
|
||||
#endif
|
||||
}
|
||||
|
||||
MODULE = FileHandle::Fmode PACKAGE = FileHandle::Fmode
|
||||
|
||||
PROTOTYPES: DISABLE
|
||||
|
||||
|
||||
SV *
|
||||
win32_fmode (stream)
|
||||
FILE * stream
|
||||
CODE:
|
||||
RETVAL = win32_fmode (aTHX_ stream);
|
||||
OUTPUT: RETVAL
|
||||
|
||||
SV *
|
||||
perliol_readable (handle)
|
||||
SV * handle
|
||||
CODE:
|
||||
RETVAL = perliol_readable (aTHX_ handle);
|
||||
OUTPUT: RETVAL
|
||||
|
||||
SV *
|
||||
perliol_writable (handle)
|
||||
SV * handle
|
||||
CODE:
|
||||
RETVAL = perliol_writable (aTHX_ handle);
|
||||
OUTPUT: RETVAL
|
||||
|
||||
SV *
|
||||
is_appendable (handle)
|
||||
SV * handle
|
||||
CODE:
|
||||
RETVAL = is_appendable (aTHX_ handle);
|
||||
OUTPUT: RETVAL
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
MANIFEST
|
||||
README
|
||||
CHANGES
|
||||
Makefile.PL
|
||||
Fmode.pm
|
||||
Fmode.xs
|
||||
t/basic.t
|
||||
t/binmode.t
|
||||
t/pod.t
|
||||
META.yml Module YAML meta-data (added by MakeMaker)
|
||||
META.json Module JSON meta-data (added by MakeMaker)
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"abstract" : "unknown",
|
||||
"author" : [
|
||||
"unknown"
|
||||
],
|
||||
"dynamic_config" : 1,
|
||||
"generated_by" : "ExtUtils::MakeMaker version 6.6302, CPAN::Meta::Converter version 2.120630",
|
||||
"license" : [
|
||||
"perl_5"
|
||||
],
|
||||
"meta-spec" : {
|
||||
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
|
||||
"version" : "2"
|
||||
},
|
||||
"name" : "FileHandle-Fmode",
|
||||
"no_index" : {
|
||||
"directory" : [
|
||||
"t",
|
||||
"inc"
|
||||
]
|
||||
},
|
||||
"release_status" : "stable",
|
||||
"resources" : {
|
||||
"repository" : {
|
||||
"type" : "git",
|
||||
"url" : "https://github.com/sisyphus/filehandle-fmode.git",
|
||||
"web" : "https://github.com/sisyphus/filehandle-fmode"
|
||||
}
|
||||
},
|
||||
"version" : "0.14"
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
abstract: unknown
|
||||
author:
|
||||
- unknown
|
||||
build_requires: {}
|
||||
dynamic_config: 1
|
||||
generated_by: 'ExtUtils::MakeMaker version 6.6302, CPAN::Meta::Converter version 2.120630'
|
||||
license: perl
|
||||
meta-spec:
|
||||
url: http://module-build.sourceforge.net/META-spec-v1.4.html
|
||||
version: 1.4
|
||||
name: FileHandle-Fmode
|
||||
no_index:
|
||||
directory:
|
||||
- t
|
||||
- inc
|
||||
resources:
|
||||
repository: https://github.com/sisyphus/filehandle-fmode.git
|
||||
version: 0.14
|
|
@ -0,0 +1,23 @@
|
|||
use ExtUtils::MakeMaker;
|
||||
|
||||
my %options =
|
||||
(
|
||||
NAME => 'FileHandle::Fmode',
|
||||
VERSION_FROM => 'Fmode.pm',
|
||||
LICENSE => 'perl',
|
||||
DEFINE => $] < 5.008 ? $] < 5.006001 ? '-DOLDPERL' : '-DPERL561_OR_LATER' : '-DPERL580_OR_LATER -DPERL561_OR_LATER',
|
||||
clean => { FILES => 'temp.txt temp2.txt' },
|
||||
META_MERGE => {
|
||||
'meta-spec' => { version => 2 },
|
||||
resources => {
|
||||
repository => {
|
||||
type => 'git',
|
||||
url => 'https://github.com/sisyphus/filehandle-fmode.git',
|
||||
web => 'https://github.com/sisyphus/filehandle-fmode',
|
||||
},
|
||||
},
|
||||
},
|
||||
);
|
||||
|
||||
WriteMakefile(%options);
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
Use this module to check whether a filehandle is readable, writable, or
|
||||
readable/writable.
|
||||
|
||||
Build in the usual way:
|
||||
|
||||
perl Makefile.PL
|
||||
make test
|
||||
make install
|
||||
|
||||
Cheers,
|
||||
Rob
|
|
@ -0,0 +1,357 @@
|
|||
use strict;
|
||||
use FileHandle::Fmode qw(:all);
|
||||
|
||||
# Same tests as binmode.t - but no binmode() on the handles
|
||||
|
||||
print "1..52\n";
|
||||
|
||||
my $no_skip = ($] < 5.006001 && $^O =~ /mswin32/i) ? 0 : 1;
|
||||
|
||||
my ($rd, $wr, $rw, $one, $undef, $null, $mem, $var);
|
||||
|
||||
open(RD, "Makefile.PL") or die "Can't open Makefile.PL for reading: $!";
|
||||
unless($] < 5.006) {open($rd, "Fmode.pm") or die "Can't open Fmode.pm for reading: $!";}
|
||||
else {$rd = \*RD}
|
||||
|
||||
#binmode(RD);
|
||||
#binmode($rd);
|
||||
|
||||
if(is_FH(\*RD) && is_arg_ok(\*RD) && is_R(\*RD) && is_RO(\*RD) && !is_W(\*RD) && !is_WO(\*RD) && !is_RW(\*RD)) {print "ok 1\n"}
|
||||
else {print "not ok 1\n"}
|
||||
|
||||
if(is_FH($rd) && is_arg_ok($rd) && is_R($rd) && is_RO($rd) && !is_W($rd) && !is_WO($rd) && !is_RW($rd)) {print "ok 2\n"}
|
||||
else {print "not ok 2\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(!is_A(\*RD) && !is_A($rd)) {print "ok 3\n"}
|
||||
else {print "not ok 3\n"}
|
||||
}
|
||||
else {print "ok 3 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
close(RD) or die "Can't close Makefile.PL after opening for reading: $!";
|
||||
unless($] < 5.006) {close($rd) or die "Can't close Fmode.pm after opening for reading: $!";}
|
||||
|
||||
open(RD, "<Makefile.PL") or die "Can't open makefile.PL for reading: $!";
|
||||
unless($] < 5.006) {open($rd, "<Fmode.pm") or die "Can't open Fmode.pm for reading: $!";}
|
||||
else {$rd = \*RD}
|
||||
|
||||
#binmode(RD);
|
||||
#binmode($rd);
|
||||
|
||||
if(is_FH(\*RD) && is_arg_ok(\*RD) && is_R(\*RD) && is_RO(\*RD) && !is_W(\*RD) && !is_WO(\*RD) && !is_RW(\*RD)) {print "ok 4\n"}
|
||||
else {print "not ok 4\n"}
|
||||
|
||||
if(is_FH($rd) && is_arg_ok($rd) && is_R($rd) && is_RO($rd) && !is_W($rd) && !is_WO($rd) && !is_RW($rd)) {print "ok 5\n"}
|
||||
else {print "not ok 5\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(!is_A(\*RD) && !is_A($rd)) {print "ok 6\n"}
|
||||
else {print "not ok 6\n"}
|
||||
}
|
||||
else {print "ok 6 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
close(RD) or die "Can't close Makefile.PL after opening for reading: $!";
|
||||
unless($] < 5.006) {close($rd) or die "Can't close Fmode.pm after opening for reading: $!";}
|
||||
|
||||
#####################################################
|
||||
|
||||
open(WR, ">temp.txt") or die "Can't open temp.txt for writing: $!";
|
||||
unless($] < 5.006) {open($wr, ">temp2.txt") or die "Can't open temp2.txt for writing: $!";}
|
||||
else {$wr = \*WR}
|
||||
|
||||
#binmode(WR);
|
||||
#binmode($wr);
|
||||
|
||||
if(is_FH(\*WR) && is_arg_ok(\*WR) && is_W(\*WR) && is_WO(\*WR)) {print "ok 7\n"}
|
||||
else {print "not ok 7\n"}
|
||||
|
||||
if(is_FH($wr) && is_arg_ok($wr) && is_W($wr) && is_WO($wr)) {print "ok 8\n"}
|
||||
else {print "not ok 8\n"}
|
||||
|
||||
if(!is_RO(\*WR) && !is_R(\*WR) && !is_RW(\*WR)) {print "ok 9\n"}
|
||||
else {print "not ok 9\n"}
|
||||
|
||||
if(!is_RO($wr) && !is_R($wr) && !is_RW($wr)) {print "ok 10\n"}
|
||||
else {print "not ok 10\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(!is_A(\*WR) && !is_A($wr)) {print "ok 11\n"}
|
||||
else {print "not ok 11\n"}
|
||||
}
|
||||
else {print "ok 11 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
#####################################################
|
||||
|
||||
close(WR) or die "Can't close temp.txt after opening for writing: $!";
|
||||
unless($] < 5.006) {close($wr) or die "Can't close temp2.txt after opening for writing: $!";}
|
||||
|
||||
open(WR, ">>temp.txt") or die "Can't open temp.txt for writing: $!";
|
||||
unless($] < 5.006) {open($wr, ">>temp2.txt") or die "Can't open temp2.txt for writing: $!";}
|
||||
else {$wr = \*WR}
|
||||
|
||||
#binmode(WR);
|
||||
#binmode($wr);
|
||||
|
||||
if(is_FH(\*WR) && is_arg_ok(\*WR) && is_W(\*WR) && is_WO(\*WR)) {print "ok 12\n"}
|
||||
else {print "not ok 12\n"}
|
||||
|
||||
if(is_FH($wr) && is_arg_ok($wr) && is_W($wr) && is_WO($wr)) {print "ok 13\n"}
|
||||
else {print "not ok 13\n"}
|
||||
|
||||
if(!is_RO(\*WR) && !is_R(\*WR) && !is_RW(\*WR)) {print "ok 14\n"}
|
||||
else {print "not ok 14\n"}
|
||||
|
||||
if(!is_RO($wr) && !is_R($wr) && !is_RW($wr)) {print "ok 15\n"}
|
||||
else {print "not ok 15\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(is_A(\*WR) && is_A($wr)) {print "ok 16\n"}
|
||||
else {print "not ok 16\n"}
|
||||
}
|
||||
else {print "ok 16 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
close(WR) or die "Can't close temp.txt after opening for appending: $!";
|
||||
unless($] < 5.006) {close($wr) or die "Can't close temp2.txt after opening for appending: $!";}
|
||||
|
||||
#####################################################
|
||||
|
||||
open(RW, "+>temp.txt") or die "Can't open temp.txt for reading/writing: $!";
|
||||
unless($] < 5.006) {open($rw, "+>temp2.txt") or die "Can't open temp2.txt for reading/writing: $!";}
|
||||
else {$rw = \*RW}
|
||||
|
||||
#binmode(RW);
|
||||
#binmode($rw);
|
||||
|
||||
if(is_FH(\*RW) && is_arg_ok(\*RW) && is_RW(\*RW) && is_W(\*RW) && is_R(\*RW)) {print "ok 17\n"}
|
||||
else {print "not ok 17\n"}
|
||||
|
||||
if(is_FH($rw) && is_arg_ok($rw) && is_RW($rw) && is_W($rw) && is_R($rw)) {print "ok 18\n"}
|
||||
else {print "not ok 18\n"}
|
||||
|
||||
if(!is_RO(\*RW) && !is_WO(\*RW)) {print "ok 19\n"}
|
||||
else {print "not ok 19\n"}
|
||||
|
||||
if(!is_RO($rw) && !is_WO($rw)) {print "ok 20\n"}
|
||||
else {print "not ok 20\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(!is_A(\*RW) && !is_A($rw)) {print "ok 21\n"}
|
||||
else {print "not ok 21\n"}
|
||||
}
|
||||
else {print "ok 21 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
close(RW) or die "Can't close temp.txt after opening for reading/writing: $!";
|
||||
unless($] < 5.006) {close($rw) or die "Can't close temp2.txt after opening for reading/writing: $!";}
|
||||
|
||||
#####################################################
|
||||
|
||||
open(RW, "+<temp.txt") or die "Can't open temp.txt for reading/writing: $!";
|
||||
unless($] < 5.006) {open($rw, "+<temp2.txt") or die "Can't open temp2.txt for reading/writing: $!";}
|
||||
else {$rw = \*RW}
|
||||
|
||||
#binmode(RW);
|
||||
#binmode($rw);
|
||||
|
||||
if(is_FH(\*RW) && is_arg_ok(\*RW) && is_RW(\*RW) && is_W(\*RW) && is_R(\*RW)) {print "ok 22\n"}
|
||||
else {print "not ok 22\n"}
|
||||
|
||||
if(is_FH($rw) && is_arg_ok($rw) && is_RW($rw) && is_W($rw) && is_R($rw)) {print "ok 23\n"}
|
||||
else {print "not ok 23\n"}
|
||||
|
||||
if(!is_RO(\*RW) && !is_WO(\*RW)) {print "ok 24\n"}
|
||||
else {print "not ok 24\n"}
|
||||
|
||||
if(!is_RO($rw) && !is_WO($rw)) {print "ok 25\n"}
|
||||
else {print "not ok 25\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(!is_A(\*RW) && !is_A($rw)) {print "ok 26\n"}
|
||||
else {print "not ok 26\n"}
|
||||
}
|
||||
else {print "ok 26 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
close(RW) or die "Can't close temp.txt after opening for reading/writing: $!";
|
||||
unless($] < 5.006) {close($rw) or die "Can't close temp2.txt after opening for reading/writing: $!";}
|
||||
|
||||
#####################################################
|
||||
|
||||
open(RW, "+>>temp.txt") or die "Can't open temp.txt for reading/writing: $!";
|
||||
unless($] < 5.006) {open($rw, "+>>temp2.txt") or die "Can't open temp2.txt for reading/writing: $!";}
|
||||
else {$rw = \*RW}
|
||||
|
||||
#binmode(RW);
|
||||
#binmode($rw);
|
||||
|
||||
if(is_FH(\*RW) && is_arg_ok(\*RW) && is_RW(\*RW) && is_W(\*RW) && is_R(\*RW)) {print "ok 27\n"}
|
||||
else {print "not ok 27\n"}
|
||||
|
||||
if(is_FH($rw) && is_arg_ok($rw) && is_RW($rw) && is_W($rw) && is_R($rw)) {print "ok 28\n"}
|
||||
else {print "not ok 28\n"}
|
||||
|
||||
if(!is_RO(\*RW) && !is_WO(\*RW)){print "ok 29\n"}
|
||||
else {print "not ok 29\n"}
|
||||
|
||||
if(!is_RO($rw) && !is_WO($rw)) {print "ok 30\n"}
|
||||
else {print "not ok 30\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(is_A(\*RW) && is_A($rw)) {print "ok 31\n"}
|
||||
else {print "not ok 31\n"}
|
||||
}
|
||||
else {print "ok 31 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
close(RW) or die "Can't close temp.txt after opening for reading/writing: $!";
|
||||
unless($] < 5.006) {close($rw) or die "Can't close temp2.txt after opening for reading/writing: $!";}
|
||||
|
||||
eval {is_R($undef)};
|
||||
if($@ && !is_arg_ok($undef)){print "ok 32\n"}
|
||||
else {print "not ok 32\n"}
|
||||
|
||||
eval {is_RO($undef)};
|
||||
if($@){print "ok 33\n"}
|
||||
else {print "not ok 33\n"}
|
||||
|
||||
eval {is_W($undef)};
|
||||
if($@){print "ok 34\n"}
|
||||
else {print "not ok 34\n"}
|
||||
|
||||
eval {is_WO($undef)};
|
||||
if($@){print "ok 35\n"}
|
||||
else {print "not ok 35\n"}
|
||||
|
||||
eval {is_RW($undef)};
|
||||
if($@){print "ok 36\n"}
|
||||
else {print "not ok 36\n"}
|
||||
|
||||
if($no_skip){
|
||||
eval {is_A($undef)};
|
||||
if($@){print "ok 37\n"}
|
||||
else {print "not ok 37\n"}
|
||||
}
|
||||
else {print "ok 37 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
$one = 1;
|
||||
|
||||
eval {is_R($one)};
|
||||
if($@ && !is_arg_ok($one)){print "ok 38\n"}
|
||||
else {print "not ok 38\n"}
|
||||
|
||||
eval {is_RO($one)};
|
||||
if($@){print "ok 39\n"}
|
||||
else {print "not ok 39\n"}
|
||||
|
||||
eval {is_W($one)};
|
||||
if($@){print "ok 40\n"}
|
||||
else {print "not ok 40\n"}
|
||||
|
||||
eval {is_WO($one)};
|
||||
if($@){print "ok 41\n"}
|
||||
else {print "not ok 41\n"}
|
||||
|
||||
eval {is_RW($one)};
|
||||
if($@){print "ok 42\n"}
|
||||
else {print "not ok 42\n"}
|
||||
|
||||
if($no_skip){
|
||||
eval {is_A($one)};
|
||||
if($@){print "ok 43\n"}
|
||||
else {print "not ok 43\n"}
|
||||
}
|
||||
else {print "ok 43 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
if($] >= 5.007) {
|
||||
|
||||
$var = ''; # Avoid "uninitialised" warnings.
|
||||
|
||||
eval q{open($mem, '<', \$var) or die "Can't open memory object: $!";};
|
||||
die $@ if $@;
|
||||
#binmode($mem);
|
||||
if(is_FH($mem) && is_arg_ok($mem) && is_R($mem) && is_RO($mem) && !is_W($mem) && !is_WO($mem) && !is_RW($mem) && !is_A($mem)) {print "ok 44\n"}
|
||||
else {print "not ok 44\n"}
|
||||
close($mem) or die "Can't close memory object: $!";
|
||||
|
||||
eval q{open($mem, '>', \$var) or die "Can't open memory object: $!";};
|
||||
die $@ if $@;
|
||||
#binmode($mem);
|
||||
if(is_arg_ok($mem) && !is_R($mem) && !is_RO($mem) && is_W($mem) && is_WO($mem) && !is_RW($mem) && !is_A($mem)) {print "ok 45\n"}
|
||||
else {print "not ok 45\n"}
|
||||
close($mem) or die "Can't close memory object: $!";
|
||||
|
||||
eval q{open($mem, '>>', \$var) or die "Can't open memory object: $!";};
|
||||
die $@ if $@;
|
||||
#binmode($mem);
|
||||
if(is_FH($mem) && is_arg_ok($mem) && !is_R($mem) && !is_RO($mem) && is_W($mem) && is_WO($mem) && !is_RW($mem) && is_A($mem)) {print "ok 46\n"}
|
||||
else {print "not ok 46\n"}
|
||||
close($mem) or die "Can't close memory object: $!";
|
||||
|
||||
eval q{open($mem, '+>>', \$var) or die "Can't open memory object: $!";};
|
||||
die $@ if $@;
|
||||
#binmode($mem);
|
||||
if(is_arg_ok($mem) && is_R($mem) && !is_RO($mem) && is_W($mem) && !is_WO($mem) && is_RW($mem) && is_A($mem)) {print "ok 47\n"}
|
||||
else {print "not ok 47\n"}
|
||||
close($mem) or die "Can't close memory object: $!";
|
||||
|
||||
|
||||
eval q{open($mem, '+>', \$var) or die "Can't open memory object: $!";};
|
||||
die $@ if $@;
|
||||
#binmode($mem);
|
||||
if(is_FH($mem) && is_arg_ok($mem) && is_R($mem) && !is_RO($mem) && is_W($mem) && !is_WO($mem) && is_RW($mem) && !is_A($mem)) {print "ok 48\n"}
|
||||
else {print "not ok 48\n"}
|
||||
close($mem) or die "Can't close memory object: $!";
|
||||
|
||||
eval q{open($mem, '+<', \$var) or die "Can't open memory object: $!";};
|
||||
die $@ if $@;
|
||||
#binmode($mem);
|
||||
if(is_FH($mem) && is_arg_ok($mem) && is_R($mem) && !is_RO($mem) && is_W($mem) && !is_WO($mem) && is_RW($mem) && !is_A($mem)) {print "ok 49\n"}
|
||||
else {print "not ok 49\n"}
|
||||
close($mem) or die "Can't close memory object: $!";
|
||||
|
||||
}
|
||||
else {
|
||||
print "ok 44 - skipped - pre-5.8 perl\n";
|
||||
print "ok 45 - skipped - pre-5.8 perl\n";
|
||||
print "ok 46 - skipped - pre-5.8 perl\n";
|
||||
print "ok 47 - skipped - pre-5.8 perl\n";
|
||||
print "ok 48 - skipped - pre-5.8 perl\n";
|
||||
print "ok 49 - skipped - pre-5.8 perl\n";
|
||||
}
|
||||
|
||||
open(RD, "Makefile.PL") or die "Can't open Makefile.PL for reading: $!";
|
||||
#binmode(RD);
|
||||
eval{FileHandle::Fmode::perliol_readable(\*RD);};
|
||||
|
||||
if($] < 5.007) {
|
||||
if($@ =~ /perliol_readable/) {print "ok 50\n"}
|
||||
else {print "not ok 50\n"}
|
||||
}
|
||||
else {
|
||||
if($@) {print "not ok 50\n"}
|
||||
else {print "ok 50\n"}
|
||||
}
|
||||
|
||||
close(RD) or die "Can't close Makefile.PL after opening for reading: $!";
|
||||
|
||||
open(WR, ">temp2.txt") or die "Can't open temp2.txt for writing: $!";
|
||||
#binmode(WR);
|
||||
eval{FileHandle::Fmode::perliol_writable(\*WR);};
|
||||
|
||||
if($] < 5.007) {
|
||||
if($@ =~ /perliol_writable/) {print "ok 51\n"}
|
||||
else {print "not ok 51\n"}
|
||||
}
|
||||
else {
|
||||
if($@) {print "not ok 51\n"}
|
||||
else {print "ok 51\n"}
|
||||
}
|
||||
|
||||
eval{FileHandle::Fmode::win32_fmode(\*WR);};
|
||||
if($^O =~ /mswin32/i) {
|
||||
if($@) {print "not ok 52\n"}
|
||||
else {print "ok 52\n"}
|
||||
}
|
||||
else {
|
||||
if($@ =~ /win32_fmode/) {print "ok 52\n"}
|
||||
else {print "not ok 52\n"}
|
||||
}
|
||||
|
||||
close(WR) or die "Can't close temp2.txt after opening for writing: $!";
|
|
@ -0,0 +1,357 @@
|
|||
use strict;
|
||||
use FileHandle::Fmode qw(:all);
|
||||
|
||||
# Same tests as basic.t - but binmode() on the handles
|
||||
|
||||
print "1..52\n";
|
||||
|
||||
my $no_skip = ($] < 5.006001 && $^O =~ /mswin32/i) ? 0 : 1;
|
||||
|
||||
my ($rd, $wr, $rw, $one, $undef, $null, $mem, $var);
|
||||
|
||||
open(RD, "Makefile.PL") or die "Can't open Makefile.PL for reading: $!";
|
||||
unless($] < 5.006) {open($rd, "Fmode.pm") or die "Can't open Fmode.pm for reading: $!";}
|
||||
else {$rd = \*RD}
|
||||
|
||||
binmode(RD);
|
||||
binmode($rd);
|
||||
|
||||
if(is_FH(\*RD) && is_arg_ok(\*RD) && is_R(\*RD) && is_RO(\*RD) && !is_W(\*RD) && !is_WO(\*RD) && !is_RW(\*RD)) {print "ok 1\n"}
|
||||
else {print "not ok 1\n"}
|
||||
|
||||
if(is_FH($rd) && is_arg_ok($rd) && is_R($rd) && is_RO($rd) && !is_W($rd) && !is_WO($rd) && !is_RW($rd)) {print "ok 2\n"}
|
||||
else {print "not ok 2\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(!is_A(\*RD) && !is_A($rd)) {print "ok 3\n"}
|
||||
else {print "not ok 3\n"}
|
||||
}
|
||||
else {print "ok 3 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
close(RD) or die "Can't close Makefile.PL after opening for reading: $!";
|
||||
unless($] < 5.006) {close($rd) or die "Can't close Fmode.pm after opening for reading: $!";}
|
||||
|
||||
open(RD, "<Makefile.PL") or die "Can't open makefile.PL for reading: $!";
|
||||
unless($] < 5.006) {open($rd, "<Fmode.pm") or die "Can't open Fmode.pm for reading: $!";}
|
||||
else {$rd = \*RD}
|
||||
|
||||
binmode(RD);
|
||||
binmode($rd);
|
||||
|
||||
if(is_FH(\*RD) && is_arg_ok(\*RD) && is_R(\*RD) && is_RO(\*RD) && !is_W(\*RD) && !is_WO(\*RD) && !is_RW(\*RD)) {print "ok 4\n"}
|
||||
else {print "not ok 4\n"}
|
||||
|
||||
if(is_FH($rd) && is_arg_ok($rd) && is_R($rd) && is_RO($rd) && !is_W($rd) && !is_WO($rd) && !is_RW($rd)) {print "ok 5\n"}
|
||||
else {print "not ok 5\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(!is_A(\*RD) && !is_A($rd)) {print "ok 6\n"}
|
||||
else {print "not ok 6\n"}
|
||||
}
|
||||
else {print "ok 6 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
close(RD) or die "Can't close Makefile.PL after opening for reading: $!";
|
||||
unless($] < 5.006) {close($rd) or die "Can't close Fmode.pm after opening for reading: $!";}
|
||||
|
||||
#####################################################
|
||||
|
||||
open(WR, ">temp.txt") or die "Can't open temp.txt for writing: $!";
|
||||
unless($] < 5.006) {open($wr, ">temp2.txt") or die "Can't open temp2.txt for writing: $!";}
|
||||
else {$wr = \*WR}
|
||||
|
||||
binmode(WR);
|
||||
binmode($wr);
|
||||
|
||||
if(is_FH(\*WR) && is_arg_ok(\*WR) && is_W(\*WR) && is_WO(\*WR)) {print "ok 7\n"}
|
||||
else {print "not ok 7\n"}
|
||||
|
||||
if(is_FH($wr) && is_arg_ok($wr) && is_W($wr) && is_WO($wr)) {print "ok 8\n"}
|
||||
else {print "not ok 8\n"}
|
||||
|
||||
if(!is_RO(\*WR) && !is_R(\*WR) && !is_RW(\*WR)) {print "ok 9\n"}
|
||||
else {print "not ok 9\n"}
|
||||
|
||||
if(!is_RO($wr) && !is_R($wr) && !is_RW($wr)) {print "ok 10\n"}
|
||||
else {print "not ok 10\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(!is_A(\*WR) && !is_A($wr)) {print "ok 11\n"}
|
||||
else {print "not ok 11\n"}
|
||||
}
|
||||
else {print "ok 11 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
#####################################################
|
||||
|
||||
close(WR) or die "Can't close temp.txt after opening for writing: $!";
|
||||
unless($] < 5.006) {close($wr) or die "Can't close temp2.txt after opening for writing: $!";}
|
||||
|
||||
open(WR, ">>temp.txt") or die "Can't open temp.txt for writing: $!";
|
||||
unless($] < 5.006) {open($wr, ">>temp2.txt") or die "Can't open temp2.txt for writing: $!";}
|
||||
else {$wr = \*WR}
|
||||
|
||||
binmode(WR);
|
||||
binmode($wr);
|
||||
|
||||
if(is_FH(\*WR) && is_arg_ok(\*WR) && is_W(\*WR) && is_WO(\*WR)) {print "ok 12\n"}
|
||||
else {print "not ok 12\n"}
|
||||
|
||||
if(is_FH($wr) && is_arg_ok($wr) && is_W($wr) && is_WO($wr)) {print "ok 13\n"}
|
||||
else {print "not ok 13\n"}
|
||||
|
||||
if(!is_RO(\*WR) && !is_R(\*WR) && !is_RW(\*WR)) {print "ok 14\n"}
|
||||
else {print "not ok 14\n"}
|
||||
|
||||
if(!is_RO($wr) && !is_R($wr) && !is_RW($wr)) {print "ok 15\n"}
|
||||
else {print "not ok 15\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(is_A(\*WR) && is_A($wr)) {print "ok 16\n"}
|
||||
else {print "not ok 16\n"}
|
||||
}
|
||||
else {print "ok 16 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
close(WR) or die "Can't close temp.txt after opening for appending: $!";
|
||||
unless($] < 5.006) {close($wr) or die "Can't close temp2.txt after opening for appending: $!";}
|
||||
|
||||
#####################################################
|
||||
|
||||
open(RW, "+>temp.txt") or die "Can't open temp.txt for reading/writing: $!";
|
||||
unless($] < 5.006) {open($rw, "+>temp2.txt") or die "Can't open temp2.txt for reading/writing: $!";}
|
||||
else {$rw = \*RW}
|
||||
|
||||
binmode(RW);
|
||||
binmode($rw);
|
||||
|
||||
if(is_FH(\*RW) && is_arg_ok(\*RW) && is_RW(\*RW) && is_W(\*RW) && is_R(\*RW)) {print "ok 17\n"}
|
||||
else {print "not ok 17\n"}
|
||||
|
||||
if(is_FH($rw) && is_arg_ok($rw) && is_RW($rw) && is_W($rw) && is_R($rw)) {print "ok 18\n"}
|
||||
else {print "not ok 18\n"}
|
||||
|
||||
if(!is_RO(\*RW) && !is_WO(\*RW)) {print "ok 19\n"}
|
||||
else {print "not ok 19\n"}
|
||||
|
||||
if(!is_RO($rw) && !is_WO($rw)) {print "ok 20\n"}
|
||||
else {print "not ok 20\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(!is_A(\*RW) && !is_A($rw)) {print "ok 21\n"}
|
||||
else {print "not ok 21\n"}
|
||||
}
|
||||
else {print "ok 21 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
close(RW) or die "Can't close temp.txt after opening for reading/writing: $!";
|
||||
unless($] < 5.006) {close($rw) or die "Can't close temp2.txt after opening for reading/writing: $!";}
|
||||
|
||||
#####################################################
|
||||
|
||||
open(RW, "+<temp.txt") or die "Can't open temp.txt for reading/writing: $!";
|
||||
unless($] < 5.006) {open($rw, "+<temp2.txt") or die "Can't open temp2.txt for reading/writing: $!";}
|
||||
else {$rw = \*RW}
|
||||
|
||||
binmode(RW);
|
||||
binmode($rw);
|
||||
|
||||
if(is_FH(\*RW) && is_arg_ok(\*RW) && is_RW(\*RW) && is_W(\*RW) && is_R(\*RW)) {print "ok 22\n"}
|
||||
else {print "not ok 22\n"}
|
||||
|
||||
if(is_FH($rw) && is_arg_ok($rw) && is_RW($rw) && is_W($rw) && is_R($rw)) {print "ok 23\n"}
|
||||
else {print "not ok 23\n"}
|
||||
|
||||
if(!is_RO(\*RW) && !is_WO(\*RW)) {print "ok 24\n"}
|
||||
else {print "not ok 24\n"}
|
||||
|
||||
if(!is_RO($rw) && !is_WO($rw)) {print "ok 25\n"}
|
||||
else {print "not ok 25\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(!is_A(\*RW) && !is_A($rw)) {print "ok 26\n"}
|
||||
else {print "not ok 26\n"}
|
||||
}
|
||||
else {print "ok 26 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
close(RW) or die "Can't close temp.txt after opening for reading/writing: $!";
|
||||
unless($] < 5.006) {close($rw) or die "Can't close temp2.txt after opening for reading/writing: $!";}
|
||||
|
||||
#####################################################
|
||||
|
||||
open(RW, "+>>temp.txt") or die "Can't open temp.txt for reading/writing: $!";
|
||||
unless($] < 5.006) {open($rw, "+>>temp2.txt") or die "Can't open temp2.txt for reading/writing: $!";}
|
||||
else {$rw = \*RW}
|
||||
|
||||
binmode(RW);
|
||||
binmode($rw);
|
||||
|
||||
if(is_FH(\*RW) && is_arg_ok(\*RW) && is_RW(\*RW) && is_W(\*RW) && is_R(\*RW)) {print "ok 27\n"}
|
||||
else {print "not ok 27\n"}
|
||||
|
||||
if(is_FH($rw) && is_arg_ok($rw) && is_RW($rw) && is_W($rw) && is_R($rw)) {print "ok 28\n"}
|
||||
else {print "not ok 28\n"}
|
||||
|
||||
if(!is_RO(\*RW) && !is_WO(\*RW)){print "ok 29\n"}
|
||||
else {print "not ok 29\n"}
|
||||
|
||||
if(!is_RO($rw) && !is_WO($rw)) {print "ok 30\n"}
|
||||
else {print "not ok 30\n"}
|
||||
|
||||
if($no_skip) {
|
||||
if(is_A(\*RW) && is_A($rw)) {print "ok 31\n"}
|
||||
else {print "not ok 31\n"}
|
||||
}
|
||||
else {print "ok 31 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
close(RW) or die "Can't close temp.txt after opening for reading/writing: $!";
|
||||
unless($] < 5.006) {close($rw) or die "Can't close temp2.txt after opening for reading/writing: $!";}
|
||||
|
||||
eval {is_R($undef)};
|
||||
if($@ && !is_arg_ok($undef)){print "ok 32\n"}
|
||||
else {print "not ok 32\n"}
|
||||
|
||||
eval {is_RO($undef)};
|
||||
if($@){print "ok 33\n"}
|
||||
else {print "not ok 33\n"}
|
||||
|
||||
eval {is_W($undef)};
|
||||
if($@){print "ok 34\n"}
|
||||
else {print "not ok 34\n"}
|
||||
|
||||
eval {is_WO($undef)};
|
||||
if($@){print "ok 35\n"}
|
||||
else {print "not ok 35\n"}
|
||||
|
||||
eval {is_RW($undef)};
|
||||
if($@){print "ok 36\n"}
|
||||
else {print "not ok 36\n"}
|
||||
|
||||
if($no_skip){
|
||||
eval {is_A($undef)};
|
||||
if($@){print "ok 37\n"}
|
||||
else {print "not ok 37\n"}
|
||||
}
|
||||
else {print "ok 37 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
$one = 1;
|
||||
|
||||
eval {is_R($one)};
|
||||
if($@ && !is_arg_ok($one)){print "ok 38\n"}
|
||||
else {print "not ok 38\n"}
|
||||
|
||||
eval {is_RO($one)};
|
||||
if($@){print "ok 39\n"}
|
||||
else {print "not ok 39\n"}
|
||||
|
||||
eval {is_W($one)};
|
||||
if($@){print "ok 40\n"}
|
||||
else {print "not ok 40\n"}
|
||||
|
||||
eval {is_WO($one)};
|
||||
if($@){print "ok 41\n"}
|
||||
else {print "not ok 41\n"}
|
||||
|
||||
eval {is_RW($one)};
|
||||
if($@){print "ok 42\n"}
|
||||
else {print "not ok 42\n"}
|
||||
|
||||
if($no_skip){
|
||||
eval {is_A($one)};
|
||||
if($@){print "ok 43\n"}
|
||||
else {print "not ok 43\n"}
|
||||
}
|
||||
else {print "ok 43 - skipped, pre-5.6.1 Win32 perl\n"}
|
||||
|
||||
if($] >= 5.007) {
|
||||
|
||||
$var = ''; # Avoid "uninitialised" warnings.
|
||||
|
||||
eval q{open($mem, '<', \$var) or die "Can't open memory object: $!";};
|
||||
die $@ if $@;
|
||||
binmode($mem);
|
||||
if(is_FH($mem) && is_arg_ok($mem) && is_R($mem) && is_RO($mem) && !is_W($mem) && !is_WO($mem) && !is_RW($mem) && !is_A($mem)) {print "ok 44\n"}
|
||||
else {print "not ok 44\n"}
|
||||
close($mem) or die "Can't close memory object: $!";
|
||||
|
||||
eval q{open($mem, '>', \$var) or die "Can't open memory object: $!";};
|
||||
die $@ if $@;
|
||||
binmode($mem);
|
||||
if(is_arg_ok($mem) && !is_R($mem) && !is_RO($mem) && is_W($mem) && is_WO($mem) && !is_RW($mem) && !is_A($mem)) {print "ok 45\n"}
|
||||
else {print "not ok 45\n"}
|
||||
close($mem) or die "Can't close memory object: $!";
|
||||
|
||||
eval q{open($mem, '>>', \$var) or die "Can't open memory object: $!";};
|
||||
die $@ if $@;
|
||||
binmode($mem);
|
||||
if(is_FH($mem) && is_arg_ok($mem) && !is_R($mem) && !is_RO($mem) && is_W($mem) && is_WO($mem) && !is_RW($mem) && is_A($mem)) {print "ok 46\n"}
|
||||
else {print "not ok 46\n"}
|
||||
close($mem) or die "Can't close memory object: $!";
|
||||
|
||||
eval q{open($mem, '+>>', \$var) or die "Can't open memory object: $!";};
|
||||
die $@ if $@;
|
||||
binmode($mem);
|
||||
if(is_arg_ok($mem) && is_R($mem) && !is_RO($mem) && is_W($mem) && !is_WO($mem) && is_RW($mem) && is_A($mem)) {print "ok 47\n"}
|
||||
else {print "not ok 47\n"}
|
||||
close($mem) or die "Can't close memory object: $!";
|
||||
|
||||
|
||||
eval q{open($mem, '+>', \$var) or die "Can't open memory object: $!";};
|
||||
die $@ if $@;
|
||||
binmode($mem);
|
||||
if(is_FH($mem) && is_arg_ok($mem) && is_R($mem) && !is_RO($mem) && is_W($mem) && !is_WO($mem) && is_RW($mem) && !is_A($mem)) {print "ok 48\n"}
|
||||
else {print "not ok 48\n"}
|
||||
close($mem) or die "Can't close memory object: $!";
|
||||
|
||||
eval q{open($mem, '+<', \$var) or die "Can't open memory object: $!";};
|
||||
die $@ if $@;
|
||||
binmode($mem);
|
||||
if(is_FH($mem) && is_arg_ok($mem) && is_R($mem) && !is_RO($mem) && is_W($mem) && !is_WO($mem) && is_RW($mem) && !is_A($mem)) {print "ok 49\n"}
|
||||
else {print "not ok 49\n"}
|
||||
close($mem) or die "Can't close memory object: $!";
|
||||
|
||||
}
|
||||
else {
|
||||
print "ok 44 - skipped - pre-5.8 perl\n";
|
||||
print "ok 45 - skipped - pre-5.8 perl\n";
|
||||
print "ok 46 - skipped - pre-5.8 perl\n";
|
||||
print "ok 47 - skipped - pre-5.8 perl\n";
|
||||
print "ok 48 - skipped - pre-5.8 perl\n";
|
||||
print "ok 49 - skipped - pre-5.8 perl\n";
|
||||
}
|
||||
|
||||
open(RD, "Makefile.PL") or die "Can't open Makefile.PL for reading: $!";
|
||||
binmode(RD);
|
||||
eval{FileHandle::Fmode::perliol_readable(\*RD);};
|
||||
|
||||
if($] < 5.007) {
|
||||
if($@ =~ /perliol_readable/) {print "ok 50\n"}
|
||||
else {print "not ok 50\n"}
|
||||
}
|
||||
else {
|
||||
if($@) {print "not ok 50\n"}
|
||||
else {print "ok 50\n"}
|
||||
}
|
||||
|
||||
close(RD) or die "Can't close Makefile.PL after opening for reading: $!";
|
||||
|
||||
open(WR, ">temp2.txt") or die "Can't open temp2.txt for writing: $!";
|
||||
binmode(WR);
|
||||
eval{FileHandle::Fmode::perliol_writable(\*WR);};
|
||||
|
||||
if($] < 5.007) {
|
||||
if($@ =~ /perliol_writable/) {print "ok 51\n"}
|
||||
else {print "not ok 51\n"}
|
||||
}
|
||||
else {
|
||||
if($@) {print "not ok 51\n"}
|
||||
else {print "ok 51\n"}
|
||||
}
|
||||
|
||||
eval{FileHandle::Fmode::win32_fmode(\*WR);};
|
||||
if($^O =~ /mswin32/i) {
|
||||
if($@) {print "not ok 52\n"}
|
||||
else {print "ok 52\n"}
|
||||
}
|
||||
else {
|
||||
if($@ =~ /win32_fmode/) {print "ok 52\n"}
|
||||
else {print "not ok 52\n"}
|
||||
}
|
||||
|
||||
close(WR) or die "Can't close temp2.txt after opening for writing: $!";
|
|
@ -0,0 +1,12 @@
|
|||
eval "use Test::Pod 1.00";
|
||||
|
||||
if($@) {
|
||||
print "1..1\n";
|
||||
print "ok 1 - skipped, no sufficiently recent version of Test::Pod installed \n";
|
||||
}
|
||||
|
||||
else {
|
||||
warn "\nTest::Pod version: $Test::Pod::VERSION\n";
|
||||
warn "\nPod::Simple version: $Pod::Simple::VERSION\n";
|
||||
Test::Pod::all_pod_files_ok();
|
||||
}
|
Loading…
Reference in New Issue