1*de8cc8edSafresh1BEGIN { 2*de8cc8edSafresh1 require Config; 3*de8cc8edSafresh1 if (($Config::Config{'extensions'} !~ m!\bList/Util\b!) ){ 4*de8cc8edSafresh1 print "1..0 # Skip -- Perl configured without List::Util module\n"; 5*de8cc8edSafresh1 exit 0; 6*de8cc8edSafresh1 } 7*de8cc8edSafresh1 8*de8cc8edSafresh1 # `make test` in the CPAN version of this module runs us with -w, but 9*de8cc8edSafresh1 # Dumpvalue.pm relies on all sorts of things that can cause warnings. I 10*de8cc8edSafresh1 # don't think that's worth fixing, so we just turn off all warnings 11*de8cc8edSafresh1 # during testing. 12*de8cc8edSafresh1 $^W = 0; 13*de8cc8edSafresh1} 14*de8cc8edSafresh1 15*de8cc8edSafresh1use lib ("./t/lib"); 16*de8cc8edSafresh1use TieOut; 17*de8cc8edSafresh1use Test::More tests => 17; 18*de8cc8edSafresh1 19*de8cc8edSafresh1use_ok( 'Dumpvalue' ); 20*de8cc8edSafresh1 21*de8cc8edSafresh1my $d; 22*de8cc8edSafresh1ok( $d = Dumpvalue->new(), 'create a new Dumpvalue object' ); 23*de8cc8edSafresh1 24*de8cc8edSafresh1my $out = tie *OUT, 'TieOut'; 25*de8cc8edSafresh1select(OUT); 26*de8cc8edSafresh1 27*de8cc8edSafresh1my (@foobar, $x, $y); 28*de8cc8edSafresh1 29*de8cc8edSafresh1@foobar = ('foo', 'bar'); 30*de8cc8edSafresh1$d->dumpValue([@foobar]); 31*de8cc8edSafresh1$x = $out->read; 32*de8cc8edSafresh1is( $x, "0 'foo'\n1 'bar'\n", 'dumpValue worked on array ref' ); 33*de8cc8edSafresh1$d->dumpValues(@foobar); 34*de8cc8edSafresh1$y = $out->read; 35*de8cc8edSafresh1is( $y, "0 'foo'\n1 'bar'\n", 'dumpValues worked on array' ); 36*de8cc8edSafresh1is( $y, $x, 37*de8cc8edSafresh1 "dumpValues called on array returns same as dumpValue on array ref"); 38*de8cc8edSafresh1 39*de8cc8edSafresh1@foobar = (undef, 'bar'); 40*de8cc8edSafresh1$d->dumpValue([@foobar]); 41*de8cc8edSafresh1$x = $out->read; 42*de8cc8edSafresh1is( $x, "0 empty slot\n1 'bar'\n", 43*de8cc8edSafresh1 'dumpValue worked on array ref, first element undefined' ); 44*de8cc8edSafresh1$d->dumpValues(@foobar); 45*de8cc8edSafresh1$y = $out->read; 46*de8cc8edSafresh1is( $y, "0 empty slot\n1 'bar'\n", 47*de8cc8edSafresh1 'dumpValues worked on array, first element undefined' ); 48*de8cc8edSafresh1is( $y, $x, 49*de8cc8edSafresh1 "dumpValues called on array returns same as dumpValue on array ref, first element undefined"); 50*de8cc8edSafresh1 51*de8cc8edSafresh1@foobar = ('bar', undef); 52*de8cc8edSafresh1$d->dumpValue([@foobar]); 53*de8cc8edSafresh1$x = $out->read; 54*de8cc8edSafresh1is( $x, "0 'bar'\n1 empty slot\n", 55*de8cc8edSafresh1 'dumpValue worked on array ref, last element undefined' ); 56*de8cc8edSafresh1$d->dumpValues(@foobar); 57*de8cc8edSafresh1$y = $out->read; 58*de8cc8edSafresh1is( $y, "0 'bar'\n1 empty slot\n", 59*de8cc8edSafresh1 'dumpValues worked on array, last element undefined' ); 60*de8cc8edSafresh1is( $y, $x, 61*de8cc8edSafresh1 "dumpValues called on array returns same as dumpValue on array ref, last element undefined"); 62*de8cc8edSafresh1 63*de8cc8edSafresh1@foobar = ('', 'bar'); 64*de8cc8edSafresh1$d->dumpValue([@foobar]); 65*de8cc8edSafresh1$x = $out->read; 66*de8cc8edSafresh1is( $x, "0 ''\n1 'bar'\n", 67*de8cc8edSafresh1 'dumpValue worked on array ref, first element empty string' ); 68*de8cc8edSafresh1$d->dumpValues(@foobar); 69*de8cc8edSafresh1$y = $out->read; 70*de8cc8edSafresh1is( $y, "0 ''\n1 'bar'\n", 71*de8cc8edSafresh1 'dumpValues worked on array, first element empty string' ); 72*de8cc8edSafresh1is( $y, $x, 73*de8cc8edSafresh1 "dumpValues called on array returns same as dumpValue on array ref, first element empty string"); 74*de8cc8edSafresh1 75*de8cc8edSafresh1@foobar = ('bar', ''); 76*de8cc8edSafresh1$d->dumpValue([@foobar]); 77*de8cc8edSafresh1$x = $out->read; 78*de8cc8edSafresh1is( $x, "0 'bar'\n1 ''\n", 79*de8cc8edSafresh1 'dumpValue worked on array ref, last element empty string' ); 80*de8cc8edSafresh1$d->dumpValues(@foobar); 81*de8cc8edSafresh1$y = $out->read; 82*de8cc8edSafresh1is( $y, "0 'bar'\n1 ''\n", 83*de8cc8edSafresh1 'dumpValues worked on array, last element empty string' ); 84*de8cc8edSafresh1is( $y, $x, 85*de8cc8edSafresh1 "dumpValues called on array returns same as dumpValue on array ref, last element empty string"); 86*de8cc8edSafresh1 87