diff options
author | Allen Byrne <50328838+byrnHDF@users.noreply.github.com> | 2024-03-10 23:43:37 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-10 23:43:37 (GMT) |
commit | 50a65223220142cf0b06a7d25ca53dc56811be01 (patch) | |
tree | 52d42dec08d723ee8949e50b7501dd7fbc1d21d5 /tools/test/h5dump | |
parent | 9bc6c201666aa7fcd7937db7241d4074b67824c9 (diff) | |
download | hdf5-50a65223220142cf0b06a7d25ca53dc56811be01.zip hdf5-50a65223220142cf0b06a7d25ca53dc56811be01.tar.gz hdf5-50a65223220142cf0b06a7d25ca53dc56811be01.tar.bz2 |
Change compression tests reference files to use masking for compression ratios (#4083)
Rework TEST_FILTER tests to handle slightly different compression ratios
Diffstat (limited to 'tools/test/h5dump')
-rw-r--r-- | tools/test/h5dump/CMakeTests.cmake | 46 | ||||
-rw-r--r-- | tools/test/h5dump/expected/tallfilters.ddl | 2 | ||||
-rw-r--r-- | tools/test/h5dump/expected/tdeflate.ddl | 2 | ||||
-rw-r--r-- | tools/test/h5dump/expected/tfletcher32.ddl | 2 | ||||
-rw-r--r-- | tools/test/h5dump/expected/tnbit.ddl | 2 | ||||
-rw-r--r-- | tools/test/h5dump/expected/tscaleoffset.ddl | 2 | ||||
-rw-r--r-- | tools/test/h5dump/expected/tszip.ddl | 2 | ||||
-rw-r--r-- | tools/test/h5dump/testh5dump.sh.in | 75 |
8 files changed, 115 insertions, 18 deletions
diff --git a/tools/test/h5dump/CMakeTests.cmake b/tools/test/h5dump/CMakeTests.cmake index d7f39e1..586957e 100644 --- a/tools/test/h5dump/CMakeTests.cmake +++ b/tools/test/h5dump/CMakeTests.cmake @@ -511,6 +511,40 @@ endif () endmacro () + macro (ADD_H5_COMP_TEST resultfile resultcode resultvalue) + # If using memchecker add tests without using scripts + if (HDF5_USING_ANALYSIS_TOOL) + add_test (NAME H5DUMP-${resultfile} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5dump> ${ARGN}) + if (${resultcode}) + set_tests_properties (H5DUMP-${resultfile} PROPERTIES WILL_FAIL "true") + endif () + set_tests_properties (H5DUMP-${resultfile} PROPERTIES + WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std" + ) + else () + add_test ( + NAME H5DUMP-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}" + -D "TEST_PROGRAM=$<TARGET_FILE:h5dump>" + -D "TEST_ARGS:STRING=${ARGN}" + -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std" + -D "TEST_OUTPUT=${resultfile}.out" + -D "TEST_EXPECT=${resultcode}" + -D "TEST_REFERENCE=${resultfile}.ddl" + -D "TEST_FILTER:STRING=SIZE [0-9]* \\(${resultvalue}\\\.[0-9][0-9][0-9]:1 COMPRESSION\\)" + -D "TEST_FILTER_REPLACE:STRING=SIZE XXXX (${resultvalue}.XXX:1 COMPRESSION)" + -P "${HDF_RESOURCES_DIR}/runTest.cmake" + ) + endif () + set_tests_properties (H5DUMP-${resultfile} PROPERTIES + WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std" + ) + if ("H5DUMP-${resultfile}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}") + set_tests_properties (H5DUMP-${resultfile} PROPERTIES DISABLED true) + endif () + endmacro () + macro (ADD_H5_TEST_N resultfile resultcode) add_test ( NAME H5DUMP-N-${resultfile}-clear-objects @@ -1235,25 +1269,25 @@ # tests for filters # SZIP - ADD_H5_TEST (tszip 0 --enable-error-stack -H -p -d szip tfilters.h5) + ADD_H5_COMP_TEST (tszip 0 2 --enable-error-stack -H -p -d szip tfilters.h5) # deflate - ADD_H5_TEST (tdeflate 0 --enable-error-stack -H -p -d deflate tfilters.h5) + ADD_H5_COMP_TEST (tdeflate 0 2 --enable-error-stack -H -p -d deflate tfilters.h5) # shuffle ADD_H5_TEST (tshuffle 0 --enable-error-stack -H -p -d shuffle tfilters.h5) # fletcher32 - ADD_H5_TEST (tfletcher32 0 --enable-error-stack -H -p -d fletcher32 tfilters.h5) + ADD_H5_COMP_TEST (tfletcher32 0 0 --enable-error-stack -H -p -d fletcher32 tfilters.h5) # nbit - ADD_H5_TEST (tnbit 0 --enable-error-stack -H -p -d nbit tfilters.h5) + ADD_H5_COMP_TEST (tnbit 0 10 --enable-error-stack -H -p -d nbit tfilters.h5) # scaleoffset - ADD_H5_TEST (tscaleoffset 0 --enable-error-stack -H -p -d scaleoffset tfilters.h5) + ADD_H5_COMP_TEST (tscaleoffset 0 4 --enable-error-stack -H -p -d scaleoffset tfilters.h5) # all - ADD_H5_TEST (tallfilters 0 --enable-error-stack -H -p -d all tfilters.h5) + ADD_H5_COMP_TEST (tallfilters 0 1 --enable-error-stack -H -p -d all tfilters.h5) # user defined ADD_H5_TEST (tuserfilter 0 --enable-error-stack -H -p -d myfilter tfilters.h5) diff --git a/tools/test/h5dump/expected/tallfilters.ddl b/tools/test/h5dump/expected/tallfilters.ddl index ff2454c..43bcf6a 100644 --- a/tools/test/h5dump/expected/tallfilters.ddl +++ b/tools/test/h5dump/expected/tallfilters.ddl @@ -4,7 +4,7 @@ DATASET "all" { DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } STORAGE_LAYOUT { CHUNKED ( 10, 5 ) - SIZE 458 (1.747:1 COMPRESSION) + SIZE XXXX (1.XXX:1 COMPRESSION) } FILTERS { PREPROCESSING SHUFFLE diff --git a/tools/test/h5dump/expected/tdeflate.ddl b/tools/test/h5dump/expected/tdeflate.ddl index 9b92d0e..504d4f3 100644 --- a/tools/test/h5dump/expected/tdeflate.ddl +++ b/tools/test/h5dump/expected/tdeflate.ddl @@ -4,7 +4,7 @@ DATASET "deflate" { DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } STORAGE_LAYOUT { CHUNKED ( 10, 5 ) - SIZE 385 (2.078:1 COMPRESSION) + SIZE XXXX (2.XXX:1 COMPRESSION) } FILTERS { COMPRESSION DEFLATE { LEVEL 9 } diff --git a/tools/test/h5dump/expected/tfletcher32.ddl b/tools/test/h5dump/expected/tfletcher32.ddl index 01460e2..aafd4d4 100644 --- a/tools/test/h5dump/expected/tfletcher32.ddl +++ b/tools/test/h5dump/expected/tfletcher32.ddl @@ -4,7 +4,7 @@ DATASET "fletcher32" { DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } STORAGE_LAYOUT { CHUNKED ( 10, 5 ) - SIZE 816 (0.980:1 COMPRESSION) + SIZE XXXX (0.XXX:1 COMPRESSION) } FILTERS { CHECKSUM FLETCHER32 diff --git a/tools/test/h5dump/expected/tnbit.ddl b/tools/test/h5dump/expected/tnbit.ddl index cf2ac1f..35c111f 100644 --- a/tools/test/h5dump/expected/tnbit.ddl +++ b/tools/test/h5dump/expected/tnbit.ddl @@ -4,7 +4,7 @@ DATASET "nbit" { DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } STORAGE_LAYOUT { CHUNKED ( 10, 5 ) - SIZE 76 (10.526:1 COMPRESSION) + SIZE XXXX (10.XXX:1 COMPRESSION) } FILTERS { COMPRESSION NBIT diff --git a/tools/test/h5dump/expected/tscaleoffset.ddl b/tools/test/h5dump/expected/tscaleoffset.ddl index a039736..ebff6c1 100644 --- a/tools/test/h5dump/expected/tscaleoffset.ddl +++ b/tools/test/h5dump/expected/tscaleoffset.ddl @@ -4,7 +4,7 @@ DATASET "scaleoffset" { DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } STORAGE_LAYOUT { CHUNKED ( 10, 5 ) - SIZE 188 (4.255:1 COMPRESSION) + SIZE XXXX (4.XXX:1 COMPRESSION) } FILTERS { COMPRESSION SCALEOFFSET { MIN BITS 2 } diff --git a/tools/test/h5dump/expected/tszip.ddl b/tools/test/h5dump/expected/tszip.ddl index 06e2259..3f04cf7 100644 --- a/tools/test/h5dump/expected/tszip.ddl +++ b/tools/test/h5dump/expected/tszip.ddl @@ -4,7 +4,7 @@ DATASET "szip" { DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } STORAGE_LAYOUT { CHUNKED ( 10, 5 ) - SIZE 372 (2.151:1 COMPRESSION) + SIZE XXXX (2.XXX:1 COMPRESSION) } FILTERS { COMPRESSION SZIP { diff --git a/tools/test/h5dump/testh5dump.sh.in b/tools/test/h5dump/testh5dump.sh.in index fdeb17d..4734865 100644 --- a/tools/test/h5dump/testh5dump.sh.in +++ b/tools/test/h5dump/testh5dump.sh.in @@ -537,6 +537,69 @@ TOOLTEST() { } +# same as TOOLTEST but masks out the compression values +TOOLTESTC() { + # check if caseless compare and diff requested + if [ "$1" = ignorecase ]; then + caseless="-i" + # replace cmp with diff which runs much longer. + xCMP="$DIFF -i" + shift + else + caseless="" + # stick with faster cmp if ignorecase is not requested. + xCMP="$CMP" + fi + + txttype=$1 + expect="$TESTDIR/$2" + actual="$TESTDIR/`basename $2 .ddl`.out" + actual_err="$TESTDIR/`basename $2 .ddl`.err" + actual_sav=${actual}-sav + actual_err_sav=${actual_err}-sav + shift + shift + + # Run test. + TESTING $DUMPER $@ + ( + cd $TESTDIR + $RUNSERIAL $DUMPER_BIN "$@" + ) >$actual 2>$actual_err + + # save actual and actual_err in case they are needed later. + cp $actual $actual_sav + STDOUT_FILTER $actual + cp $actual_err $actual_err_sav + STDERR_FILTER $actual_err + + tmp_file=/tmp/h5test_tmp_$$ + cp $actual $tmp_file + sed -e 's/SIZE [0-9]* ('"$txttype"'\.[0-9][0-9][0-9]:1 COMPRESSION)/SIZE XXXX ('"$txttype"'.XXX:1 COMPRESSION)/' \ + < $tmp_file > $actual + rm -f $tmp_file + + if [ ! -f $expect ]; then + # Create the expect file if it doesn't yet exist. + echo " CREATED" + cp $actual $expect + echo " Expected result (*.ddl) missing" + nerrors="`expr $nerrors + 1`" + elif $xCMP $expect $actual > /dev/null 2>&1 ; then + echo " PASSED" + else + echo "*FAILED*" + echo " Expected result (*.ddl) differs from actual result (*.out)" + nerrors="`expr $nerrors + 1`" + test yes = "$verbose" && $DIFF $caseless $expect $actual |sed 's/^/ /' + fi + + # Clean up output file + if test -z "$HDF5_NOCLEANUP"; then + rm -f $actual $actual_err $actual_sav $actual_err_sav $actual_ext + fi + +} # same as TOOLTEST1 but compares generated file to expected output # and compares the generated data file to the expected data file @@ -1355,19 +1418,19 @@ TOOLTEST texceedsubblock.ddl --enable-error-stack -d 1d -k 1,3 taindices.h5 # tests for filters # SZIP -TOOLTEST tszip.ddl --enable-error-stack -H -p -d szip tfilters.h5 +TOOLTESTC 2 tszip.ddl --enable-error-stack -H -p -d szip tfilters.h5 # deflate -TOOLTEST tdeflate.ddl --enable-error-stack -H -p -d deflate tfilters.h5 +TOOLTESTC 2 tdeflate.ddl --enable-error-stack -H -p -d deflate tfilters.h5 # shuffle TOOLTEST tshuffle.ddl --enable-error-stack -H -p -d shuffle tfilters.h5 # fletcher32 -TOOLTEST tfletcher32.ddl --enable-error-stack -H -p -d fletcher32 tfilters.h5 +TOOLTESTC 0 tfletcher32.ddl --enable-error-stack -H -p -d fletcher32 tfilters.h5 # nbit -TOOLTEST tnbit.ddl --enable-error-stack -H -p -d nbit tfilters.h5 +TOOLTESTC 10 tnbit.ddl --enable-error-stack -H -p -d nbit tfilters.h5 # scaleoffset -TOOLTEST tscaleoffset.ddl --enable-error-stack -H -p -d scaleoffset tfilters.h5 +TOOLTESTC 4 tscaleoffset.ddl --enable-error-stack -H -p -d scaleoffset tfilters.h5 # all -TOOLTEST tallfilters.ddl --enable-error-stack -H -p -d all tfilters.h5 +TOOLTESTC 1 tallfilters.ddl --enable-error-stack -H -p -d all tfilters.h5 # user defined TOOLTEST tuserfilter.ddl --enable-error-stack -H -p -d myfilter tfilters.h5 |