Blame t/17_handle.t

Packit 37d9e7
#!/usr/bin/perl
Packit 37d9e7
Packit 37d9e7
use strict;
Packit 37d9e7
BEGIN {
Packit 37d9e7
	$|  = 1;
Packit 37d9e7
	$^W = 1;
Packit 37d9e7
	$ENV{PERL_PARAMS_UTIL_PP} ||= 1;
Packit 37d9e7
}
Packit 37d9e7
Packit 37d9e7
use Test::More tests => 23;
Packit 37d9e7
use File::Spec::Functions ':ALL';
Packit 37d9e7
BEGIN {
Packit 37d9e7
	ok( ! defined &_HANDLE, '_HANDLE does not exist' );
Packit 37d9e7
	use_ok('Params::Util', qw(_HANDLE));
Packit 37d9e7
	ok( defined &_HANDLE, '_HANDLE imported ok' );
Packit 37d9e7
}
Packit 37d9e7
Packit 37d9e7
# Import refaddr to make certain we have it
Packit 37d9e7
use Scalar::Util 'refaddr';
Packit 37d9e7
Packit 37d9e7
Packit 37d9e7
Packit 37d9e7
Packit 37d9e7
Packit 37d9e7
#####################################################################
Packit 37d9e7
# Preparing
Packit 37d9e7
Packit 37d9e7
my $readfile  = catfile( 't', 'handles', 'readfile.txt'  );
Packit 37d9e7
ok( -f $readfile, "$readfile exists" );
Packit 37d9e7
my $writefile = catfile( 't', 'handles', 'writefile.txt' );
Packit 37d9e7
      if ( -f $writefile ) { unlink $writefile };
Packit 37d9e7
END { if ( -f $writefile ) { unlink $writefile }; }
Packit 37d9e7
ok( ! -e $writefile, "$writefile does not exist" );
Packit 37d9e7
Packit 37d9e7
sub is_handle {
Packit 37d9e7
	my $maybe   = shift;
Packit 37d9e7
	my $message = shift || 'Is a file handle';
Packit 37d9e7
	my $result  = _HANDLE($maybe);
Packit 37d9e7
	ok( defined $result, '_HANDLE does not return undef' );
Packit 37d9e7
	is( refaddr($result), refaddr($maybe), '_HANDLE returns the passed value' );
Packit 37d9e7
}
Packit 37d9e7
Packit 37d9e7
sub not_handle {
Packit 37d9e7
	my $maybe   = shift;
Packit 37d9e7
	my $message = shift || 'Is not a file handle';
Packit 37d9e7
	my $result  = _HANDLE($maybe);
Packit 37d9e7
	ok( ! defined $result, '_HANDLE returns undef' );
Packit 37d9e7
}
Packit 37d9e7
Packit 37d9e7
Packit 37d9e7
Packit 37d9e7
Packit 37d9e7
Packit 37d9e7
#####################################################################
Packit 37d9e7
# Basic Filesystem Handles
Packit 37d9e7
Packit 37d9e7
# A read filehandle
Packit 37d9e7
SCOPE: {
Packit 37d9e7
	local *HANDLE;
Packit 37d9e7
	open( HANDLE, $readfile );
Packit 37d9e7
	is_handle( \*HANDLE, 'Ordinary read filehandle' );
Packit 37d9e7
	close HANDLE;
Packit 37d9e7
}
Packit 37d9e7
Packit 37d9e7
# A write filehandle
Packit 37d9e7
SCOPE: {
Packit 37d9e7
	local *HANDLE;
Packit 37d9e7
	open( HANDLE, "> $readfile" );
Packit 37d9e7
	is_handle( \*HANDLE, 'Ordinary read filehandle' );
Packit 37d9e7
	print HANDLE "A write filehandle";
Packit 37d9e7
	close HANDLE;
Packit 37d9e7
	if ( -f $writefile ) { unlink $writefile };
Packit 37d9e7
}
Packit 37d9e7
Packit 37d9e7
# On 5.8+ the new style filehandle
Packit 37d9e7
SKIP: {
Packit 37d9e7
	skip( "Skipping 5.8-style 'my \$fh' handles", 2 ) if $] < 5.008;
Packit 37d9e7
	open( my $handle, $readfile );
Packit 37d9e7
	is_handle( $handle, '5.8-style read filehandle' );
Packit 37d9e7
}
Packit 37d9e7
Packit 37d9e7
Packit 37d9e7
Packit 37d9e7
Packit 37d9e7
Packit 37d9e7
#####################################################################
Packit 37d9e7
# Things that are not file handles
Packit 37d9e7
Packit 37d9e7
foreach (
Packit 37d9e7
	undef, '', ' ', 'foo', 1, 0, -1, 1.23,
Packit 37d9e7
	[], {}, \'', bless( {}, "foo" )
Packit 37d9e7
) {
Packit 37d9e7
	not_handle( $_ );
Packit 37d9e7
}
Packit 37d9e7