1*f2a19305Safresh1#!./perl 2*f2a19305Safresh1 3*f2a19305Safresh1BEGIN { 4*f2a19305Safresh1 unshift @INC, 't'; 5*f2a19305Safresh1 require Config; 6*f2a19305Safresh1 if (($Config::Config{'extensions'} !~ /\bB\b/) ){ 7*f2a19305Safresh1 print "1..0 # Skip -- Perl configured without B module\n"; 8*f2a19305Safresh1 exit 0; 9*f2a19305Safresh1 } 10*f2a19305Safresh1} 11*f2a19305Safresh1 12*f2a19305Safresh1use strict; 13*f2a19305Safresh1use warnings; 14*f2a19305Safresh1 15*f2a19305Safresh1use B; 16*f2a19305Safresh1use Test::More; 17*f2a19305Safresh1 18*f2a19305Safresh1$| = 1; 19*f2a19305Safresh1 20*f2a19305Safresh1{ 21*f2a19305Safresh1 note "testing true"; 22*f2a19305Safresh1 my $bool = ( 1 == 1 ); 23*f2a19305Safresh1 my $sv = B::svref_2object(\$bool); 24*f2a19305Safresh1 ok $sv->IsBOOL, "got a boolean"; 25*f2a19305Safresh1 ok $sv->TRUE_nomg, "TRUE_nomg is true"; 26*f2a19305Safresh1 ok $sv->TRUE, "TRUE is true"; 27*f2a19305Safresh1} 28*f2a19305Safresh1 29*f2a19305Safresh1{ 30*f2a19305Safresh1 note "testing false"; 31*f2a19305Safresh1 my $bool = ( 1 == 0 ); 32*f2a19305Safresh1 my $sv = B::svref_2object(\$bool); 33*f2a19305Safresh1 34*f2a19305Safresh1 ok $sv->IsBOOL, "got a boolean"; 35*f2a19305Safresh1 ok !$sv->TRUE_nomg, "TRUE_nomg is false"; 36*f2a19305Safresh1 ok !$sv->TRUE, "TRUE is false"; 37*f2a19305Safresh1} 38*f2a19305Safresh1 39*f2a19305Safresh1{ 40*f2a19305Safresh1 note "not a boolean"; 41*f2a19305Safresh1 my $iv = 42; 42*f2a19305Safresh1 my $sv = B::svref_2object(\$iv); 43*f2a19305Safresh1 44*f2a19305Safresh1 ok !$sv->IsBOOL, "not a boolean"; 45*f2a19305Safresh1 ok $sv->TRUE_nomg, "TRUE_nomg is true"; 46*f2a19305Safresh1 ok $sv->TRUE, "TRUE is true"; 47*f2a19305Safresh1} 48*f2a19305Safresh1 49*f2a19305Safresh1{ 50*f2a19305Safresh1 note "not a boolean"; 51*f2a19305Safresh1 my $iv = 0; 52*f2a19305Safresh1 my $sv = B::svref_2object(\$iv); 53*f2a19305Safresh1 54*f2a19305Safresh1 ok !$sv->IsBOOL, "not a boolean"; 55*f2a19305Safresh1 ok !$sv->TRUE_nomg, "TRUE_nomg is false"; 56*f2a19305Safresh1 ok !$sv->TRUE, "TRUE is false"; 57*f2a19305Safresh1} 58*f2a19305Safresh1 59*f2a19305Safresh1done_testing(); 60