diff options
Diffstat (limited to 'tools/misc/testh5clear.sh.in')
-rw-r--r-- | tools/misc/testh5clear.sh.in | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/tools/misc/testh5clear.sh.in b/tools/misc/testh5clear.sh.in new file mode 100644 index 0000000..8c98fed --- /dev/null +++ b/tools/misc/testh5clear.sh.in @@ -0,0 +1,135 @@ +#! /bin/sh +# +# Copyright by The HDF Group. +# Copyright by the Board of Trustees of the University of Illinois. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the files COPYING and Copyright.html. COPYING can be found at the root +# of the source code distribution tree; Copyright.html can be found at the +# root level of an installed copy of the electronic HDF5 document set and +# is linked from the top-level documents page. It can also be found at +# http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have +# access to either file, you may request a copy from help@hdfgroup.org. +# +# Tests for the h5clear tool +# +srcdir=@srcdir@ +TESTNAME=h5clear +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +H5CLEAR=h5clear +H5CLEAR_BIN=`pwd`/$H5CLEAR # The path of the tool binary + +GENTEST=h5clear_gentest # Generate test files +GENTEST_BIN=`pwd`/$GENTEST # The path to the binary + +OPENCHK=clear_open_chk # Try opening the test file +OPENCHK_BIN=`pwd`/$OPENCHK # The path to the binary + +SUCCEED=0 +FAIL=1 + +nerrors=0 +verbose=yes + +test -d ../testfiles || mkdir ../testfiles + +# Print a line-line message left justified in a field of 70 characters +# beginning with the word "Testing". +# +TESTING() { + SPACES=" " + echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' +} + +# Algorithm: +# Try to open the test file--should fail +# Use "h5clear" to clear the status_flags in the test file +# Try to open the test file again--should succeed +# $1 is the filename to H5Fopen() via h5clear +TOOLTEST() { + TESTING $H5CLEAR $1 + fname=$1 + # + # Try to open the test file + $OPENCHK_BIN $fname + if test $? -eq $SUCCEED; then + echo ".....$OPENCHK: should fail" + nerrors=`expr $nerrors + 1` + else + # Run h5clear to clear the status_flags in the test file + $RUNSERIAL $H5CLEAR_BIN $fname + if test $? -ne $SUCCEED; then + echo ".....$H5CLEAR: should succeed" + nerrors=`expr $nerrors + 1` + else + # Try to open the test file again + $OPENCHK_BIN $fname + if test $? -ne $SUCCEED; then + echo "......$OPENCHK: should succeed" + nerrors=`expr $nerrors + 1` + else + echo "PASSED" + fi + fi + fi +} + +# The input file has an incorrect superblock version # +# Algorithm: +# Use "h5clear" to clear status_flags in the test file--should fail not able to open the file +# $1 is the filename to H5Fopen() via h5clear +TOOLFAIL() { + TESTING $H5CLEAR $1 + fname=$1 + # Run h5clear to clear the status_flags in the test file + $RUNSERIAL $H5CLEAR_BIN $fname + if test $? -eq $SUCCEED; then + echo ".....$H5CLEAR: should fail" + nerrors=`expr $nerrors + 1` + else + echo "PASSED" + fi +} +############################################################################## +############################################################################## +### T H E T E S T S ### +############################################################################## +############################################################################## +# +$GENTEST_BIN # Create HDF5 test files +if test $? -ne 0; then # Error returned from generating test files + echo "$GENTEST: .....fail in generating test files" + nerrors=`expr $nerrors + 1` +else + TOOLTEST h5clear_sec2.h5 + TOOLTEST h5clear_core.h5 + TOOLTEST h5clear_fam_%05d.h5 + TOOLTEST h5clear_split +# +# files created with latest library format + TOOLTEST latest_h5clear_sec2.h5 + TOOLTEST latest_h5clear_core.h5 + TOOLTEST latest_h5clear_fam_%05d.h5 + TOOLTEST latest_h5clear_split +# +# files created with incorrect superblock version # +TOOLFAIL h5clear_invalid.h5 +TOOLFAIL latest_h5clear_invalid.h5 +fi +# +# Clean up test files +if test -z "$HDF5_NOCLEANUP"; then + rm -f h5clear_*.h5 latest_h5clear*.h5 +fi + +if test $nerrors -eq 0 ; then + echo "All $TESTNAME tests passed." + exit $EXIT_SUCCESS +else + echo "$TESTNAME tests failed with $nerrors error(s)." + exit $EXIT_FAILURE +fi |