Patch taken from https://github.com/jqlang/jq/commit/a4d9d540103ff9a262e304329c277ec89b27e5f9 From a4d9d540103ff9a262e304329c277ec89b27e5f9 Mon Sep 17 00:00:00 2001 From: itchyny Date: Mon, 15 Sep 2025 07:47:51 +0900 Subject: [PATCH] Fix expected value assertion for NaN value (fix #3393) (#3408) --- src/jq_test.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) --- jq-1.8.0/src/jq_test.c.orig +++ jq-1.8.0/src/jq_test.c @@ -2,6 +2,7 @@ #include #include #include +#include #ifdef HAVE_PTHREAD #include #endif @@ -199,11 +200,13 @@ pass = 0; } #ifdef USE_DECNUM - jv as_string = jv_dump_string(jv_copy(expected), rand() & ~(JV_PRINT_COLOR|JV_PRINT_REFCOUNT)); - jv reparsed = jv_parse_sized(jv_string_value(as_string), jv_string_length_bytes(jv_copy(as_string))); - assert(jv_equal(jv_copy(expected), jv_copy(reparsed))); - jv_free(as_string); - jv_free(reparsed); + if (!(jv_get_kind(expected) == JV_KIND_NUMBER && isnan(jv_number_value(expected)))) { + jv as_string = jv_dump_string(jv_copy(expected), rand() & ~(JV_PRINT_COLOR|JV_PRINT_REFCOUNT)); + jv reparsed = jv_parse_sized(jv_string_value(as_string), jv_string_length_bytes(jv_copy(as_string))); + assert(jv_equal(jv_copy(expected), jv_copy(reparsed))); + jv_free(as_string); + jv_free(reparsed); + } #endif jv_free(expected); jv_free(actual);