Skip to content

tst_ToJson: handle musl's truncated formatting of 2^64 - #353

Open
Anmol-In-Verse wants to merge 1 commit into
intel:mainfrom
Anmol-In-Verse:main
Open

Anmol-In-Verse wants to merge 1 commit into
intel:mainfrom
Anmol-In-Verse:main

Conversation

@Anmol-In-Verse

Copy link
Copy Markdown

The tst_ToJson tests expect 2^64 to format as 1.8446744073709552e+19
(correctly rounded to 17 significant digits, as done by glibc, MSVC's
UCRT, Apple's and BSD's libcs). musl's printf() instead truncates the
decimal representation and produces 1.8446744073709551e+19, which makes
tst_ToJson fail on Alpine Linux and other musl-based distributions.

musl deliberately defines no identification macro, so detect it by
exclusion: Linux with neither glibc, uClibc nor Bionic. On such systems
the four affected test rows now expect musl's truncated output instead.

Fixes #352

The tst_ToJson tests expect 2^64 to format as 1.8446744073709552e+19
(correctly rounded to 17 significant digits, as done by glibc, MSVC's
UCRT, Apple's and BSD's libcs). musl's printf() instead truncates the
decimal representation and produces 1.8446744073709551e+19, which makes
tst_ToJson fail on Alpine Linux and other musl-based distributions.

musl deliberately defines no identification macro, so detect it by
exclusion: Linux with neither glibc, uClibc nor Bionic. On such systems
the four affected test rows now expect musl's truncated output instead.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

false positive in unittests due to not accounting for limited floating point accuracy

1 participant