From: Eric Sunshine Date: Fri, 24 Aug 2018 20:41:32 GMT Subject: Re: [PATCH v4 5/6] tests: fix version-specific portability issue in Perl JSON Message-ID: In-Reply-To: <20180824152016.20286-6-avarab@gmail.com> On Fri, Aug 24, 2018 at 11:20 AM Ævar Arnfjörð Bjarmason 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