Skip to content

Commit 691dfd4

Browse files
committed
multiprecision: sophisticated randomized tests
1 parent 6d1d7f2 commit 691dfd4

File tree

7 files changed

+507
-74264
lines changed

7 files changed

+507
-74264
lines changed

crypto3/libs/multiprecision/test/CMakeLists.txt

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,27 @@ cm_test_link_libraries(
1515
Boost::unit_test_framework
1616
)
1717

18+
set(GENERATED_TEST_DATA_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated)
19+
20+
set(GENERATED_FILES
21+
"include/generated_test_data/big_uint_randomized_test_instances.hpp"
22+
"big_uint_randomized_test_cases.json"
23+
"big_mod_randomized_test_cases.json"
24+
)
25+
26+
list(TRANSFORM GENERATED_FILES PREPEND ${GENERATED_TEST_DATA_DIR}/)
27+
28+
find_package(Python COMPONENTS Interpreter)
29+
30+
add_custom_command(
31+
OUTPUT ${GENERATED_FILES}
32+
COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/generate_test_data.py ${GENERATED_TEST_DATA_DIR}
33+
DEPENDS generate_test_data.py
34+
VERBATIM
35+
)
36+
37+
add_custom_target(generated_test_data DEPENDS ${GENERATED_FILES})
38+
1839
macro(define_multiprecision_test_variant name disable_intrinsics disable_int128)
1940
set(test_name "${CURRENT_PROJECT_NAME}-")
2041

@@ -52,7 +73,9 @@ macro(define_multiprecision_test_variant name disable_intrinsics disable_int128)
5273
target_compile_options(${test_name} PRIVATE "-fconstexpr-ops-limit=4294967295")
5374
endif()
5475

55-
target_compile_definitions(${test_name} PRIVATE TEST_DATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/data/")
76+
add_dependencies(${test_name} generated_test_data)
77+
target_include_directories(${test_name} PRIVATE ${GENERATED_TEST_DATA_DIR}/include)
78+
target_compile_definitions(${test_name} PRIVATE TEST_DATA_DIR="${GENERATED_TEST_DATA_DIR}")
5679

5780
if (${disable_intrinsics})
5881
target_compile_definitions(${test_name} PRIVATE NIL_CO3_MP_DISABLE_INTRINSICS)

crypto3/libs/multiprecision/test/big_mod_randomized.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ std::vector<T> as_vector(const boost::property_tree::ptree &pt) {
4141
template<typename T>
4242
auto test_dataset(const std::string &test_name) {
4343
static std::string test_data =
44-
std::string(TEST_DATA_DIR) + R"(big_mod_randomized.json)";
44+
std::string(TEST_DATA_DIR) + "/big_mod_randomized_test_cases.json";
4545
boost::property_tree::ptree test_dataset;
4646
boost::property_tree::read_json(test_data, test_dataset);
4747

0 commit comments

Comments
 (0)