summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2010-09-21 17:23:53 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2010-09-21 17:23:53 (GMT)
commitf8e2dfd298b4121b102d984849fa3be7b059707b (patch)
tree0d425fb8d97fa26337dd3cbe763a88992160537d /config
parent353e910462962941d88ad90aea7ed6740eb420d9 (diff)
downloadhdf5-f8e2dfd298b4121b102d984849fa3be7b059707b.zip
hdf5-f8e2dfd298b4121b102d984849fa3be7b059707b.tar.gz
hdf5-f8e2dfd298b4121b102d984849fa3be7b059707b.tar.bz2
[svn-r19459] Add CMake tests for check-vfd; includes new vfdTest.cmake script and OPTION HDF5_TEST_VFD
Tested: local linux
Diffstat (limited to 'config')
-rw-r--r--config/cmake/runTest.cmake4
-rw-r--r--config/cmake/vfdTest.cmake41
2 files changed, 43 insertions, 2 deletions
diff --git a/config/cmake/runTest.cmake b/config/cmake/runTest.cmake
index 227ef9b..ed415f7 100644
--- a/config/cmake/runTest.cmake
+++ b/config/cmake/runTest.cmake
@@ -50,9 +50,9 @@ IF (TEST_APPEND)
FILE (APPEND ${TEST_OUTPUT} "${TEST_APPEND} ${TEST_RESULT}\n")
ENDIF (TEST_APPEND)
-# if the return value is !=0 bail out
+# if the return value is !=${TEST_EXPECT} bail out
IF (NOT ${TEST_RESULT} STREQUAL ${TEST_EXPECT})
- MESSAGE ( FATAL_ERROR "Failed: Test program ${TEST_PROGRAM} exited != 0.\n${TEST_ERROR}")
+ MESSAGE ( FATAL_ERROR "Failed: Test program ${TEST_PROGRAM} exited != ${TEST_EXPECT}.\n${TEST_ERROR}")
ENDIF (NOT ${TEST_RESULT} STREQUAL ${TEST_EXPECT})
MESSAGE (STATUS "COMMAND Error: ${TEST_ERROR}")
diff --git a/config/cmake/vfdTest.cmake b/config/cmake/vfdTest.cmake
new file mode 100644
index 0000000..eaa019a
--- /dev/null
+++ b/config/cmake/vfdTest.cmake
@@ -0,0 +1,41 @@
+# 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_EXPECT)
+# MESSAGE (STATUS "Require TEST_EXPECT to be defined")
+#ENDIF (NOT TEST_EXPECT)
+IF (NOT TEST_FOLDER)
+ MESSAGE ( FATAL_ERROR "Require TEST_FOLDER to be defined")
+ENDIF (NOT TEST_FOLDER)
+IF (NOT TEST_VFD)
+ MESSAGE (FATAL_ERROR "Require TEST_VFD to be defined")
+ENDIF (NOT TEST_VFD)
+
+MESSAGE (STATUS "USING ${TEST_VFD} ON COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")
+
+SET (ENV{HDF5_DRIVER} "${TEST_VFD}")
+# run the test program, capture the stdout/stderr and the result var
+EXECUTE_PROCESS (
+ COMMAND ${TEST_PROGRAM} ${TEST_ARGS}
+ WORKING_DIRECTORY ${TEST_FOLDER}
+ OUTPUT_VARIABLE TEST_ERROR
+ ERROR_VARIABLE TEST_ERROR
+)
+
+MESSAGE (STATUS "COMMAND Result: ${TEST_RESULT}")
+
+# if the return value is !=${TEST_EXPECT} bail out
+IF (NOT ${TEST_RESULT} STREQUAL ${TEST_EXPECT})
+ MESSAGE ( FATAL_ERROR "Failed: Test program ${TEST_PROGRAM} exited != ${TEST_EXPECT}.\n${TEST_ERROR}")
+ENDIF (NOT ${TEST_RESULT} STREQUAL ${TEST_EXPECT})
+
+# everything went fine...
+MESSAGE ("Passed: The ${TEST_PROGRAM} program used vfd ${TEST_VFD}")
+