1*5759b3d2Safresh1#!/usr/bin/perl -w 2*5759b3d2Safresh1# HARNESS-NO-FORK 3*5759b3d2Safresh1 4*5759b3d2Safresh1BEGIN { 5*5759b3d2Safresh1 if( $ENV{PERL_CORE} ) { 6*5759b3d2Safresh1 chdir 't'; 7*5759b3d2Safresh1 @INC = ('../lib', 'lib'); 8*5759b3d2Safresh1 } 9*5759b3d2Safresh1 else { 10*5759b3d2Safresh1 unshift @INC, 't/lib'; 11*5759b3d2Safresh1 } 12*5759b3d2Safresh1} 13*5759b3d2Safresh1 14*5759b3d2Safresh1use strict; 15*5759b3d2Safresh1use Test::More tests => 21; 16*5759b3d2Safresh1 17*5759b3d2Safresh1BEGIN { $^W = 1; } 18*5759b3d2Safresh1 19*5759b3d2Safresh1my $warnings = ''; 20*5759b3d2Safresh1local $SIG{__WARN__} = sub { $warnings .= join '', @_ }; 21*5759b3d2Safresh1 22*5759b3d2Safresh1my $TB = Test::Builder->new; 23*5759b3d2Safresh1sub no_warnings { 24*5759b3d2Safresh1 $TB->is_eq($warnings, '', ' no warnings'); 25*5759b3d2Safresh1 $warnings = ''; 26*5759b3d2Safresh1} 27*5759b3d2Safresh1 28*5759b3d2Safresh1sub warnings_is { 29*5759b3d2Safresh1 $TB->is_eq($warnings, $_[0]); 30*5759b3d2Safresh1 $warnings = ''; 31*5759b3d2Safresh1} 32*5759b3d2Safresh1 33*5759b3d2Safresh1sub warnings_like { 34*5759b3d2Safresh1 $TB->like($warnings, $_[0]); 35*5759b3d2Safresh1 $warnings = ''; 36*5759b3d2Safresh1} 37*5759b3d2Safresh1 38*5759b3d2Safresh1 39*5759b3d2Safresh1my $Filename = quotemeta $0; 40*5759b3d2Safresh1 41*5759b3d2Safresh1 42*5759b3d2Safresh1is( undef, undef, 'undef is undef'); 43*5759b3d2Safresh1no_warnings; 44*5759b3d2Safresh1 45*5759b3d2Safresh1isnt( undef, 'foo', 'undef isnt foo'); 46*5759b3d2Safresh1no_warnings; 47*5759b3d2Safresh1 48*5759b3d2Safresh1isnt( undef, '', 'undef isnt an empty string' ); 49*5759b3d2Safresh1isnt( undef, 0, 'undef isnt zero' ); 50*5759b3d2Safresh1 51*5759b3d2Safresh1Test::More->builder->is_num(undef, undef, 'is_num()'); 52*5759b3d2Safresh1Test::More->builder->isnt_num(23, undef, 'isnt_num()'); 53*5759b3d2Safresh1 54*5759b3d2Safresh1#line 45 55*5759b3d2Safresh1like( undef, qr/.*/, 'undef is like anything' ); 56*5759b3d2Safresh1no_warnings; 57*5759b3d2Safresh1 58*5759b3d2Safresh1eq_array( [undef, undef], [undef, 23] ); 59*5759b3d2Safresh1no_warnings; 60*5759b3d2Safresh1 61*5759b3d2Safresh1eq_hash ( { foo => undef, bar => undef }, 62*5759b3d2Safresh1 { foo => undef, bar => 23 } ); 63*5759b3d2Safresh1no_warnings; 64*5759b3d2Safresh1 65*5759b3d2Safresh1eq_set ( [undef, undef, 12], [29, undef, undef] ); 66*5759b3d2Safresh1no_warnings; 67*5759b3d2Safresh1 68*5759b3d2Safresh1 69*5759b3d2Safresh1eq_hash ( { foo => undef, bar => { baz => undef, moo => 23 } }, 70*5759b3d2Safresh1 { foo => undef, bar => { baz => undef, moo => 23 } } ); 71*5759b3d2Safresh1no_warnings; 72*5759b3d2Safresh1 73*5759b3d2Safresh1 74*5759b3d2Safresh1#line 74 75*5759b3d2Safresh1cmp_ok( undef, '<=', 2, ' undef <= 2' ); 76*5759b3d2Safresh1warnings_like(qr/Use of uninitialized value.* at \(eval in cmp_ok\) $Filename line 74\.\n/); 77*5759b3d2Safresh1 78*5759b3d2Safresh1 79*5759b3d2Safresh1 80*5759b3d2Safresh1my $tb = Test::More->builder; 81*5759b3d2Safresh1 82*5759b3d2Safresh1SKIP: { 83*5759b3d2Safresh1 skip("Test cannot be run with this formatter", 2) 84*5759b3d2Safresh1 unless $tb->{Stack}->top->format->isa('Test::Builder::Formatter'); 85*5759b3d2Safresh1 86*5759b3d2Safresh1 my $err = ''; 87*5759b3d2Safresh1 $tb->failure_output(\$err); 88*5759b3d2Safresh1 diag(undef); 89*5759b3d2Safresh1 $tb->reset_outputs; 90*5759b3d2Safresh1 91*5759b3d2Safresh1 is( $err, "# undef\n" ); 92*5759b3d2Safresh1 no_warnings; 93*5759b3d2Safresh1} 94*5759b3d2Safresh1 95*5759b3d2Safresh1 96*5759b3d2Safresh1$tb->maybe_regex(undef); 97*5759b3d2Safresh1no_warnings; 98*5759b3d2Safresh1 99*5759b3d2Safresh1 100*5759b3d2Safresh1# test-more.googlecode.com #42 101*5759b3d2Safresh1{ 102*5759b3d2Safresh1 is_deeply([ undef ], [ undef ]); 103*5759b3d2Safresh1 no_warnings; 104*5759b3d2Safresh1} 105