Re: [PATCH v4 5/6] tests: fix version-specific portability issue in Perl JSON
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Aug 24, 2018, 20:41 UTC
- Message-ID
- <CAPig+cTGPaHTecvjqBtFOrTsb9+X=ifQYcqss634Bt2cAFNdeg@mail.gmail.com>
- In-Reply-To
- <20180824152016.20286-6-avarab@gmail.com>
On Fri, Aug 24, 2018 at 11:20 AM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
Show 7 quoted lines
> 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" ors/PP A/PP. A/
(Not worth a re-roll.)
Show 10 quoted lines
> "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@gmail.com>