SHA256
1
0
forked from pool/fast_float
Files
fast_float/make_supplemental_tests_optional.patch

103 lines
3.8 KiB
Diff

From 7f46adc19c8f3c3034fa9da91718db7b52c18763 Mon Sep 17 00:00:00 2001
From: StefanBruens <stefan.bruens@rwth-aachen.de>
Date: Tue, 26 Dec 2023 01:56:05 +0100
Subject: [PATCH] Make tests depending on supplemental_test_files optional
As the supplemental_test_files are quite large, it is useful to make
running the tests depending on it optional.
By default, the tests are kept enabled, but can be switched of by setting
`FASTFLOAT_SUPPLEMENTAL_TEST=OFF`.
Fixes: #232
---
tests/CMakeLists.txt | 33 +++++++++++++++++++++------------
tests/basictest.cpp | 2 ++
2 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 2cf649c..2718f47 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -5,16 +5,18 @@ cmake_minimum_required(VERSION 3.11 FATAL_ERROR)
include(FetchContent)
option(SYSTEM_DOCTEST "Use system copy of doctest" OFF)
+option(FASTFLOAT_SUPPLEMENTAL_TESTS "Run supplemental tests" ON)
if (NOT SYSTEM_DOCTEST)
FetchContent_Declare(doctest
GIT_REPOSITORY https://github.com/onqtam/doctest.git
GIT_TAG v2.4.10)
endif()
-FetchContent_Declare(supplemental_test_files
- GIT_REPOSITORY https://github.com/fastfloat/supplemental_test_files.git
- GIT_TAG origin/main)
-
+if (FASTFLOAT_SUPPLEMENTAL_TESTS)
+ FetchContent_Declare(supplemental_test_files
+ GIT_REPOSITORY https://github.com/fastfloat/supplemental_test_files.git
+ GIT_TAG origin/main)
+endif()
# FetchContent_MakeAvailable() was only introduced in 3.14
@@ -27,15 +29,19 @@ if (NOT SYSTEM_DOCTEST)
add_subdirectory(${doctest_SOURCE_DIR} ${doctest_BINARY_DIR})
endif()
endif()
-FetchContent_GetProperties(supplemental_test_files)
-if(NOT supplemental_test_files_POPULATED)
- message(STATUS "Tests enabled. Retrieving test files.")
- FetchContent_Populate(supplemental_test_files)
- message(STATUS "Test files retrieved.")
- add_subdirectory(${supplemental_test_files_SOURCE_DIR} ${supplemental_test_files_BINARY_DIR})
-endif()
+
add_library(supplemental-data INTERFACE)
-target_compile_definitions(supplemental-data INTERFACE SUPPLEMENTAL_TEST_DATA_DIR="${supplemental_test_files_BINARY_DIR}/data")
+if (FASTFLOAT_SUPPLEMENTAL_TESTS)
+ FetchContent_GetProperties(supplemental_test_files)
+ if(NOT supplemental_test_files_POPULATED)
+ message(STATUS "Supplemental tests enabled. Retrieving test files.")
+ FetchContent_Populate(supplemental_test_files)
+ message(STATUS "Supplemental test files retrieved.")
+ add_subdirectory(${supplemental_test_files_SOURCE_DIR} ${supplemental_test_files_BINARY_DIR})
+ endif()
+ target_compile_definitions(supplemental-data INTERFACE SUPPLEMENTAL_TEST_DATA_DIR="${supplemental_test_files_BINARY_DIR}/data")
+endif()
+
function(fast_float_add_cpp_test TEST_NAME)
add_executable(${TEST_NAME} ${TEST_NAME}.cpp)
if(CMAKE_CROSSCOMPILING)
@@ -67,6 +73,9 @@ if (FASTFLOAT_CONSTEXPR_TESTS)
else()
target_compile_features(basictest PRIVATE cxx_std_17)
endif()
+if (FASTFLOAT_SUPPLEMENTAL_TESTS)
+ target_compile_definitions(basictest PRIVATE FASTFLOAT_SUPPLEMENTAL_TESTS)
+endif()
fast_float_add_cpp_test(long_test)
fast_float_add_cpp_test(powersoffive_hardround)
diff --git a/tests/basictest.cpp b/tests/basictest.cpp
index 3d7f753..b1b6769 100644
--- a/tests/basictest.cpp
+++ b/tests/basictest.cpp
@@ -246,6 +246,7 @@ TEST_CASE("parse_negative_zero") {
CHECK(float64_parsed == 0x8000'0000'0000'0000);
}
+#if FASTFLOAT_SUPPLEMENTAL_TESTS
// C++ 17 because it is otherwise annoying to browse all files in a directory.
// We also only run these tests on little endian systems.
#if (FASTFLOAT_CPLUSPLUS >= 201703L) && (FASTFLOAT_IS_BIG_ENDIAN == 0) && !defined(FASTFLOAT_ODDPLATFORM)
@@ -336,6 +337,7 @@ TEST_CASE("supplemental") {
}
}
#endif
+#endif
TEST_CASE("leading_zeroes") {
constexpr const uint64_t bit = 1;