On Fri, Aug 24, 2018 at 11:20 AM Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> wrote: > The test guarded by PERLJSON added in 75459410ed ("json_writer: new > routines to create JSON data", 2018-07-13) assumed that a JSON boolean > value like "true" or "false" would be represented as "1" or "0" in > Perl. > > This behavior can't be relied upon, e.g. with JSON.pm 2.50 and > JSON::PP A JSON::PP::Boolean object will be represented as "true" or s/PP A/PP. A/ (Not worth a re-roll.) > "false". To work around this let's check if we have any refs left > after we check for hashes and arrays, assume those are JSON objects, > and coerce them to a known boolean value. > > The behavior of this test still looks odd to me. Why implement our own > ad-hoc encoder just for some one-off test, as opposed to say Perl's > own Data::Dumper with Sortkeys et al? But with this change it works, > so let's leave it be. > > Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx>