Skip to content

Commit 4036ee3

Browse files
committed
Merge bitcoin/bitcoin#31542: test: Embed univalue json tests in binary
faf7eac test: clang-format -i src/univalue/test/unitester.cpp (MarcoFalke) fafa9cc test: Embed univalue json tests in binary (MarcoFalke) fa04485 test: Re-enable univalue test fail18.json (MarcoFalke) 63b6b63 build: Use character literals for generated headers to avoid narrowing (Lőrinc) Pull request description: All other benchmarks and tests have their data embedded, except for the univalue json tests. This is not only confusing, but also problematic, when the test binary is moved to a different system for testing, because one has to put the test files in the source dir that was used at compile-time. Fix all issues by embedding them. Also, re-enable a disabled test. Also, fix an issue in the GenerateHeaderFromJson.cmake. Requested in https://github.com/bitcoin/bitcoin/pull/31434/files#r1876000910 ACKs for top commit: l0rinc: ACK faf7eac fjahr: tACK faf7eac achow101: ACK faf7eac TheCharlatan: Re-ACK faf7eac hebasto: Re-ACK faf7eac. The commit, which modifies CMake scripts, has been replaced with the one from bitcoin/bitcoin#31547, and a formatting commit has been added since my recent [review](bitcoin/bitcoin#31542 (review)). Tree-SHA512: 72ad202125746f32ccf07411ad3efd2771f27a40525c204cba3c9c83b3ca46d05dd18f6fa5985720c6684bdcbb4c4853fc609ced095ddd1a124832318dd8a55d
2 parents 6aa0e70 + faf7eac commit 4036ee3

File tree

6 files changed

+254
-117
lines changed

6 files changed

+254
-117
lines changed

cmake/script/GenerateHeaderFromJson.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ cmake_path(GET JSON_SOURCE_PATH STEM json_source_basename)
66

77
file(READ ${JSON_SOURCE_PATH} hex_content HEX)
88
string(REGEX REPLACE "................" "\\0\n" formatted_bytes "${hex_content}")
9-
string(REGEX REPLACE "[^\n][^\n]" "0x\\0, " formatted_bytes "${formatted_bytes}")
9+
string(REGEX REPLACE "[^\n][^\n]" "'\\\\x\\0'," formatted_bytes "${formatted_bytes}")
1010

1111
set(header_content
1212
"#include <string_view>

cmake/script/GenerateHeaderFromRaw.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ cmake_path(GET RAW_SOURCE_PATH STEM raw_source_basename)
66

77
file(READ ${RAW_SOURCE_PATH} hex_content HEX)
88
string(REGEX REPLACE "................" "\\0\n" formatted_bytes "${hex_content}")
9-
string(REGEX REPLACE "[^\n][^\n]" "std::byte{0x\\0}, " formatted_bytes "${formatted_bytes}")
9+
string(REGEX REPLACE "[^\n][^\n]" "std::byte{0x\\0}," formatted_bytes "${formatted_bytes}")
1010

1111
set(header_content
1212
"#include <cstddef>

src/univalue/CMakeLists.txt

Lines changed: 113 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,119 @@ target_include_directories(univalue
1515
target_link_libraries(univalue PRIVATE core_interface)
1616

1717
if(BUILD_TESTS)
18-
add_executable(unitester test/unitester.cpp)
19-
target_compile_definitions(unitester
20-
PRIVATE
21-
JSON_TEST_SRC=\"${CMAKE_CURRENT_SOURCE_DIR}/test\"
18+
include(GenerateHeaders)
19+
generate_header_from_json(test/fail1.json)
20+
generate_header_from_json(test/fail10.json)
21+
generate_header_from_json(test/fail11.json)
22+
generate_header_from_json(test/fail12.json)
23+
generate_header_from_json(test/fail13.json)
24+
generate_header_from_json(test/fail14.json)
25+
generate_header_from_json(test/fail15.json)
26+
generate_header_from_json(test/fail16.json)
27+
generate_header_from_json(test/fail17.json)
28+
generate_header_from_json(test/fail18.json)
29+
generate_header_from_json(test/fail19.json)
30+
generate_header_from_json(test/fail2.json)
31+
generate_header_from_json(test/fail20.json)
32+
generate_header_from_json(test/fail21.json)
33+
generate_header_from_json(test/fail22.json)
34+
generate_header_from_json(test/fail23.json)
35+
generate_header_from_json(test/fail24.json)
36+
generate_header_from_json(test/fail25.json)
37+
generate_header_from_json(test/fail26.json)
38+
generate_header_from_json(test/fail27.json)
39+
generate_header_from_json(test/fail28.json)
40+
generate_header_from_json(test/fail29.json)
41+
generate_header_from_json(test/fail3.json)
42+
generate_header_from_json(test/fail30.json)
43+
generate_header_from_json(test/fail31.json)
44+
generate_header_from_json(test/fail32.json)
45+
generate_header_from_json(test/fail33.json)
46+
generate_header_from_json(test/fail34.json)
47+
generate_header_from_json(test/fail35.json)
48+
generate_header_from_json(test/fail36.json)
49+
generate_header_from_json(test/fail37.json)
50+
generate_header_from_json(test/fail38.json)
51+
generate_header_from_json(test/fail39.json)
52+
generate_header_from_json(test/fail4.json)
53+
generate_header_from_json(test/fail40.json)
54+
generate_header_from_json(test/fail41.json)
55+
generate_header_from_json(test/fail42.json)
56+
generate_header_from_json(test/fail44.json)
57+
generate_header_from_json(test/fail45.json)
58+
generate_header_from_json(test/fail5.json)
59+
generate_header_from_json(test/fail6.json)
60+
generate_header_from_json(test/fail7.json)
61+
generate_header_from_json(test/fail8.json)
62+
generate_header_from_json(test/fail9.json)
63+
generate_header_from_json(test/pass1.json)
64+
generate_header_from_json(test/pass2.json)
65+
generate_header_from_json(test/pass3.json)
66+
generate_header_from_json(test/pass4.json)
67+
generate_header_from_json(test/round1.json)
68+
generate_header_from_json(test/round2.json)
69+
generate_header_from_json(test/round3.json)
70+
generate_header_from_json(test/round4.json)
71+
generate_header_from_json(test/round5.json)
72+
generate_header_from_json(test/round6.json)
73+
generate_header_from_json(test/round7.json)
74+
add_executable(unitester
75+
${CMAKE_CURRENT_BINARY_DIR}/test/fail1.json.h
76+
${CMAKE_CURRENT_BINARY_DIR}/test/fail10.json.h
77+
${CMAKE_CURRENT_BINARY_DIR}/test/fail11.json.h
78+
${CMAKE_CURRENT_BINARY_DIR}/test/fail12.json.h
79+
${CMAKE_CURRENT_BINARY_DIR}/test/fail13.json.h
80+
${CMAKE_CURRENT_BINARY_DIR}/test/fail14.json.h
81+
${CMAKE_CURRENT_BINARY_DIR}/test/fail15.json.h
82+
${CMAKE_CURRENT_BINARY_DIR}/test/fail16.json.h
83+
${CMAKE_CURRENT_BINARY_DIR}/test/fail17.json.h
84+
${CMAKE_CURRENT_BINARY_DIR}/test/fail18.json.h
85+
${CMAKE_CURRENT_BINARY_DIR}/test/fail19.json.h
86+
${CMAKE_CURRENT_BINARY_DIR}/test/fail2.json.h
87+
${CMAKE_CURRENT_BINARY_DIR}/test/fail20.json.h
88+
${CMAKE_CURRENT_BINARY_DIR}/test/fail21.json.h
89+
${CMAKE_CURRENT_BINARY_DIR}/test/fail22.json.h
90+
${CMAKE_CURRENT_BINARY_DIR}/test/fail23.json.h
91+
${CMAKE_CURRENT_BINARY_DIR}/test/fail24.json.h
92+
${CMAKE_CURRENT_BINARY_DIR}/test/fail25.json.h
93+
${CMAKE_CURRENT_BINARY_DIR}/test/fail26.json.h
94+
${CMAKE_CURRENT_BINARY_DIR}/test/fail27.json.h
95+
${CMAKE_CURRENT_BINARY_DIR}/test/fail28.json.h
96+
${CMAKE_CURRENT_BINARY_DIR}/test/fail29.json.h
97+
${CMAKE_CURRENT_BINARY_DIR}/test/fail3.json.h
98+
${CMAKE_CURRENT_BINARY_DIR}/test/fail30.json.h
99+
${CMAKE_CURRENT_BINARY_DIR}/test/fail31.json.h
100+
${CMAKE_CURRENT_BINARY_DIR}/test/fail32.json.h
101+
${CMAKE_CURRENT_BINARY_DIR}/test/fail33.json.h
102+
${CMAKE_CURRENT_BINARY_DIR}/test/fail34.json.h
103+
${CMAKE_CURRENT_BINARY_DIR}/test/fail35.json.h
104+
${CMAKE_CURRENT_BINARY_DIR}/test/fail36.json.h
105+
${CMAKE_CURRENT_BINARY_DIR}/test/fail37.json.h
106+
${CMAKE_CURRENT_BINARY_DIR}/test/fail38.json.h
107+
${CMAKE_CURRENT_BINARY_DIR}/test/fail39.json.h
108+
${CMAKE_CURRENT_BINARY_DIR}/test/fail4.json.h
109+
${CMAKE_CURRENT_BINARY_DIR}/test/fail40.json.h
110+
${CMAKE_CURRENT_BINARY_DIR}/test/fail41.json.h
111+
${CMAKE_CURRENT_BINARY_DIR}/test/fail42.json.h
112+
${CMAKE_CURRENT_BINARY_DIR}/test/fail44.json.h
113+
${CMAKE_CURRENT_BINARY_DIR}/test/fail45.json.h
114+
${CMAKE_CURRENT_BINARY_DIR}/test/fail5.json.h
115+
${CMAKE_CURRENT_BINARY_DIR}/test/fail6.json.h
116+
${CMAKE_CURRENT_BINARY_DIR}/test/fail7.json.h
117+
${CMAKE_CURRENT_BINARY_DIR}/test/fail8.json.h
118+
${CMAKE_CURRENT_BINARY_DIR}/test/fail9.json.h
119+
${CMAKE_CURRENT_BINARY_DIR}/test/pass1.json.h
120+
${CMAKE_CURRENT_BINARY_DIR}/test/pass2.json.h
121+
${CMAKE_CURRENT_BINARY_DIR}/test/pass3.json.h
122+
${CMAKE_CURRENT_BINARY_DIR}/test/pass4.json.h
123+
${CMAKE_CURRENT_BINARY_DIR}/test/round1.json.h
124+
${CMAKE_CURRENT_BINARY_DIR}/test/round2.json.h
125+
${CMAKE_CURRENT_BINARY_DIR}/test/round3.json.h
126+
${CMAKE_CURRENT_BINARY_DIR}/test/round4.json.h
127+
${CMAKE_CURRENT_BINARY_DIR}/test/round5.json.h
128+
${CMAKE_CURRENT_BINARY_DIR}/test/round6.json.h
129+
${CMAKE_CURRENT_BINARY_DIR}/test/round7.json.h
130+
test/unitester.cpp
22131
)
23132
target_link_libraries(unitester
24133
PRIVATE

src/univalue/test/fail18.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]
1+
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

src/univalue/test/pass2.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
1+
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

0 commit comments

Comments
 (0)