From a03d35dc22a4be89c09d923e439167de697510d0 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 24 Jun 2019 07:27:32 -0500 Subject: HDFFV-9407 Add test --- MANIFEST | 1 + release_docs/RELEASE.txt | 18 +++++++++++------- tools/test/h5dump/CMakeTests.cmake | 30 ++++++++++++++++++++++++++++++ tools/testfiles/t128bit_float.h5 | Bin 0 -> 2160 bytes 4 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 tools/testfiles/t128bit_float.h5 diff --git a/MANIFEST b/MANIFEST index 9f82784..3285ec2 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1698,6 +1698,7 @@ ./tools/testfiles/h5dump-help.txt ./tools/testfiles/non_existing.ddl ./tools/testfiles/packedbits.ddl +./tools/testfiles/t128bit_float.h5 ./tools/testfiles/taindices.h5 ./tools/testfiles/tall-1.ddl ./tools/testfiles/tall-2.ddl diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 986b1e8..c8061f5 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -59,11 +59,11 @@ New Features (ADB - 2019/06/12, HDFFV-10805) - Add options to enable or disable building tools and tests - - Configure options --enable-tests and --enable-tools were added for + + Configure options --enable-tests and --enable-tools were added for autotools configure. These options are enabled by default, and can be - disabled with either --disable-tests (or tools) or --enable-tests=no - (or --enable-tools=no). Build time is reduced ~20% when tools are + disabled with either --disable-tests (or tools) or --enable-tests=no + (or --enable-tools=no). Build time is reduced ~20% when tools are disabled, 35% when tests are disabled, 45% when both are disabled. Reenabling them after the initial build requires running configure again with the option(s) enabled. @@ -240,7 +240,6 @@ New Features (ADB - 2018/12/12, HDFVIEW-4) - - Removed H5I_REFERENCE from the Java wrappers This ID class was never used by the library and has been removed @@ -251,7 +250,12 @@ New Features Tools: ------ - - + - h5dump was fixed for 128-bit floats, but was missing a test. + + New test greps for the first 15 numbers of the 128-bit value. + + (ADB - 2019/06/23, HDFFV-9407) + High-Level APIs: --------------- @@ -286,7 +290,7 @@ Bug Fixes since HDF5-1.10.3 release H5F_LIBVER_V18, the H5Ocopy() call will fail with the error stack indicating that the fill value version is out of bounds. - This was fixed by changing the fill value message version to H5O_FILL_VERSION_3 + This was fixed by changing the fill value message version to H5O_FILL_VERSION_3 (from H5O_FILL_VERSION_2) for H5F_LIBVER_V18. (VC - 2019/6/14, HDFFV-10800) diff --git a/tools/test/h5dump/CMakeTests.cmake b/tools/test/h5dump/CMakeTests.cmake index 13d71a6..070e98e 100644 --- a/tools/test/h5dump/CMakeTests.cmake +++ b/tools/test/h5dump/CMakeTests.cmake @@ -320,6 +320,7 @@ ${HDF5_TOOLS_DIR}/testfiles/tvlenstr_array.h5 ${HDF5_TOOLS_DIR}/testfiles/tvlstr.h5 ${HDF5_TOOLS_DIR}/testfiles/tvms.h5 + ${HDF5_TOOLS_DIR}/testfiles/t128bit_float.h5 ${HDF5_TOOLS_DIR}/testfiles/zerodim.h5 ) set (HDF5_ERROR_REFERENCE_TEST_FILES @@ -674,6 +675,32 @@ endif () endmacro () + macro (ADD_H5_GREP_TEST resultfile resultcode result_check) + if (NOT HDF5_ENABLE_USING_MEMCHECKER) + # Remove any output file left over from previous test run + add_test ( + NAME H5DUMP-${resultfile}-clear-objects + COMMAND ${CMAKE_COMMAND} + -E remove + ${resultfile}.out + ${resultfile}.out.err + ) + set_tests_properties (H5DUMP-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std") + add_test ( + NAME H5DUMP-${resultfile} + COMMAND "${CMAKE_COMMAND}" + -D "TEST_PROGRAM=$" + -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=${result_check}" + -P "${HDF_RESOURCES_EXT_DIR}/grepTest.cmake" + ) + set_tests_properties (H5DUMP-${resultfile} PROPERTIES DEPENDS "H5DUMP-${resultfile}-clear-objects") + endif () + endmacro () + macro (ADD_H5ERR_MASK_TEST resultfile resultcode result_errcheck) if (NOT HDF5_ENABLE_USING_MEMCHECKER) # Remove any output file left over from previous test run @@ -1551,6 +1578,9 @@ # test to verify HDFFV-10333: error similar to H5O_attr_decode in the jira issue ADD_H5_TEST (err_attr_dspace 1 err_attr_dspace.h5) + # test to verify HDFFV-9407: long double full precision + ADD_H5_GREP_TEST (t128bit_float 1 "1.123456789012345" -m %.35Lf t128bit_float.h5) + ############################################################################## ### P L U G I N T E S T S ############################################################################## diff --git a/tools/testfiles/t128bit_float.h5 b/tools/testfiles/t128bit_float.h5 new file mode 100644 index 0000000..134d510 Binary files /dev/null and b/tools/testfiles/t128bit_float.h5 differ -- cgit v0.12 From ee07744966b28206fb843716194786ad433171b6 Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 24 Jun 2019 15:04:07 -0500 Subject: HDFFV-9407 add autotools test --- config/cmake/CTestCustom.cmake | 1 + tools/test/h5dump/testh5dump.sh.in | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/config/cmake/CTestCustom.cmake b/config/cmake/CTestCustom.cmake index 75d73cd..6db0f6f 100644 --- a/config/cmake/CTestCustom.cmake +++ b/config/cmake/CTestCustom.cmake @@ -93,6 +93,7 @@ set (CTEST_CUSTOM_MEMCHECK_IGNORE H5DUMP_PACKED_BITS-clearall-objects H5DUMP-XML-clearall-objects H5DUMP_VDS-clearall-objects + H5DUMP-t128bit_float #uses grepTest.cmake ######### tools/h5format_convert ######### H5FC-clearall-objects ######### tools/h5import ######### diff --git a/tools/test/h5dump/testh5dump.sh.in b/tools/test/h5dump/testh5dump.sh.in index e1c02cf..c4efd8f 100644 --- a/tools/test/h5dump/testh5dump.sh.in +++ b/tools/test/h5dump/testh5dump.sh.in @@ -34,6 +34,7 @@ H5IMPORT_BIN=`pwd`/$H5IMPORT # The path of the h5import tool binary RM='rm -rf' CMP='cmp' DIFF='diff -c' +GREP='grep' CP='cp' DIRNAME='dirname' LS='ls' @@ -83,6 +84,7 @@ $SRC_H5DUMP_TESTFILES/charsets.h5 $SRC_H5DUMP_TESTFILES/file_space.h5 $SRC_H5DUMP_TESTFILES/filter_fail.h5 $SRC_H5DUMP_TESTFILES/packedbits.h5 +$SRC_H5DUMP_TESTFILES/t128bit_float.h5 $SRC_H5DUMP_TESTFILES/taindices.h5 $SRC_H5DUMP_TESTFILES/tall.h5 $SRC_H5DUMP_TESTFILES/tarray1.h5 @@ -903,6 +905,30 @@ TOOLTEST_HELP() { } +# Call the h5dump tool and grep for a value +# +GREPTEST() +{ + expectdata=$1 + actual=$TESTDIR/$2 + actual_err="$TESTDIR/`basename $2 .ddl`.oerr" + shift + + # Run test. + TESTING $DUMPER -p $@ + ( + cd $TESTDIR + $ENVCMD $RUNSERIAL $DUMPER_BIN -p "$@" + ) >$actual 2>$actual_err + $GREP $expectdata $actual > /dev/null + if [ $? -eq 0 ]; then + echo " PASSED" + else + echo " FAILED" + nerrors="`expr $nerrors + 1`" + fi +} + # Print a "SKIP" message SKIP() { TESTING $DUMPER $@ @@ -1363,6 +1389,9 @@ TOOLTEST3 non_existing.ddl --enable-error-stack tgroup.h5 non_existing.h5 # test to verify HDFFV-10333: error similar to H5O_attr_decode in the jira issue TOOLTEST err_attr_dspace.ddl err_attr_dspace.h5 +# test to verify HDFFV-9407: long double full precision +GREPTEST "1.123456789012345" t128bit_float.ddl -m %.35Lf t128bit_float.h5 + # Clean up temporary files/directories CLEAN_TESTFILES_AND_TESTDIR -- cgit v0.12 From 1891324419030e10c24071d0a6537a4f1631c63e Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 24 Jun 2019 15:45:38 -0500 Subject: Need to shift off two arguments --- tools/test/h5dump/testh5dump.sh.in | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/test/h5dump/testh5dump.sh.in b/tools/test/h5dump/testh5dump.sh.in index c4efd8f..894aa5e 100644 --- a/tools/test/h5dump/testh5dump.sh.in +++ b/tools/test/h5dump/testh5dump.sh.in @@ -913,6 +913,7 @@ GREPTEST() actual=$TESTDIR/$2 actual_err="$TESTDIR/`basename $2 .ddl`.oerr" shift + shift # Run test. TESTING $DUMPER -p $@ -- cgit v0.12 From f6ddfd7dda8aa95b33ae89b87c70493d5c644dbe Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Mon, 24 Jun 2019 16:10:20 -0500 Subject: Add test cleanup --- tools/test/h5dump/testh5dump.sh.in | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/test/h5dump/testh5dump.sh.in b/tools/test/h5dump/testh5dump.sh.in index 894aa5e..e5680cf 100644 --- a/tools/test/h5dump/testh5dump.sh.in +++ b/tools/test/h5dump/testh5dump.sh.in @@ -928,6 +928,11 @@ GREPTEST() echo " FAILED" nerrors="`expr $nerrors + 1`" fi + + # Clean up output file + if test -z "$HDF5_NOCLEANUP"; then + rm -f $actual $actual_err + fi } # Print a "SKIP" message -- cgit v0.12