diff --git a/CMakeLists.txt b/CMakeLists.txt index d4997d2..3394236 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -535,6 +535,11 @@ if (NOT JANSSON_WITHOUT_TESTS) if (IS_DIRECTORY ${TESTDIR}) get_filename_component(TNAME ${TESTDIR} NAME) + if ((USE_DTOA AND EXISTS ${TESTDIR}/skip_if_dtoa) OR + (NOT USE_DTOA AND EXISTS ${TESTDIR}/skip_unless_dtoa)) + continue() + endif() + if (JANSSON_TEST_WITH_VALGRIND) add_test(memcheck__${SUITE}__${TNAME} ${MEMCHECK_COMMAND} ${SUITE_TEST_CMD} ${TESTDIR}) diff --git a/test/suites/valid/real-exponent-no-dtoa/input b/test/suites/valid/real-exponent-no-dtoa/input new file mode 100644 index 0000000..b2a69b9 --- /dev/null +++ b/test/suites/valid/real-exponent-no-dtoa/input @@ -0,0 +1 @@ +[123e45] diff --git a/test/suites/valid/real-exponent-no-dtoa/output b/test/suites/valid/real-exponent-no-dtoa/output new file mode 100644 index 0000000..5ffc719 --- /dev/null +++ b/test/suites/valid/real-exponent-no-dtoa/output @@ -0,0 +1 @@ +[1.2299999999999999e47] \ No newline at end of file diff --git a/test/suites/valid/real-exponent-no-dtoa/skip_if_dtoa b/test/suites/valid/real-exponent-no-dtoa/skip_if_dtoa new file mode 100644 index 0000000..e69de29 diff --git a/test/suites/valid/real-exponent/output b/test/suites/valid/real-exponent/output index 5ffc719..9b2c601 100644 --- a/test/suites/valid/real-exponent/output +++ b/test/suites/valid/real-exponent/output @@ -1 +1 @@ -[1.2299999999999999e47] \ No newline at end of file +[1.23e47] \ No newline at end of file diff --git a/test/suites/valid/real-exponent/skip_unless_dtoa b/test/suites/valid/real-exponent/skip_unless_dtoa new file mode 100644 index 0000000..e69de29 diff --git a/test/suites/valid/run b/test/suites/valid/run index 665aad0..15f89ec 100755 --- a/test/suites/valid/run +++ b/test/suites/valid/run @@ -5,11 +5,22 @@ # Jansson is free software; you can redistribute it and/or modify # it under the terms of the MIT license. See LICENSE for details. +dtoa_enabled() { + grep -q "DTOA_ENABLED 1" $top_builddir/jansson_private_config.h +} + is_test() { test -d $test_path } do_run() { + if [ -f $test_path/skip_unless_dtoa ]; then + dtoa_enabled || return 77 + fi + if [ -f $test_path/skip_if_dtoa ]; then + dtoa_enabled && return 77 + fi + variant=$1 s=".$1"