diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2010-09-16 20:31:06 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2010-09-16 20:31:06 (GMT) |
commit | 4bae291b1f0f4d6a51f24d18bc68e4c4475498b5 (patch) | |
tree | 76b201bb16d9084775e1df1457ecedf81b7f0bb4 /config/cmake | |
parent | f93f533fd5b1e1c998392d3c1ad95f65970ef5f3 (diff) | |
download | hdf5-4bae291b1f0f4d6a51f24d18bc68e4c4475498b5.zip hdf5-4bae291b1f0f4d6a51f24d18bc68e4c4475498b5.tar.gz hdf5-4bae291b1f0f4d6a51f24d18bc68e4c4475498b5.tar.bz2 |
[svn-r19403] Update to H5REPACK tests for layout info required a grep script like runTest.cmake.
Update CMakeLists.txt for new h5repack layout tests.
Tested: local linux
Diffstat (limited to 'config/cmake')
-rw-r--r-- | config/cmake/grepTest.cmake | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/config/cmake/grepTest.cmake b/config/cmake/grepTest.cmake new file mode 100644 index 0000000..cc3a9b4 --- /dev/null +++ b/config/cmake/grepTest.cmake @@ -0,0 +1,61 @@ +# runTest.cmake executes a command and captures the output in a file. File is then compared +# against a reference file. Exit status of command can also be compared. + +# arguments checking +IF (NOT TEST_PROGRAM) + MESSAGE (FATAL_ERROR "Require TEST_PROGRAM to be defined") +ENDIF (NOT TEST_PROGRAM) +#IF (NOT TEST_ARGS) +# MESSAGE (STATUS "Require TEST_ARGS to be defined") +#ENDIF (NOT TEST_ARGS) +IF (NOT TEST_FOLDER) + MESSAGE ( FATAL_ERROR "Require TEST_FOLDER to be defined") +ENDIF (NOT TEST_FOLDER) +IF (NOT TEST_OUTPUT) + MESSAGE (FATAL_ERROR "Require TEST_OUTPUT to be defined") +ENDIF (NOT TEST_OUTPUT) +#IF (NOT TEST_EXPECT) +# MESSAGE (STATUS "Require TEST_EXPECT to be defined") +#ENDIF (NOT TEST_EXPECT) +IF (NOT TEST_FILTER) + MESSAGE (STATUS "Require TEST_FILTER to be defined") +ENDIF (NOT TEST_FILTER) +IF (NOT TEST_REFERENCE) + MESSAGE (FATAL_ERROR "Require TEST_REFERENCE to be defined") +ENDIF (NOT TEST_REFERENCE) + +MESSAGE (STATUS "COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}") + +# run the test program, capture the stdout/stderr and the result var +EXECUTE_PROCESS ( + COMMAND ${TEST_PROGRAM} ${TEST_ARGS} + WORKING_DIRECTORY ${TEST_FOLDER} + RESULT_VARIABLE TEST_RESULT + OUTPUT_FILE ${TEST_OUTPUT} + ERROR_FILE ${TEST_OUTPUT}.err + OUTPUT_VARIABLE TEST_ERROR + ERROR_VARIABLE TEST_ERROR +) + +MESSAGE (STATUS "COMMAND Result: ${TEST_RESULT}") +MESSAGE (STATUS "COMMAND Error: ${TEST_ERROR}") + +# now grep the output with the reference +FILE (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM) + +STRING(REGEX MATCH "${TEST_FILTER}" TEST_MATCH ${TEST_STREAM}) +IF (${TEST_EXPECT}) + STRING(LENGTH "${TEST_MATCH}" TEST_RESULT) + IF (NOT ${TEST_RESULT} STREQUAL "0") + MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did contain ${TEST_REFERENCE}") + ENDIF (NOT ${TEST_RESULT} STREQUAL "0") +ELSE (${TEST_EXPECT}) + STRING(COMPARE EQUAL "${TEST_REFERENCE}" "${TEST_MATCH}" TEST_RESULT) + IF (${TEST_RESULT} STREQUAL "0") + MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did not contain ${TEST_REFERENCE}") + ENDIF (${TEST_RESULT} STREQUAL "0") +ENDIF (${TEST_EXPECT}) + +# everything went fine... +MESSAGE ("Passed: The output of ${TEST_PROGRAM} matched") + |