toaster.t revision 1.1.1.2
1#!./perl -w 2# t/toaster.t - Test Toaster() 3 4use strict; 5use warnings; 6 7use Data::Dumper; 8use Test::More tests => 8; 9use lib qw( ./t/lib ); 10use Testing qw( _dumptostr ); 11 12my %d = ( 13 delta => 'd', 14 beta => 'b', 15 gamma => 'c', 16 alpha => 'a', 17); 18 19run_tests_for_toaster(); 20SKIP: { 21 skip "XS version was unavailable, so we already ran with pure Perl", 4 22 if $Data::Dumper::Useperl; 23 local $Data::Dumper::Useperl = 1; 24 run_tests_for_toaster(); 25} 26 27sub run_tests_for_toaster { 28 note("\$Data::Dumper::Useperl = $Data::Dumper::Useperl"); 29 30 my ($obj, %dumps, $toaster, $starting); 31 32 note("\$Data::Dumper::Toaster and Toaster() set to true value"); 33 34 $starting = $Data::Dumper::Toaster; 35 $toaster = 1; 36 local $Data::Dumper::Toaster = $toaster; 37 $obj = Data::Dumper->new( [ \%d ] ); 38 $dumps{'ddtoasterone'} = _dumptostr($obj); 39 local $Data::Dumper::Toaster = $starting; 40 41 $obj = Data::Dumper->new( [ \%d ] ); 42 $obj->Toaster($toaster); 43 $dumps{'objtoasterone'} = _dumptostr($obj); 44 45 is($dumps{'ddtoasterone'}, $dumps{'objtoasterone'}, 46 "\$Data::Dumper::Toaster = 1 and Toaster(1) are equivalent"); 47 %dumps = (); 48 49 $toaster = 0; 50 local $Data::Dumper::Toaster = $toaster; 51 $obj = Data::Dumper->new( [ \%d ] ); 52 $dumps{'ddtoasterzero'} = _dumptostr($obj); 53 local $Data::Dumper::Toaster = $starting; 54 55 $obj = Data::Dumper->new( [ \%d ] ); 56 $obj->Toaster($toaster); 57 $dumps{'objtoasterzero'} = _dumptostr($obj); 58 59 is($dumps{'ddtoasterzero'}, $dumps{'objtoasterzero'}, 60 "\$Data::Dumper::Toaster = 0 and Toaster(0) are equivalent"); 61 62 $toaster = undef; 63 local $Data::Dumper::Toaster = $toaster; 64 $obj = Data::Dumper->new( [ \%d ] ); 65 $dumps{'ddtoasterundef'} = _dumptostr($obj); 66 local $Data::Dumper::Toaster = $starting; 67 68 $obj = Data::Dumper->new( [ \%d ] ); 69 $obj->Toaster($toaster); 70 $dumps{'objtoasterundef'} = _dumptostr($obj); 71 72 is($dumps{'ddtoasterundef'}, $dumps{'objtoasterundef'}, 73 "\$Data::Dumper::Toaster = undef and Toaster(undef) are equivalent"); 74 is($dumps{'ddtoasterzero'}, $dumps{'objtoasterundef'}, 75 "\$Data::Dumper::Toaster = undef and = 0 are equivalent"); 76 %dumps = (); 77} 78 79