1898184e3Ssthenuse strict; 2*256a93a4Safresh1use warnings; 3898184e3Ssthen 4898184e3Ssthenuse Test::More; 5898184e3SsthenBEGIN { plan tests => 10 }; 6898184e3SsthenBEGIN { $ENV{PERL_JSON_BACKEND} = 0; } 7898184e3Ssthen 8898184e3Ssthenuse JSON::PP; 9898184e3Ssthen 10898184e3Ssthenmy $json = JSON::PP->new; 11898184e3Ssthen 12898184e3Sstheneval q| $json->encode( [ sub {} ] ) |; 13898184e3Ssthenok( $@ =~ /encountered CODE/, $@ ); 14898184e3Ssthen 15898184e3Sstheneval q| $json->encode( [ \-1 ] ) |; 16898184e3Ssthenok( $@ =~ /cannot encode reference to scalar/, $@ ); 17898184e3Ssthen 18898184e3Sstheneval q| $json->encode( [ \undef ] ) |; 19898184e3Ssthenok( $@ =~ /cannot encode reference to scalar/, $@ ); 20898184e3Ssthen 21898184e3Sstheneval q| $json->encode( [ \{} ] ) |; 22898184e3Ssthenok( $@ =~ /cannot encode reference to scalar/, $@ ); 23898184e3Ssthen 24898184e3Ssthen$json->allow_unknown; 25898184e3Ssthen 26898184e3Ssthenis( $json->encode( [ sub {} ] ), '[null]' ); 27898184e3Ssthenis( $json->encode( [ \-1 ] ), '[null]' ); 28898184e3Ssthenis( $json->encode( [ \undef ] ), '[null]' ); 29898184e3Ssthenis( $json->encode( [ \{} ] ), '[null]' ); 30898184e3Ssthen 31898184e3Ssthen 32898184e3Ssthen$json->allow_unknown(0); 33898184e3Ssthen 34898184e3Ssthenmy $fh; 35898184e3Ssthenopen( $fh, '>hoge.txt' ) or die $!; 36898184e3Ssthen 37898184e3Sstheneval q| $json->encode( [ $fh ] ) |; 385759b3d2Safresh1ok( $@ =~ /encountered GLOB|cannot encode reference to scalar/, $@ ); 39898184e3Ssthen 40898184e3Ssthen$json->allow_unknown(1); 41898184e3Ssthen 42898184e3Ssthenis( $json->encode( [ $fh ] ), '[null]' ); 43898184e3Ssthen 44898184e3Ssthenclose $fh; 45898184e3Ssthen 46898184e3Ssthenunlink('hoge.txt'); 47