xref: /openbsd-src/gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/undef.t (revision 5759b3d249badf144a6240f7eec4dcf9df003e6b)
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