1#!/usr/bin/perl -w 2 3BEGIN { 4 if( $ENV{PERL_CORE} ) { 5 chdir 't'; 6 @INC = ('../lib', 'lib'); 7 } 8 else { 9 unshift @INC, 't/lib'; 10 } 11} 12 13use strict; 14use Test::More tests => 11; 15use TieOut; 16 17ok( !Test::Builder->is_fh("foo"), 'string is not a filehandle' ); 18ok( !Test::Builder->is_fh(''), 'empty string' ); 19ok( !Test::Builder->is_fh(undef), 'undef' ); 20 21ok( open(FILE, '>foo') ); 22END { close FILE; 1 while unlink 'foo' } 23 24ok( Test::Builder->is_fh(*FILE) ); 25ok( Test::Builder->is_fh(\*FILE) ); 26ok( Test::Builder->is_fh(*FILE{IO}) ); 27 28tie *OUT, 'TieOut'; 29ok( Test::Builder->is_fh(*OUT) ); 30ok( Test::Builder->is_fh(\*OUT) ); 31 32SKIP: { 33 skip "*TIED_HANDLE{IO} doesn't work in this perl", 1 34 unless defined *OUT{IO}; 35 ok( Test::Builder->is_fh(*OUT{IO}) ); 36} 37 38 39package Lying::isa; 40 41sub isa { 42 my $self = shift; 43 my $parent = shift; 44 45 return 1 if $parent eq 'IO::Handle'; 46} 47 48::ok( Test::Builder->is_fh(bless {}, "Lying::isa")); 49