Skip to content

Commit 8b53d37

Browse files
committed
Merge pull request #86 from zbeekman/json-output-files
Json output files
2 parents fb3b0ee + 9923a0a commit 8b53d37

20 files changed

+90
-58
lines changed

CMakeLists.txt

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -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

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ for more examples. The source files may be found in `src/tests/`.
9595
call json_initialize()
9696
9797
! read the file
98-
call json%load_file(filename = '../files/test1.json')
98+
call json%load_file(filename = '../files/inputs/test1.json')
9999
100100
! print the file to the console
101101
call json%print_file()
@@ -182,7 +182,7 @@ of `json_value` pointers. For more examples see unit tests 2, 4 and 7 in `src/t
182182
nullify(inp) !don't need this anymore
183183
184184
! write the file:
185-
call json_print(p,'test2.json')
185+
call json_print(p,'../files/example2.json')
186186
187187
!cleanup:
188188
call json_destroy(p)

files/expected-outputs/example2.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"inputs": {
3+
"t0": 0.1E+0,
4+
"tf": 0.11E+1,
5+
"x0": 0.9999E+4,
6+
"integer_scalar": 787,
7+
"integer_array": [
8+
2,
9+
4,
10+
99
11+
],
12+
"names": [
13+
"aaa",
14+
"bbb",
15+
"ccc"
16+
],
17+
"logical_scalar": true,
18+
"logical_vector": [
19+
true,
20+
false,
21+
true
22+
]
23+
}
24+
}

files/expected-outputs/test2.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../inputs/test2.json
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)