@@ -160,37 +160,37 @@ if ( ENABLE_TESTS )
160160
161161 find_program ( JSONLINT jsonlint )
162162 find_program ( DIFF diff )
163- set ( DATA_DIR ${CMAKE_BINARY_DIR} /files )
164- configure_file ( ${CMAKE_SOURCE_DIR} /files /test1.json ${DATA_DIR} /test1.json COPYONLY )
165- configure_file ( ${CMAKE_SOURCE_DIR} /files /test5.json ${DATA_DIR} /test5.json COPYONLY )
166- configure_file ( ${CMAKE_SOURCE_DIR} /files /invalid.json ${DATA_DIR} /invalid.json COPYONLY )
167- configure_file ( ${CMAKE_SOURCE_DIR} /files /invalid2.json ${DATA_DIR} /invalid2.json COPYONLY )
168- configure_file ( ${CMAKE_SOURCE_DIR} /files /big.json ${DATA_DIR} /big.json COPYONLY )
169- configure_file ( ${CMAKE_SOURCE_DIR} /files /random1.json ${DATA_DIR} /random1.json COPYONLY )
163+ file ( COPY "${CMAKE_SOURCE_DIR} /files"
164+ DESTINATION "${CMAKE_BINARY_DIR} /" )
165+
166+ set ( DATA_DIR "${CMAKE_BINARY_DIR} /files" )
170167
171168 set_directory_properties ( PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
172169 "${DATA_DIR} /test2.json;${DATA_DIR} /test4.json" )
173170
174171 # Validate input
175172 if ( JSONLINT )
176- add_test ( NAME validate-input1
177- WORKING_DIRECTORY ${DATA_DIR}
178- COMMAND ${JSONLINT} test1.json )
179- add_test ( NAME validate-input5
180- WORKING_DIRECTORY ${DATA_DIR}
181- COMMAND ${JSONLINT} test5.json )
182- add_test ( NAME validate-invalid
183- WORKING_DIRECTORY ${DATA_DIR}
184- COMMAND ${JSONLINT} invalid.json )
185- set_property ( TEST validate-invalid
186- PROPERTY
187- WILL_FAIL TRUE )
188- add_test ( NAME validate-invalid2
189- WORKING_DIRECTORY ${DATA_DIR}
190- COMMAND ${JSONLINT} invalid2.json )
191- set_property ( TEST validate-invalid2
192- PROPERTY
193- WILL_FAIL TRUE )
173+ file ( GLOB JSON_INPUTS "${DATA_DIR} /inputs/*.json" )
174+ file ( GLOB INVALID_JSON "${DATA_DIR} /inputs/*invalid*.json" )
175+
176+ list ( REMOVE_ITEM JSON_INPUTS ${INVALID_JSON} )
177+
178+ foreach ( VALID_JSON ${JSON_INPUTS} )
179+ get_filename_component ( TESTNAME "${VALID_JSON} " NAME )
180+ add_test ( NAME validate-${TESTNAME}
181+ WORKING_DIRECTORY "${DATA_DIR} /inputs"
182+ COMMAND ${JSONLINT} "${VALID_JSON} " )
183+ endforeach ()
184+
185+ foreach ( INVALID ${INVALID_JSON} )
186+ get_filename_component ( TESTNAME "${INVALID} " NAME )
187+ add_test ( NAME validate-${TESTNAME}
188+ WORKING_DIRECTORY "${DATA_DIR} /inputs"
189+ COMMAND ${JSONLINT} "${INVALID} " )
190+ set_property ( TEST validate-${TESTNAME}
191+ PROPERTY
192+ WILL_FAIL TRUE )
193+ endforeach ()
194194 endif ()
195195
196196 set ( UNIT_TESTS '' )
@@ -218,27 +218,28 @@ if ( ENABLE_TESTS )
218218
219219 # Validate output
220220 if ( JSONLINT )
221- file ( GLOB JSON_FILES "${DATA_DIR} /test *.json" )
221+ file ( GLOB JSON_FILES "${DATA_DIR} /*.json" )
222222 foreach ( JSON_FILE ${JSON_FILES} )
223- get_filename_component ( JSON_STEM ${JSON_FILE} NAME_WE )
224- add_test ( NAME validate-output -${JSON_STEM} .json
225- WORKING_DIRECTORY ${DATA_DIR}
226- COMMAND ${JSONLINT} ${JSON_STEM} .json )
227- set_property ( TEST validate-output -${JSON_STEM} .json
223+ get_filename_component ( TESTNAME ${JSON_FILE} NAME )
224+ add_test ( NAME validate-output -${TESTNAME}
225+ WORKING_DIRECTORY " ${DATA_DIR} "
226+ COMMAND ${JSONLINT} ${TESTNAME} )
227+ set_property ( TEST validate-output -${TESTNAME}
228228 APPEND
229229 PROPERTY
230230 DEPENDS ${UNIT_TESTS}
231231 REQUIRED_FILES ${JSON_FILES} )
232232 endforeach ( JSON_FILE )
233233 endif ()
234+
234235 # Check output for differences
235236 if ( DIFF )
236- file ( GLOB JSON_FILES "${DATA_DIR} /test *.json" )
237+ file ( GLOB JSON_FILES "${DATA_DIR} /*.json" )
237238 foreach ( JSON_FILE ${JSON_FILES} )
238239 get_filename_component ( JSON_STEM ${JSON_FILE} NAME_WE )
239240 add_test ( NAME regression-${JSON_STEM} .json
240- WORKING_DIRECTORY ${DATA_DIR}
241- COMMAND ${DIFF} -q ${JSON_STEM} .json ${CMAKE_SOURCE_DIR} / files /${JSON_STEM} .json )
241+ WORKING_DIRECTORY " ${DATA_DIR} "
242+ COMMAND ${DIFF} -q ${JSON_STEM} .json expected-outputs /${JSON_STEM} .json )
242243 set_property ( TEST regression-${JSON_STEM} .json
243244 APPEND
244245 PROPERTY
0 commit comments