diff --git c/t/madness_json.t w/t/madness_json.t index 2272548..fafa00b 100644 --- c/t/madness_json.t +++ w/t/madness_json.t @@ -248,13 +248,14 @@ format STDOUT = JSB => $jstrue, ); + my $expect; # Dumping differences per perl version: # 5.12.0+: # # IO handles are now blessed into IO::File, I guess? # if ( $] >= 5.012_000 ) { - my $expect = <<'EXPECT'; + $expect = <<'EXPECT'; $HASH1 = { AR => [ 1, @@ -292,10 +293,9 @@ EXPECT ) !~ 'refs') { $expect =~ s/strict 'refs'/strict/; } - same( $dump= $o->Data(\%hash)->Out, template( $expect, expected_dot => $expected_dot ), "", $o); } elsif ( $] >= 5.008_008 ) { - same( $dump= $o->Data(\%hash)->Out, template( <<'EXPECT', expected_dot => $expected_dot ), "", $o); + $expect = <<'EXPECT'; $HASH1 = { AR => [ 1, @@ -329,7 +329,7 @@ bless( $HASH1->{JSB}, 'JSON::XS::Boolean' ); EXPECT } elsif ( $] >= 5.008_000 ) { - same( $dump= $o->Data(\%hash)->Out, template( <<'EXPECT', expected_dot => $expected_dot ), "", $o); + $expect = <<'EXPECT'; $HASH1 = { AR => [ 1, @@ -363,7 +363,7 @@ bless( $HASH1->{JSB}, 'JSON::XS::Boolean' ); EXPECT } else { - same( $dump= $o->Data(\%hash)->Out, template( <<'EXPECT', expected_dot => $expected_dot ), "", $o); + $expect = <<'EXPECT'; $HASH1 = { AR => [ 1, @@ -388,6 +388,11 @@ $HASH1 = { bless( $HASH1->{JSB}, 'JSON::XS::Boolean' ); EXPECT } + # In JSON::XS < 3, the boolean class is JSON::XS::Boolean + # In JSON::XS >= 3, the boolean class is JSON::PP::Boolean + my $json_boolean_class = ref JSON::XS::decode_json("true"); + $expect =~ s{JSON::XS::Boolean}{$json_boolean_class}g; + same( $dump= $o->Data(\%hash)->Out, template( $expect, expected_dot => $expected_dot ), "", $o); } sub template {