HDFFV-10632 - split stderr and stdout in cmake

This commit is contained in:
Allen Byrne 2018-12-03 09:35:59 -06:00
parent 86c4e7ac0f
commit e3e24a2989
88 changed files with 523 additions and 251 deletions

View File

@ -1388,14 +1388,15 @@
./tools/test/h5format_convert/testfiles/h5fc_v_err.ddl.err
./tools/test/h5format_convert/testfiles/h5fc_v_non_chunked.ddl
./tools/test/h5format_convert/testfiles/h5fc_d_file.ddl
./tools/test/h5format_convert/testfiles/h5fc_d_file.err
./tools/test/h5format_convert/testfiles/h5fc_v_ndata_bt1.ddl
./tools/test/h5format_convert/testfiles/h5fc_dname.ddl
./tools/test/h5format_convert/testfiles/h5fc_nonexistdset_file.ddl
./tools/test/h5format_convert/testfiles/h5fc_dname.err
./tools/test/h5format_convert/testfiles/h5fc_nonexistdset_file.ddl.err
./tools/test/h5format_convert/testfiles/h5fc_help.ddl
./tools/test/h5format_convert/testfiles/h5fc_v_all.ddl
./tools/test/h5format_convert/testfiles/h5fc_nooption.ddl
./tools/test/h5format_convert/testfiles/h5fc_v_n_1d.ddl
./tools/test/h5format_convert/testfiles/h5fc_nonexistfile.ddl
./tools/test/h5format_convert/testfiles/h5fc_non_v3.h5
./tools/test/h5format_convert/testfiles/h5fc_edge_v3.h5
./tools/test/h5format_convert/testfiles/h5fc_err_level.h5
@ -1465,6 +1466,11 @@
./tools/test/h5ls/vds_prefix/tvds-4.ls
./tools/test/h5ls/vds_prefix/tvds-5.ls
# h5ls test error files
./tools/test/h5ls/errfiles/nosuchfile.err
./tools/test/h5ls/errfiles/textlinksrc-nodangle-1.err
./tools/test/h5ls/errfiles/tgroup-1.err
# h5copy sources
./tools/src/h5copy/Makefile.am
./tools/src/h5copy/h5copy.c
@ -1522,8 +1528,8 @@
./tools/test/misc/testfiles/h5clear_missing_file.ddl
./tools/test/misc/testfiles/h5clear_noclose_after_size.ddl
./tools/test/misc/testfiles/h5clear_noclose_before_size.ddl
./tools/test/misc/testfiles/h5clear_no_mdc_image.ddl
./tools/test/misc/testfiles/h5clear_open_fail.ddl
./tools/test/misc/testfiles/h5clear_no_mdc_image.err
./tools/test/misc/testfiles/h5clear_open_fail.err
./tools/test/misc/testfiles/h5clear_status_noclose_after_size.ddl
./tools/test/misc/testfiles/h5clear_usage.ddl
./tools/test/misc/testfiles/h5clear_user_equal_after_size.ddl
@ -1577,10 +1583,6 @@
./tools/test/h5stat/testh5stat.sh.in
./tools/test/h5stat/testfiles/h5stat_dims1.ddl
./tools/test/h5stat/testfiles/h5stat_dims2.ddl
./tools/test/h5stat/testfiles/h5stat_err1_dims.ddl
./tools/test/h5stat/testfiles/h5stat_err1_links.ddl
./tools/test/h5stat/testfiles/h5stat_err1_numattrs.ddl
./tools/test/h5stat/testfiles/h5stat_err2_numattrs.ddl
./tools/test/h5stat/testfiles/h5stat_err_old_fill.h5
./tools/test/h5stat/testfiles/h5stat_err_old_fill.ddl
./tools/test/h5stat/testfiles/h5stat_err_old_layout.h5
@ -1618,6 +1620,15 @@
./tools/test/h5stat/testfiles/h5stat_threshold.h5
./tools/test/h5stat/testfiles/h5stat_tsohm.ddl
./tools/test/h5stat/testfiles/h5stat_tsohm.h5
./tools/test/h5stat/testfiles/h5stat_err_refcount.err
./tools/test/h5stat/testfiles/h5stat_err_old_layout.err
./tools/test/h5stat/testfiles/h5stat_err_old_fill.err
./tools/test/h5stat/testfiles/h5stat_err1_dims.err
./tools/test/h5stat/testfiles/h5stat_err1_links.err
./tools/test/h5stat/testfiles/h5stat_err1_numattrs.err
./tools/test/h5stat/testfiles/h5stat_err2_numattrs.err
./tools/test/h5stat/testfiles/h5stat_notexist.err
./tools/test/h5stat/testfiles/h5stat_nofile.err
# h5dump test files
./tools/testfiles/charsets.h5
@ -2490,6 +2501,7 @@
./tools/test/h5diff/testfiles/tudfilter.h5
./tools/test/h5diff/testfiles/tudfilter2.h5
./tools/test/h5diff/testfiles/h5diff_ud.txt
./tools/test/h5diff/testfiles/h5diff_udfail.err
./tools/test/h5diff/testfiles/h5diff_udfail.txt
./tools/test/h5diff/testfiles/diff_strings1.h5
./tools/test/h5diff/testfiles/diff_strings2.h5
@ -2590,6 +2602,7 @@
./tools/test/h5copy/testfiles/h5copy_extlinks_src.h5
./tools/test/h5copy/testfiles/h5copy_extlinks_trg.h5
./tools/test/h5copy/testfiles/h5copy_extlinks_src.out.ls
./tools/test/h5copy/testfiles/h5copy_misc1.err
./tools/test/h5copy/testfiles/h5copy_misc1.out
./tools/test/h5copy/testfiles/h5copytst_new.h5
./tools/test/h5copy/testfiles/h5copytst_new.out.ls
@ -2758,16 +2771,17 @@
# expected test output from testing h5watch
#
./hl/tools/testfiles/w-err-cmpd1.ddl
./hl/tools/testfiles/w-err-cmpd2.ddl
./hl/tools/testfiles/w-err-cmpd3.ddl
./hl/tools/testfiles/w-err-cmpd4.ddl
./hl/tools/testfiles/w-err-cmpd5.ddl
./hl/tools/testfiles/w-err-dset1.ddl
./hl/tools/testfiles/w-err-dset2.ddl
./hl/tools/testfiles/w-err-dset-nomax.ddl
./hl/tools/testfiles/w-err-dset-none.ddl
./hl/tools/testfiles/w-err-file.ddl
./hl/tools/testfiles/w-err-std.ddl
./hl/tools/testfiles/w-err-cmpd1.err
./hl/tools/testfiles/w-err-cmpd2.err
./hl/tools/testfiles/w-err-cmpd3.err
./hl/tools/testfiles/w-err-cmpd4.err
./hl/tools/testfiles/w-err-cmpd5.err
./hl/tools/testfiles/w-err-dset1.err
./hl/tools/testfiles/w-err-dset2.err
./hl/tools/testfiles/w-err-dset-nomax.err
./hl/tools/testfiles/w-err-dset-none.err
./hl/tools/testfiles/w-err-file.err
./hl/tools/testfiles/w-err-poll0.ddl
./hl/tools/testfiles/w-err-poll.ddl
./hl/tools/testfiles/w-err-width.ddl

View File

@ -32,9 +32,6 @@ endif ()
if (NOT TEST_CLASSPATH)
message (STATUS "Require TEST_CLASSPATH to be defined")
endif ()
if (NOT TEST_REFERENCE)
message (FATAL_ERROR "Require TEST_REFERENCE to be defined")
endif ()
if (EXISTS ${TEST_FOLDER}/${TEST_OUTPUT})
file (REMOVE ${TEST_FOLDER}/${TEST_OUTPUT})
@ -44,14 +41,6 @@ if (EXISTS ${TEST_FOLDER}/${TEST_OUTPUT}.err)
file (REMOVE ${TEST_FOLDER}/${TEST_OUTPUT}.err)
endif ()
# if there is not an error reference file add the error output to the stdout file
if (NOT TEST_ERRREF)
if (NOT SKIP_APPEND)
# append error file since skip was not defined
set (ERROR_APPEND 1)
endif ()
endif ()
if (NOT TEST_LOG_LEVEL)
set (LOG_LEVEL "info")
else ()
@ -131,54 +120,56 @@ message (STATUS "COMMAND Error: ${TEST_ERROR}")
# compare output files to references unless this must be skipped
if (NOT TEST_SKIP_COMPARE)
if (WIN32 AND NOT MINGW)
file (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
file (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
endif ()
if (EXISTS ${TEST_FOLDER}/${TEST_REFERENCE})
if (WIN32 AND NOT MINGW)
file (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
file (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
endif ()
# now compare the output with the reference
execute_process (
COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE}
RESULT_VARIABLE TEST_RESULT
)
if (NOT "${TEST_RESULT}" STREQUAL "0")
set (TEST_RESULT 0)
file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act)
list (LENGTH test_act len_act)
file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} test_ref)
list (LENGTH test_ref len_ref)
if (NOT "${len_act}" STREQUAL "0" AND NOT "${len_ref}" STREQUAL "0")
math (EXPR _FP_LEN "${len_ref} - 1")
foreach (line RANGE 0 ${_FP_LEN})
list (GET test_act ${line} str_act)
list (GET test_ref ${line} str_ref)
if (NOT "${str_act}" STREQUAL "${str_ref}")
if (NOT "${str_act}" STREQUAL "")
set (TEST_RESULT 1)
message ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n")
# now compare the output with the reference
execute_process (
COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE}
RESULT_VARIABLE TEST_RESULT
)
if (NOT "${TEST_RESULT}" STREQUAL "0")
set (TEST_RESULT 0)
file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act)
list (LENGTH test_act len_act)
file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} test_ref)
list (LENGTH test_ref len_ref)
if (NOT "${len_act}" STREQUAL "0" AND NOT "${len_ref}" STREQUAL "0")
math (EXPR _FP_LEN "${len_ref} - 1")
foreach (line RANGE 0 ${_FP_LEN})
list (GET test_act ${line} str_act)
list (GET test_ref ${line} str_ref)
if (NOT "${str_act}" STREQUAL "${str_ref}")
if (NOT "${str_act}" STREQUAL "")
set (TEST_RESULT 1)
message ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n")
endif ()
endif ()
endforeach ()
else ()
if ("${len_act}" STREQUAL "0")
message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_OUTPUT} is empty")
endif ()
if ("${len_ref}" STREQUAL "0")
message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_REFERENCE} is empty")
endif ()
endforeach ()
else ()
if ("${len_act}" STREQUAL "0")
message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_OUTPUT} is empty")
endif ()
if ("${len_ref}" STREQUAL "0")
message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_REFERENCE} is empty")
if (NOT "${len_act}" STREQUAL "${len_ref}")
set (TEST_RESULT 1)
endif ()
endif ()
if (NOT "${len_act}" STREQUAL "${len_ref}")
set (TEST_RESULT 1)
message (STATUS "COMPARE Result: ${TEST_RESULT}")
# again, if return value is !=0 scream and shout
if (NOT "${TEST_RESULT}" STREQUAL "0")
message (FATAL_ERROR "Failed: The output of ${TEST_OUTPUT} did not match ${TEST_REFERENCE}")
endif ()
endif ()
message (STATUS "COMPARE Result: ${TEST_RESULT}")
# again, if return value is !=0 scream and shout
if (NOT "${TEST_RESULT}" STREQUAL "0")
message (FATAL_ERROR "Failed: The output of ${TEST_OUTPUT} did not match ${TEST_REFERENCE}")
endif ()
# now compare the .err file with the error reference, if supplied
if (TEST_ERRREF)
if (WIN32 AND NOT MINGW)
@ -217,7 +208,7 @@ if (NOT TEST_SKIP_COMPARE)
if ("${len_ref}" STREQUAL "0")
message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_ERRREF} is empty")
endif ()
endif()
endif ()
if (NOT "${len_act}" STREQUAL "${len_ref}")
set (TEST_RESULT 1)
endif ()
@ -226,7 +217,7 @@ if (NOT TEST_SKIP_COMPARE)
message (STATUS "COMPARE Result: ${TEST_RESULT}")
# again, if return value is !=0 scream and shout
if (NOT ${TEST_RESULT} STREQUAL 0)
if (NOT "${TEST_RESULT}" STREQUAL "0")
message (FATAL_ERROR "Failed: The error output of ${TEST_OUTPUT}.err did not match ${TEST_ERRREF}")
endif ()
endif ()

View File

@ -32,9 +32,9 @@ if (EXISTS ${TEST_FOLDER}/${TEST_OUTPUT}.err)
endif ()
# if there is not an error reference file add the error output to the stdout file
if (NOT TEST_ERRREF)
set (ERROR_APPEND 1)
endif ()
#if (NOT TEST_ERRREF)
# set (ERROR_APPEND 1)
#endif ()
message (STATUS "USING ${TEST_VFD} ON COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")

View File

@ -26,9 +26,6 @@ endif ()
if (NOT TEST_EXPECT)
message (STATUS "Require TEST_EXPECT to be defined")
endif ()
if (NOT TEST_SKIP_COMPARE AND NOT TEST_REFERENCE)
message (FATAL_ERROR "Require TEST_REFERENCE to be defined")
endif ()
if (EXISTS ${TEST_FOLDER}/${TEST_OUTPUT})
file (REMOVE ${TEST_FOLDER}/${TEST_OUTPUT})
@ -38,11 +35,6 @@ if (EXISTS ${TEST_FOLDER}/${TEST_OUTPUT}.err)
file (REMOVE ${TEST_FOLDER}/${TEST_OUTPUT}.err)
endif ()
# if there is not an error reference file add the error output to the stdout file
if (NOT TEST_ERRREF)
set (ERROR_APPEND 1)
endif ()
message (STATUS "COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")
if (TEST_LIBRARY_DIRECTORY)
@ -96,9 +88,19 @@ endif ()
message (STATUS "COMMAND Result: ${TEST_RESULT}")
# if the .err file exists and ERRROR_APPEND is enabled
if (ERROR_APPEND AND EXISTS ${TEST_FOLDER}/${TEST_OUTPUT}.err)
if (EXISTS ${TEST_FOLDER}/${TEST_OUTPUT}.err)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM)
file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
if (TEST_MASK_FILE)
STRING(REGEX REPLACE "CurrentDir is [^\n]+\n" "CurrentDir is (dir name)\n" TEST_STREAM "${TEST_STREAM}")
endif ()
if (NOT ERROR_APPEND)
# append error output to the stdout output file
file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}")
else ()
# write back to original .err file
file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
endif ()
endif ()
# append the test result status with a predefined text
@ -173,63 +175,65 @@ endif ()
# compare output files to references unless this must be skipped
if (NOT TEST_SKIP_COMPARE)
if (WIN32 AND NOT MINGW)
file (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
file (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
endif ()
if (NOT TEST_SORT_COMPARE)
# now compare the output with the reference
execute_process (
COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE}
RESULT_VARIABLE TEST_RESULT
)
else ()
file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} v1)
file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} v2)
list (SORT v1)
list (SORT v2)
if (NOT v1 STREQUAL v2)
set(TEST_RESULT 1)
if (EXISTS ${TEST_FOLDER}/${TEST_REFERENCE})
if (WIN32 AND NOT MINGW)
file (READ ${TEST_FOLDER}/${TEST_REFERENCE} TEST_STREAM)
file (WRITE ${TEST_FOLDER}/${TEST_REFERENCE} "${TEST_STREAM}")
endif ()
endif ()
if (NOT "${TEST_RESULT}" STREQUAL "0")
set (TEST_RESULT 0)
file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act)
list (LENGTH test_act len_act)
file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} test_ref)
list (LENGTH test_ref len_ref)
if (NOT "${len_act}" STREQUAL "0" AND NOT "${len_ref}" STREQUAL "0")
math (EXPR _FP_LEN "${len_ref} - 1")
foreach (line RANGE 0 ${_FP_LEN})
list (GET test_act ${line} str_act)
list (GET test_ref ${line} str_ref)
if (NOT "${str_act}" STREQUAL "${str_ref}")
if (NOT "${str_act}" STREQUAL "")
set (TEST_RESULT 1)
message ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n")
endif ()
endif ()
endforeach ()
if (NOT TEST_SORT_COMPARE)
# now compare the output with the reference
execute_process (
COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT} ${TEST_FOLDER}/${TEST_REFERENCE}
RESULT_VARIABLE TEST_RESULT
)
else ()
if ("${len_act}" STREQUAL "0")
message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_OUTPUT} is empty")
endif ()
if ("${len_ref}" STREQUAL "0")
message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_REFERENCE} is empty")
file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} v1)
file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} v2)
list (SORT v1)
list (SORT v2)
if (NOT v1 STREQUAL v2)
set(TEST_RESULT 1)
endif ()
endif ()
if (NOT "${len_act}" STREQUAL "${len_ref}")
set (TEST_RESULT 1)
if (NOT "${TEST_RESULT}" STREQUAL "0")
set (TEST_RESULT 0)
file (STRINGS ${TEST_FOLDER}/${TEST_OUTPUT} test_act)
list (LENGTH test_act len_act)
file (STRINGS ${TEST_FOLDER}/${TEST_REFERENCE} test_ref)
list (LENGTH test_ref len_ref)
if (NOT "${len_act}" STREQUAL "0" AND NOT "${len_ref}" STREQUAL "0")
math (EXPR _FP_LEN "${len_ref} - 1")
foreach (line RANGE 0 ${_FP_LEN})
list (GET test_act ${line} str_act)
list (GET test_ref ${line} str_ref)
if (NOT "${str_act}" STREQUAL "${str_ref}")
if (NOT "${str_act}" STREQUAL "")
set (TEST_RESULT 1)
message ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n")
endif ()
endif ()
endforeach ()
else ()
if ("${len_act}" STREQUAL "0")
message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_OUTPUT} is empty")
endif ()
if ("${len_ref}" STREQUAL "0")
message (STATUS "COMPARE Failed: ${TEST_FOLDER}/${TEST_REFERENCE} is empty")
endif ()
endif ()
if (NOT "${len_act}" STREQUAL "${len_ref}")
set (TEST_RESULT 1)
endif ()
endif ()
endif ()
message (STATUS "COMPARE Result: ${TEST_RESULT}")
message (STATUS "COMPARE Result: ${TEST_RESULT}")
# again, if return value is !=0 scream and shout
if (NOT "${TEST_RESULT}" STREQUAL "0")
message (FATAL_ERROR "Failed: The output of ${TEST_OUTPUT} did not match ${TEST_REFERENCE}")
# again, if return value is !=0 scream and shout
if (NOT "${TEST_RESULT}" STREQUAL "0")
message (FATAL_ERROR "Failed: The output of ${TEST_OUTPUT} did not match ${TEST_REFERENCE}")
endif ()
endif ()
# now compare the .err file with the error reference, if supplied
@ -260,7 +264,7 @@ if (NOT TEST_SKIP_COMPARE)
if (NOT "${str_act}" STREQUAL "")
set (TEST_RESULT 1)
message ("line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n")
endif ()
endif ()
endif ()
endforeach ()
else ()
@ -285,5 +289,27 @@ if (NOT TEST_SKIP_COMPARE)
endif ()
endif ()
if (TEST_GREP_COMPARE)
# now grep the output with the reference
file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
# TEST_REFERENCE should always be matched
string (REGEX MATCH "${TEST_REFERENCE}" TEST_MATCH ${TEST_STREAM})
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 ()
string (REGEX MATCH "${TEST_FILTER}" TEST_MATCH ${TEST_STREAM})
if ("${TEST_EXPECT}" STREQUAL "1")
# TEST_EXPECT (1) interperts TEST_FILTER as NOT to match
string (LENGTH "${TEST_MATCH}" TEST_RESULT)
if (NOT "${TEST_RESULT}" STREQUAL "0")
message (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did contain ${TEST_FILTER}")
endif ()
endif ()
endif ()
# everything went fine...
message ("Passed: The output of ${TEST_PROGRAM} matches ${TEST_REFERENCE}")
message ("${TEST_PROGRAM} Passed")

View File

@ -18,16 +18,16 @@
set (H5WATCH_TEST_FILES
w-help1.ddl
w-err-cmpd1.ddl
w-err-cmpd2.ddl
w-err-cmpd3.ddl
w-err-cmpd4.ddl
w-err-cmpd5.ddl
w-err-dset1.ddl
w-err-dset2.ddl
w-err-dset-nomax.ddl
w-err-dset-none.ddl
w-err-file.ddl
w-err-cmpd1.err
w-err-cmpd2.err
w-err-cmpd3.err
w-err-cmpd4.err
w-err-cmpd5.err
w-err-dset1.err
w-err-dset2.err
w-err-dset-nomax.err
w-err-dset-none.err
w-err-file.err
w-err-poll.ddl
w-err-poll0.ddl
w-err-width.ddl
@ -86,6 +86,25 @@ add_custom_target(H5WATCH_files ALL COMMENT "Copying files needed by H5WATCH tes
endif ()
endmacro ()
macro (ADD_H5_ERR_TEST resultfile resultcode)
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
add_test (
NAME H5WATCH_ARGS-h5watch-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5watch>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=${resultfile}.ddl"
-D "TEST_ERRREF=${resultfile}.err"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5WATCH_ARGS-h5watch-${resultfile} PROPERTIES DEPENDS ${last_test})
set (last_test "H5WATCH_ARGS-h5watch-${resultfile}")
endif ()
endmacro ()
macro (ADD_H5_WATCH resultfile resultcode)
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
add_test (
@ -162,20 +181,20 @@ if (NOT SWMR_INCOMPAT)
ADD_H5_TEST (w-help1 0 --help)
#
# Tests on expected failures
ADD_H5_TEST (w-err-dset1 1 WATCH.h5)
ADD_H5_TEST (w-err-dset2 1 WATCH.h5/group/DSET_CMPD)
ADD_H5_TEST (w-err-dset-none 1 WATCH.h5/DSET_NONE)
ADD_H5_TEST (w-err-dset-nomax 1 WATCH.h5/DSET_NOMAX)
ADD_H5_TEST (w-err-file 1 ../WATCH.h5/DSET_CMPD)
ADD_H5_ERR_TEST (w-err-dset1 1 WATCH.h5)
ADD_H5_ERR_TEST (w-err-dset2 1 WATCH.h5/group/DSET_CMPD)
ADD_H5_ERR_TEST (w-err-dset-none 1 WATCH.h5/DSET_NONE)
ADD_H5_ERR_TEST (w-err-dset-nomax 1 WATCH.h5/DSET_NOMAX)
ADD_H5_ERR_TEST (w-err-file 1 ../WATCH.h5/DSET_CMPD)
ADD_H5_TEST (w-err-width 1 --width=-8 WATCH.h5/DSET_ONE)
ADD_H5_TEST (w-err-poll 1 --polling=-8 WATCH.h5/DSET_ONE)
ADD_H5_TEST (w-err-poll0 1 --polling=0 WATCH.h5/DSET_ONE)
#
# Tests on invalid field names via --fields option for a compound typed dataset: DSET_CMPD
ADD_H5_TEST (w-err-cmpd1 1 --fields=fieldx WATCH.h5/DSET_CMPD)
ADD_H5_TEST (w-err-cmpd2 1 --fields=field1,field2. WATCH.h5/DSET_CMPD)
ADD_H5_TEST (w-err-cmpd3 1 --fields=field1,field2, WATCH.h5/DSET_CMPD)
ADD_H5_TEST (w-err-cmpd4 1 --fields=field1,field2.b.k WATCH.h5/DSET_CMPD)
ADD_H5_TEST (w-err-cmpd5 1 --fields=field1 --fields=field2.b.k WATCH.h5/DSET_CMPD)
ADD_H5_ERR_TEST (w-err-cmpd1 1 --fields=fieldx WATCH.h5/DSET_CMPD)
ADD_H5_ERR_TEST (w-err-cmpd2 1 --fields=field1,field2. WATCH.h5/DSET_CMPD)
ADD_H5_ERR_TEST (w-err-cmpd3 1 --fields=field1,field2, WATCH.h5/DSET_CMPD)
ADD_H5_ERR_TEST (w-err-cmpd4 1 --fields=field1,field2.b.k WATCH.h5/DSET_CMPD)
ADD_H5_ERR_TEST (w-err-cmpd5 1 --fields=field1 --fields=field2.b.k WATCH.h5/DSET_CMPD)
#
endif ()

View File

@ -1,2 +1 @@
Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>

View File

@ -1,2 +1 @@
Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>

View File

@ -1,2 +1 @@
Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>

View File

@ -1,2 +1 @@
Opened "WATCH.h5" with sec2 driver.
h5watch error: error in processing <list_of_fields>

View File

@ -0,0 +1 @@
h5watch error: error in processing <list_of_fields>

View File

@ -1,2 +1 @@
Opened "WATCH.h5" with sec2 driver.
h5watch error: "/DSET_NOMAX" should have unlimited or max. dimension setting

View File

@ -1,2 +1 @@
Opened "WATCH.h5" with sec2 driver.
h5watch error: "/DSET_NONE" should be a chunked or virtual dataset

View File

@ -1,2 +1 @@
Opened "WATCH.h5" with sec2 driver.
h5watch error: no dataset specified

View File

@ -1,2 +1 @@
Opened "WATCH.h5" with sec2 driver.
h5watch error: unable to open dataset "/group/DSET_CMPD"

View File

@ -843,6 +843,7 @@ if (HDF5_ENABLE_DEPRECATED_SYMBOLS)
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_MASK_ERROR=true"
-D "ERROR_APPEND=1"
-D "TEST_OUTPUT=err_compat.txt"
-D "TEST_REFERENCE=err_compat_1"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
@ -877,6 +878,7 @@ else ()
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_MASK_ERROR=true"
-D "ERROR_APPEND=1"
-D "TEST_OUTPUT=error_test.txt"
-D "TEST_REFERENCE=error_test_1"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
@ -943,6 +945,7 @@ if (BUILD_SHARED_LIBS)
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_MASK_ERROR=true"
-D "ERROR_APPEND=1"
-D "TEST_OUTPUT=err_compat.txt"
-D "TEST_REFERENCE=err_compat_1"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST-shared"
@ -977,6 +980,7 @@ if (BUILD_SHARED_LIBS)
-D "TEST_ARGS:STRING="
-D "TEST_EXPECT=0"
-D "TEST_MASK_ERROR=true"
-D "ERROR_APPEND=1"
-D "TEST_OUTPUT=error_test.txt"
-D "TEST_REFERENCE=error_test_1"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST-shared"

View File

@ -30,6 +30,7 @@
set (LIST_OTHER_TEST_FILES
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/h5copy_misc1.out
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/h5copy_misc1.err
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/tudfilter.h5.txt
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/tudfilter.h5_ERR.txt
${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/testfiles/h5copy_plugin_fail_ERR.out.h5.txt
@ -250,6 +251,7 @@
-D "TEST_OUTPUT=./testfiles/${testname}.out.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=./testfiles/${testname}.out"
-D "TEST_ERRREF=./testfiles/${testname}.err"
-D "TEST_MASK=true"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)

View File

@ -0,0 +1 @@
h5copy error: group </g1> doesn't exist. Use -p to create parent groups.

View File

@ -1,3 +1,2 @@
Copying file <./testfiles/h5copytst.h5> and object </simple> to file <./testfiles/h5copy_misc1.out.h5> and object </g1/g2/simple>
Error in copy...Exiting
h5copy error: group </g1> doesn't exist. Use -p to create parent groups.

View File

@ -293,6 +293,7 @@
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_8625.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_8639.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_ud.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_udfail.err
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_udfail.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_v1.txt
${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/testfiles/h5diff_v2.txt

View File

@ -1,6 +1,2 @@
Warning: </softlink_noexist> is a dangling link.
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
#000: (file name) line (number) in h5diff(): treat dangling link as error
major: Failure in tools library
minor: error in function
EXIT CODE: 2

View File

@ -1,6 +1,2 @@
Warning: </softlink_noexist> is a dangling link.
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
#000: (file name) line (number) in h5diff(): treat dangling link as error
major: Failure in tools library
minor: error in function
EXIT CODE: 2

View File

@ -1,6 +1,2 @@
Warning: </ext_link_noexist1> is a dangling link.
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
#000: (file name) line (number) in h5diff(): treat dangling link as error
major: Failure in tools library
minor: error in function
EXIT CODE: 2

View File

@ -1,6 +1,2 @@
Warning: </ext_link_noexist2> is a dangling link.
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
#000: (file name) line (number) in h5diff(): treat dangling link as error
major: Failure in tools library
minor: error in function
EXIT CODE: 2

View File

@ -1,6 +1,2 @@
Warning: </ext_link_noexist1> is a dangling link.
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
#000: (file name) line (number) in h5diff(): treat dangling link as error
major: Failure in tools library
minor: error in function
EXIT CODE: 2

View File

@ -142,5 +142,4 @@ usage: h5diff [OPTIONS] file1 file2 [obj1[ obj2]]
Use h5diff file1 file1 /g1/dset1 /g1/dset2 to compare
'/g1/dset1' and '/g1/dset2' in the same file
h5diff error: missing file names
EXIT CODE: 1

View File

@ -1,6 +1,2 @@
Object </nono_obj> could not be found in <h5diff_basic1.h5>
H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
#000: (file name) line (number) in h5diff(): Error: Object could not be found
major: Failure in tools library
minor: error in function
EXIT CODE: 2

View File

@ -0,0 +1,12 @@
file1 file2
---------------------------------------
x x /
x x /dynlibud
group : </> and </>
0 differences found
dataset: </dynlibud> and </dynlibud>
0 differences found
Warning: dataset </dynlibud> cannot be read, user defined filter is not available
EXIT CODE: 2

View File

@ -8,5 +8,4 @@ group : </> and </>
0 differences found
dataset: </dynlibud> and </dynlibud>
0 differences found
Warning: dataset </dynlibud> cannot be read, user defined filter is not available
EXIT CODE: 2

View File

@ -22,10 +22,8 @@
set (HDF5_REFERENCE_FILES
h5fc_help.ddl
h5fc_nooption.ddl
h5fc_nonexistfile.ddl
h5fc_d_file.ddl
h5fc_dname.ddl
h5fc_nonexistdset_file.ddl
h5fc_v_non_chunked.ddl
h5fc_v_bt1.ddl
h5fc_v_ndata_bt1.ddl
@ -49,6 +47,11 @@
h5fc_v_err.ddl
h5fc_v_err.ddl.err
)
set (HDF5_REFERENCE_ERR_FILES
h5fc_d_file.ddl.err
h5fc_dname.err
h5fc_nonexistdset_file.ddl.err
)
set (HDF5_REFERENCE_TEST_FILES
h5fc_non_v3.h5
h5fc_edge_v3.h5
@ -78,6 +81,10 @@
HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${ddl_file}" "${PROJECT_BINARY_DIR}/testfiles/${ddl_file}" "h5fc_files")
endforeach ()
foreach (h5_file ${HDF5_REFERENCE_ERR_FILES})
HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5fc_files")
endforeach ()
foreach (h5_file ${HDF5_REFERENCE_TEST_FILES})
HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5fc_files")
endforeach ()
@ -119,6 +126,7 @@
-D "TEST_OUTPUT=${testname}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=${resultfile}"
-D "TEST_ERRREF=${resultfile}.err"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5FC-${testname}-${testfile} PROPERTIES DEPENDS "H5FC-${testname}-${testfile}-tmpfile")
@ -141,6 +149,42 @@
endif ()
endmacro ()
macro (ADD_H5_NOERR_OUTPUT testname resultfile resultcode testfile)
# If using memchecker add tests without using scripts
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
add_test (
NAME H5FC-${testname}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove
./testfiles/outtmp.h5
./testfiles/${testname}.out
./testfiles/${testname}.out.err
)
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (H5FC-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
endif ()
add_test (
NAME H5FC-${testname}-${testfile}-tmpfile
COMMAND ${CMAKE_COMMAND}
-E copy_if_different ${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/testfiles/${testfile} ./testfiles/outtmp.h5
)
set_tests_properties (H5FC-${testname}-${testfile}-tmpfile PROPERTIES DEPENDS "H5FC-${testname}-clear-objects")
add_test (
NAME H5FC-${testname}-${testfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5format_convert>"
-D "TEST_ARGS=${ARGN};outtmp.h5"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=${resultfile}"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5FC-${testname}-${testfile} PROPERTIES DEPENDS "H5FC-${testname}-${testfile}-tmpfile")
set (last_test "H5FC-${testname}-${testfile}")
endif ()
endmacro ()
macro (ADD_H5_MASK_OUTPUT testname resultfile resultcode testfile)
# If using memchecker add tests without using scripts
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
@ -433,17 +477,17 @@
# h5format_convert -d /GROUP/DSET_BT2 --verbose old_h5fc_ext_none.h5 (verbose, bt1 dataset)
# h5format_convert -d /DSET_NDATA_BT2 -v -n old_h5fc_ext_none.h5 (verbose, noop, bt1+nodata dataset)
# h5format_convert -v old_h5fc_ext_none.h5 (verbose, all datasets)
ADD_H5_OUTPUT (h5fc_v_non_chunked h5fc_v_non_chunked.ddl 0 old_h5fc_ext_none.h5 -d /DSET_CONTIGUOUS -v)
ADD_H5_OUTPUT (h5fc_v_bt1 h5fc_v_bt1.ddl 0 old_h5fc_ext_none.h5 -d /GROUP/DSET_BT2 --verbose)
ADD_H5_OUTPUT (h5fc_v_ndata_bt1 h5fc_v_ndata_bt1.ddl 0 old_h5fc_ext_none.h5 -d /DSET_NDATA_BT2 -v -n)
ADD_H5_OUTPUT (h5fc_v_all h5fc_v_all.ddl 0 old_h5fc_ext_none.h5 -v)
ADD_H5_NOERR_OUTPUT (h5fc_v_non_chunked h5fc_v_non_chunked.ddl 0 old_h5fc_ext_none.h5 -d /DSET_CONTIGUOUS -v)
ADD_H5_NOERR_OUTPUT (h5fc_v_bt1 h5fc_v_bt1.ddl 0 old_h5fc_ext_none.h5 -d /GROUP/DSET_BT2 --verbose)
ADD_H5_NOERR_OUTPUT (h5fc_v_ndata_bt1 h5fc_v_ndata_bt1.ddl 0 old_h5fc_ext_none.h5 -d /DSET_NDATA_BT2 -v -n)
ADD_H5_NOERR_OUTPUT (h5fc_v_all h5fc_v_all.ddl 0 old_h5fc_ext_none.h5 -v)
#
#
#
# h5format_convert -d /DSET_EA -v -n h5fc_ext_none.h5 (verbose, noop, one ea dataset)
# h5format_convert -v -n h5fc_non_v3.h5 (verbose, noop, all datasets)
ADD_H5_OUTPUT (h5fc_v_n_1d h5fc_v_n_1d.ddl 0 h5fc_ext_none.h5 -d /DSET_EA -v -n)
ADD_H5_OUTPUT (h5fc_v_n_all h5fc_v_n_all.ddl 0 h5fc_non_v3.h5 -v -n)
ADD_H5_NOERR_OUTPUT (h5fc_v_n_1d h5fc_v_n_1d.ddl 0 h5fc_ext_none.h5 -d /DSET_EA -v -n)
ADD_H5_NOERR_OUTPUT (h5fc_v_n_all h5fc_v_n_all.ddl 0 h5fc_non_v3.h5 -v -n)
#
#
#

View File

@ -0,0 +1,25 @@
usage: h5format_convert [OPTIONS] file_name
OPTIONS
-h, --help Print a usage message and exit
-V, --version Print version number and exit
-v, --verbose Turn on verbose mode
-d dname, --dname=dataset_name Pathname for the dataset
-n, --noop Perform all the steps except the actual conversion
Examples of use:
h5format_convert -d /group/dataset file_name
Convert the dataset </group/dataset> in the HDF5 file <file_name>:
a. chunked dataset: convert the chunk indexing type to version 1 B-tree
b. compact/contiguous dataset: downgrade the layout version to 3
c. virtual dataset: no action
h5format_convert file_name
Convert all datasets in the HDF5 file <file_name>:
a. chunked dataset: convert the chunk indexing type to version 1 B-tree
b. compact/contiguous dataset: downgrade the layout version to 3
c. virtual dataset: no action
h5format_convert -n -d /group/dataset file_name
Go through all the steps except the actual conversion when
converting the dataset </group/dataset> in the HDF5 file <file_name>.

View File

@ -23,4 +23,3 @@ h5format_convert file_name
h5format_convert -n -d /group/dataset file_name
Go through all the steps except the actual conversion when
converting the dataset </group/dataset> in the HDF5 file <file_name>.
h5format_convert error: missing file name

View File

@ -0,0 +1 @@
h5format_convert error: missing file name

View File

@ -23,4 +23,3 @@ h5format_convert file_name
h5format_convert -n -d /group/dataset file_name
Go through all the steps except the actual conversion when
converting the dataset </group/dataset> in the HDF5 file <file_name>.
h5format_convert error: No dataset name

View File

@ -0,0 +1 @@
h5format_convert error: No dataset name

View File

@ -0,0 +1 @@
h5format_convert error: unable to open file "nonexist.h5"

View File

@ -74,6 +74,8 @@
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${expectfile}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_ERRREF=testfiles/${expectfile}.txt"
-D "TEST_SKIP_COMPARE=1"
-D "TEST_REFERENCE=testfiles/${expectfile}.txt"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)

View File

@ -47,6 +47,12 @@
${HDF5_TOOLS_DIR}/testfiles/tdset_idx.h5
)
set (LIST_ERR_TEST_FILES
${HDF5_TOOLS_DIR}/test/h5ls/errfiles/nosuchfile.err
${HDF5_TOOLS_DIR}/test/h5ls/errfiles/textlinksrc-nodangle-1.err
${HDF5_TOOLS_DIR}/test/h5ls/errfiles/tgroup-1.err
)
set (LIST_OTHER_TEST_FILES
${HDF5_TOOLS_DIR}/testfiles/help-1.ls
${HDF5_TOOLS_DIR}/testfiles/help-2.ls
@ -116,6 +122,10 @@
get_filename_component(fname "${listfiles}" NAME)
HDFTEST_COPY_FILE("${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/${fname}" "h5ls_files")
endforeach ()
foreach (listfiles ${LIST_ERR_TEST_FILES})
get_filename_component(fname "${listfiles}" NAME)
HDFTEST_COPY_FILE("${listfiles}" "${PROJECT_BINARY_DIR}/testfiles/${fname}" "h5ls_files")
endforeach ()
add_custom_target(h5ls_files ALL COMMENT "Copying files needed by h5ls tests" DEPENDS ${h5ls_files_list})
##############################################################################
@ -159,6 +169,42 @@
endif ()
endmacro ()
macro (ADD_H5_ERR_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (NAME H5LS-${resultfile} COMMAND $<TARGET_FILE:h5ls> ${ARGN})
set_tests_properties (H5LS-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles")
if ("${resultcode}" STREQUAL "1")
set_tests_properties (H5LS-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (H5LS-${resultfile} PROPERTIES DEPENDS ${last_test})
endif ()
else ()
# Remove any output file left over from previous test run
add_test (
NAME H5LS-${resultfile}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove
testfiles/${resultfile}.out
testfiles/${resultfile}.out.err
)
add_test (
NAME H5LS-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${resultfile}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_REFERENCE=${resultfile}.ls"
-D "TEST_ERRREF=${resultfile}.err"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5LS-${resultfile} PROPERTIES DEPENDS H5LS-${resultfile}-clear-objects)
endif ()
endmacro ()
macro (ADD_H5_UD_TEST testname resultcode resultfile)
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
# Remove any output file left over from previous test run
@ -341,7 +387,7 @@
# test for displaying groups
# The following combination of arguments is expected to return an error message
# and return value 1
ADD_H5_TEST (tgroup-1 1 -w80 -r -g tgroup.h5)
ADD_H5_ERR_TEST (tgroup-1 1 -w80 -r -g tgroup.h5)
ADD_H5_TEST (tgroup-2 0 -w80 -g tgroup.h5/g1)
# test for files with groups that have long comments
@ -382,7 +428,7 @@
# tests for no-dangling-links
# if this option is given on dangling link, h5ls should return exit code 1
# when used alone , expect to print out help and return exit code 1
ADD_H5_TEST (textlinksrc-nodangle-1 1 -w80 --no-dangling-links textlinksrc.h5)
ADD_H5_ERR_TEST (textlinksrc-nodangle-1 1 -w80 --no-dangling-links textlinksrc.h5)
# external dangling link - expected exit code 1
ADD_H5_TEST (textlinksrc-nodangle-2 1 -w80 --follow-symlinks --no-dangling-links textlinksrc.h5)
# soft dangling link - expected exit code 1
@ -444,7 +490,7 @@
endif ()
# test for non-existing file
ADD_H5_TEST (nosuchfile 1 nosuchfile.h5)
ADD_H5_ERR_TEST (nosuchfile 1 nosuchfile.h5)
# test for variable length data types in verbose mode
if (H5_WORDS_BIGENDIAN)

View File

@ -0,0 +1 @@
nosuchfile.h5: unable to open file

View File

@ -0,0 +1,2 @@
Error: --no-dangling-links must be used along with --follow-symlinks option!

View File

@ -0,0 +1,2 @@
Error: 'recursive' option not compatible with 'group info' option!

View File

@ -377,7 +377,7 @@
-D "TEST_OUTPUT=${resultfile}-${testname}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_MASK_ERROR=true"
-D "TEST_REFERENCE=${resultfile}-${testname}.tst"
-D "TEST_ERRREF=${resultfile}-${testname}.tst"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5REPACK_MASK-${testname} PROPERTIES DEPENDS H5REPACK_MASK-${testname}-clear-objects)

View File

@ -39,23 +39,30 @@
h5stat_newgrat
h5stat_newgrat-UG
h5stat_newgrat-UA
h5stat_err1_links
h5stat_idx
h5stat_links1
h5stat_links2
h5stat_links3
h5stat_links4
h5stat_links5
h5stat_err1_dims
h5stat_dims1
h5stat_dims2
h5stat_err1_numattrs
h5stat_err2_numattrs
h5stat_numattrs1
h5stat_numattrs2
h5stat_numattrs3
h5stat_numattrs4
)
set (HDF5_REFERENCE_ERR_FILES
h5stat_err_refcount
h5stat_err_old_layout
h5stat_err_old_fill
h5stat_err1_dims
h5stat_err1_links
h5stat_err1_numattrs
h5stat_err2_numattrs
h5stat_notexist
h5stat_nofile
)
set (HDF5_REFERENCE_TEST_FILES
h5stat_err_refcount.h5
h5stat_err_old_layout.h5
@ -71,6 +78,10 @@
HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5STAT_SOURCE_DIR}/testfiles/${ddl_file}.ddl" "${PROJECT_BINARY_DIR}/${ddl_file}.ddl" "h5stat_files")
endforeach ()
foreach (h5_file ${HDF5_REFERENCE_ERR_FILES})
HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5STAT_SOURCE_DIR}/testfiles/${h5_file}.err" "${PROJECT_BINARY_DIR}/${h5_file}.err" "h5stat_files")
endforeach ()
foreach (h5_file ${HDF5_REFERENCE_TEST_FILES})
HDFTEST_COPY_FILE("${HDF5_TOOLS_TEST_H5STAT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/${h5_file}" "h5stat_files")
endforeach ()
@ -118,6 +129,42 @@
endif ()
endmacro ()
macro (ADD_H5_ERR_TEST resultfile resultcode)
# If using memchecker add tests without using scripts
if (HDF5_ENABLE_USING_MEMCHECKER)
add_test (NAME H5STAT-${resultfile} COMMAND $<TARGET_FILE:h5stat> ${ARGN})
if (NOT "${resultcode}" STREQUAL "0")
set_tests_properties (H5STAT-${resultfile} PROPERTIES WILL_FAIL "true")
endif ()
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (H5STAT-${resultfile} PROPERTIES DEPENDS ${last_test})
endif ()
else (HDF5_ENABLE_USING_MEMCHECKER)
add_test (
NAME H5STAT-${resultfile}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove
${resultfile}.out
${resultfile}.out.err
)
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (H5STAT-${resultfile}-clear-objects PROPERTIES DEPENDS ${last_test})
endif ()
add_test (
NAME H5STAT-${resultfile}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5stat>"
-D "TEST_ARGS=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-D "TEST_OUTPUT=${resultfile}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_ERRREF=${resultfile}.err"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5STAT-${resultfile} PROPERTIES DEPENDS H5STAT-${resultfile}-clear-objects)
endif ()
endmacro ()
##############################################################################
##############################################################################
### T H E T E S T S ###
@ -173,7 +220,7 @@
# -g -l 8
# --links=8
# --links=20 -g
ADD_H5_TEST (h5stat_err1_links 1 -l 0 h5stat_threshold.h5)
ADD_H5_ERR_TEST (h5stat_err1_links 1 -l 0 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_links1 0 -g -l 8 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_links2 0 --links=8 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_links3 0 --links=20 -g h5stat_threshold.h5)
@ -188,7 +235,7 @@
# -d --dims=-1 (incorrect threshold value)
# -gd -m 5
# -d --di=15
ADD_H5_TEST (h5stat_err1_dims 1 -d --dims=-1 h5stat_threshold.h5)
ADD_H5_ERR_TEST (h5stat_err1_dims 1 -d --dims=-1 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_dims1 0 -gd -m 5 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_dims2 0 -d --di=15 h5stat_threshold.h5)
#
@ -198,8 +245,8 @@
# -AS -a 10
# -a 1
# -A --numattrs=25
ADD_H5_TEST (h5stat_err1_numattrs 1 -a -2 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_err2_numattrs 1 --numattrs h5stat_threshold.h5)
ADD_H5_ERR_TEST (h5stat_err1_numattrs 1 -a -2 h5stat_threshold.h5)
ADD_H5_ERR_TEST (h5stat_err2_numattrs 1 --numattrs h5stat_threshold.h5)
ADD_H5_TEST (h5stat_numattrs1 0 -AS -a 10 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_numattrs2 0 -a 1 h5stat_threshold.h5)
ADD_H5_TEST (h5stat_numattrs3 0 -A --numattrs=25 h5stat_threshold.h5)

View File

@ -1,2 +1 @@
Filename: h5stat_err_old_fill.h5
h5stat error: unable to traverse objects/links in file "h5stat_err_old_fill.h5"

View File

@ -0,0 +1 @@
h5stat error: unable to traverse objects/links in file "h5stat_err_old_fill.h5"

View File

@ -1,2 +1 @@
Filename: h5stat_err_old_layout.h5
h5stat error: unable to traverse objects/links in file "h5stat_err_old_layout.h5"

View File

@ -0,0 +1 @@
h5stat error: unable to traverse objects/links in file "h5stat_err_old_layout.h5"

View File

@ -1,2 +1 @@
Filename: h5stat_err_refcount.h5
h5stat error: unable to traverse objects/links in file "h5stat_err_refcount.h5"

View File

@ -0,0 +1 @@
h5stat error: unable to traverse objects/links in file "h5stat_err_refcount.h5"

View File

@ -23,4 +23,3 @@ Usage: h5stat [OPTIONS] file
-s, --freespace Print free space information
-S, --summary Print summary of file space information
--enable-error-stack Prints messages from the HDF5 error stack as they occur
h5stat error: missing file name

View File

@ -0,0 +1 @@
h5stat error: missing file name

View File

@ -1,2 +1 @@
Filename: notexist.h5
h5stat error: unable to open file "notexist.h5"

View File

@ -0,0 +1 @@
h5stat error: unable to open file "notexist.h5"

View File

@ -49,8 +49,6 @@
h5clear_missing_file.ddl
h5clear_noclose_after_size.ddl
h5clear_noclose_before_size.ddl
h5clear_no_mdc_image.ddl
h5clear_open_fail.ddl
h5clear_status_noclose_after_size.ddl
h5clear_usage.ddl
h5clear_user_equal_after_size.ddl
@ -60,10 +58,17 @@
h5clear_user_less_after_size.ddl
h5clear_user_less_before_size.ddl
)
set (HDF5_REFERENCE_ERR_FILES
h5clear_no_mdc_image.err
h5clear_open_fail.err
)
foreach (h5_file ${HDF5_TEST_FILES} ${HDF5_SEC2_TEST_FILES} ${HDF5_REFERENCE_TEST_FILES})
HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5clear_files")
endforeach ()
foreach (h5_file ${HDF5_REFERENCE_ERR_FILES})
HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/${h5_file}" "h5clear_files")
endforeach ()
# make second copy of h5clear_sec2.h5
foreach (h5_file ${HDF5_SEC2_TEST_FILES})
HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${PROJECT_BINARY_DIR}/testfiles/orig_${h5_file}" "h5clear_files")
@ -108,6 +113,34 @@
endif ()
endmacro ()
macro (ADD_H5_ERR_CMP testname resultfile resultcode)
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
add_test (
NAME H5CLEAR_CMP-${testname}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove
testfiles/${testname}.out
testfiles/${testname}.out.err
)
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (H5CLEAR_CMP-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
endif ()
add_test (
NAME H5CLEAR_CMP-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5clear>"
-D "TEST_ARGS:STRING=${ARGN}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_ERRREF=${resultfile}.err"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5CLEAR_CMP-${testname} PROPERTIES DEPENDS H5CLEAR_CMP-${testname}-clear-objects)
set (last_test "H5CLEAR_CMP-${testname}")
endif ()
endmacro ()
macro (ADD_H5_CMP_WITH_COPY testname resultcode resultfile testfile)
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
add_test (
@ -144,6 +177,42 @@
endif ()
endmacro ()
macro (ADD_H5_ERR_CMP_WITH_COPY testname resultcode resultfile testfile)
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
add_test (
NAME H5CLEAR_CMP-${testname}-clear-objects
COMMAND ${CMAKE_COMMAND}
-E remove
testfiles/${testname}.out
testfiles/${testname}.out.err
testfiles/${testfile}
)
if (NOT "${last_test}" STREQUAL "")
set_tests_properties (H5CLEAR_CMP-${testname}-clear-objects PROPERTIES DEPENDS ${last_test})
endif ()
add_test (
NAME H5CLEAR_CMP-copy_${testname}
COMMAND ${CMAKE_COMMAND}
-E copy_if_different
"${PROJECT_SOURCE_DIR}/testfiles/${testfile}" "${PROJECT_BINARY_DIR}/testfiles/${testfile}"
)
set_tests_properties (H5CLEAR_CMP-copy_${testname} PROPERTIES DEPENDS H5CLEAR_CMP-${testname}-clear-objects)
add_test (
NAME H5CLEAR_CMP-${testname}
COMMAND "${CMAKE_COMMAND}"
-D "TEST_PROGRAM=$<TARGET_FILE:h5clear>"
-D "TEST_ARGS:STRING=${ARGN};${testfile}"
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles"
-D "TEST_OUTPUT=${testname}.out"
-D "TEST_EXPECT=${resultcode}"
-D "TEST_ERRREF=${resultfile}.err"
-P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
)
set_tests_properties (H5CLEAR_CMP-${testname} PROPERTIES DEPENDS H5CLEAR_CMP-copy_${testname})
set (last_test "H5CLEAR_CMP-${testname}")
endif ()
endmacro ()
macro (ADD_H5_RETTEST testname resultcode)
if (NOT HDF5_ENABLE_USING_MEMCHECKER)
add_test (
@ -347,11 +416,11 @@ endif()
ADD_H5_CMP (h5clr_usage_junk h5clear_usage 1 "" junk.h5)
ADD_H5_CMP (h5clr_usage_none h5clear_usage 1 "" orig_h5clear_sec2_v3.h5)
ADD_H5_CMP (h5clr_missing_file_m h5clear_missing_file 1 "-m")
ADD_H5_CMP (h5clr_open_fail_s h5clear_open_fail 1 "-s" junk.h5)
ADD_H5_ERR_CMP (h5clr_open_fail_s h5clear_open_fail 1 "-s" junk.h5)
ADD_H5_CMP (h5clr_missing_file_ms h5clear_missing_file 1 "-m" "-s")
ADD_H5_CMP (h5clr_open_fail_ms h5clear_open_fail 1 "-m" "-s" junk.h5)
ADD_H5_CMP (h5clr_no_mdc_image_m h5clear_no_mdc_image 0 "-m" orig_h5clear_sec2_v2.h5)
ADD_H5_CMP (h5clr_no_mdc_image_ms h5clear_no_mdc_image 0 "-s" "-m" orig_h5clear_sec2_v0.h5)
ADD_H5_ERR_CMP (h5clr_open_fail_ms h5clear_open_fail 1 "-m" "-s" junk.h5)
ADD_H5_ERR_CMP (h5clr_no_mdc_image_m h5clear_no_mdc_image 0 "-m" orig_h5clear_sec2_v2.h5)
ADD_H5_ERR_CMP (h5clr_no_mdc_image_ms h5clear_no_mdc_image 0 "-s" "-m" orig_h5clear_sec2_v0.h5)
#
#
#
@ -382,8 +451,8 @@ endif()
#
#
# h5clear_mdc_image.h5 already has cache image removed earlier, verify the expected warning from h5clear:
ADD_H5_CMP (h5clr_mdc_image_m h5clear_no_mdc_image 0 "-m" mod_h5clear_mdc_image.h5)
ADD_H5_CMP (h5clr_mdc_image_sm h5clear_no_mdc_image 0 "-s" "-m" mod_h5clear_mdc_image2.h5)
ADD_H5_ERR_CMP (h5clr_mdc_image_m h5clear_no_mdc_image 0 "-m" mod_h5clear_mdc_image.h5)
ADD_H5_ERR_CMP (h5clr_mdc_image_sm h5clear_no_mdc_image 0 "-s" "-m" mod_h5clear_mdc_image2.h5)
#
#
#
@ -404,7 +473,7 @@ endif()
# "h5clear -s --increment=0 h5clear_status_noclose.h5" (clear status_flag, EOA = MAX(EOA, EOF) + 0)
# (no output, check exit code)
# "h5clear --filesize h5clear_status_noclose.h5" (print EOA/EOF after the last action)
ADD_H5_CMP_WITH_COPY (h5clr_open_fail_nc_s 1 h5clear_open_fail h5clear_status_noclose.h5 "--filesize")
ADD_H5_ERR_CMP_WITH_COPY (h5clr_open_fail_nc_s 1 h5clear_open_fail h5clear_status_noclose.h5 "--filesize")
ADD_H5_RETTEST (h5clr_mdc_image_nc "false" "-s" "--increment=0" h5clear_status_noclose.h5)
ADD_H5_CMP (h5clr_no_mdc_image_nc_m h5clear_status_noclose_after_size 0 "--filesize" h5clear_status_noclose.h5)
#

View File

@ -20,4 +20,3 @@ h5clear --increment file_name
h5clear --increment=512 file_name
Set the EOA to the maximum of (EOA, EOF) + 512 for the file <file_name>.
h5clear error: missing file name

View File

@ -0,0 +1,23 @@
usage: h5clear [OPTIONS] file_name
OPTIONS
-h, --help Print a usage message and exit
-V, --version Print version number and exit
-s, --status Clear the status_flags field in the file's superblock
-m, --image Remove the metadata cache image from the file
--filesize Print the file's EOA and EOF
--increment=C Set the file's EOA to the maximum of (EOA, EOF) + C for the file <file_name>
C is >= 0; C is optional and will default to 1M when not set
Examples of use:
h5clear -s file_name
Clear the status_flags field in the superblock of the HDF5 file <file_name>.
h5clear -m file_name
Remove the metadata cache image from the HDF5 file <file_name>.
h5clear --increment file_name
Set the EOA to the maximum of (EOA, EOF) + 1M for the file <file_name>.
h5clear --increment=512 file_name
Set the EOA to the maximum of (EOA, EOF) + 512 for the file <file_name>.
h5clear error: missing file name

View File

@ -2,4 +2,3 @@ HDF5 "err_attr_dspace.h5" {
GROUP "/" {
}
}
h5dump error: error getting attribute information

View File

@ -28,4 +28,3 @@ GROUP "/" {
}
}
}
h5dump error: unable to open file "non_existing.h5"

View File

@ -1 +0,0 @@
nosuchfile.h5: unable to open file

View File

@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
h5dump error: missing file name

View File

@ -15,4 +15,3 @@ DATASET "/DS08BITS" {
}
}
}
h5dump error: Packed Bit offset+length value(9) too large. Max is 8

View File

@ -15,4 +15,3 @@ DATASET "/DS08BITS" {
}
}
}
h5dump error: Packed Bit offset+length value(9) too large. Max is 8

View File

@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
h5dump error: Bad mask list(0,2,2,1,0,2,2,)

View File

@ -15,4 +15,3 @@ DATASET "/DS16BITS" {
}
}
}
h5dump error: Packed Bit offset+length value(17) too large. Max is 16

View File

@ -15,4 +15,3 @@ DATASET "/DS16BITS" {
}
}
}
h5dump error: Packed Bit offset+length value(17) too large. Max is 16

View File

@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
h5dump error: Packed Bit offset+length value(65) too large. Max is 64

View File

@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
h5dump error: Packed Bit length value(0) must be positive.

View File

@ -23,4 +23,3 @@ DATASET "/DS32BITS" {
}
}
}
h5dump error: Packed Bit offset+length value(33) too large. Max is 32

View File

@ -23,4 +23,3 @@ DATASET "/DS32BITS" {
}
}
}
h5dump error: Packed Bit offset+length value(33) too large. Max is 32

View File

@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
h5dump error: Too many masks requested (max. 8). Mask list(0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1)

View File

@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
h5dump error: Packed Bit offset value(64) must be between 0 and 63

View File

@ -135,4 +135,3 @@ usage: h5dump [OPTIONS] files
h5dump -d /foo -f family fam%05d.h5
h5dump error: Bad mask list(-1,1)

View File

@ -1,3 +1,2 @@
HDF5 "taindices.h5" {
}
h5dump error: number of block dims (2) exceed dataset dims (1)

View File

@ -1,3 +1,2 @@
HDF5 "taindices.h5" {
}
h5dump error: number of count dims (2) exceed dataset dims (1)

View File

@ -1,3 +1,2 @@
HDF5 "taindices.h5" {
}
h5dump error: number of start dims (2) exceed dataset dims (1)

View File

@ -1,3 +1,2 @@
HDF5 "taindices.h5" {
}
h5dump error: number of stride dims (2) exceed dataset dims (1)

View File

@ -56,5 +56,3 @@ usage: h5ls [OPTIONS] file[/OBJECT] [file[/[OBJECT]...]
Replaced by --follow-symlinks.
-e, --errors Show all HDF5 error reporting
Replaced by --enable-error-stack.
Error: --no-dangling-links must be used along with --follow-symlinks option!

View File

@ -56,5 +56,3 @@ usage: h5ls [OPTIONS] file[/OBJECT] [file[/[OBJECT]...]
Replaced by --follow-symlinks.
-e, --errors Show all HDF5 error reporting
Replaced by --enable-error-stack.
Error: 'recursive' option not compatible with 'group info' option!

View File

@ -86,4 +86,3 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
#004: (file name) line (number) in H5L_get_info_cb(): name doesn't exist
major: Symbol table
minor: Object not found
h5dump error: unable to get link info from "Dataset1"