summaryrefslogtreecommitdiffstats
path: root/HDF5Examples/C/H5D/test.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'HDF5Examples/C/H5D/test.sh.in')
-rwxr-xr-xHDF5Examples/C/H5D/test.sh.in181
1 files changed, 181 insertions, 0 deletions
diff --git a/HDF5Examples/C/H5D/test.sh.in b/HDF5Examples/C/H5D/test.sh.in
new file mode 100755
index 0000000..f6e8427
--- /dev/null
+++ b/HDF5Examples/C/H5D/test.sh.in
@@ -0,0 +1,181 @@
+#! /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.
+
+srcdir=@srcdir@
+
+
+case $CC in
+*/*) H5DUMP=`echo $CC | sed -e 's/\/[^/]*$/\/h5dump/'`;
+ test -x $H5DUMP || H5DUMP=h5dump;;
+*) H5DUMP=h5dump;;
+esac
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ;;
+ *) ECHO_N= ECHO_C='\c' ;;
+esac
+ECHO_N="echo $ECHO_N"
+
+
+exout() {
+ $*
+}
+
+dumpout() {
+ $H5DUMP $*
+}
+
+# compare current version, required version.
+# returns if cur_ver < req_ver is true.
+version_compare() {
+ version_lt=0
+ if [ ! "$(printf '%s\n' "$1" "$2" | sort -V | head -n1)" = "$2" ]; then
+ version_lt=1
+ fi
+}
+
+H5_LIBVER=@H5_LIBVER@
+H5_LIBVER_DIR=@H5_LIBVER_DIR@
+
+topics="alloc checksum chunk compact extern fillval gzip hyper \
+rdwr shuffle szip unlimadd unlimgzip unlimmod"
+topics18=""
+
+version_compare "$H5_LIBVER" "1.8.0"
+# check if HDF5 version is < 1.8.0
+if [ "$version_lt" = 1 ]; then
+ dir16="\/16"
+else
+ dir16=""
+ topics18="nbit sofloat soint transform"
+fi
+
+return_val=0
+
+#Remove external data file from h5ex_d_extern
+rm -f h5ex_d_extern.data
+
+for topic in $topics
+do
+ fname=h5ex_d_$topic
+ $ECHO_N "Testing C/H5D/$fname...$ECHO_C"
+ exout .$dir16/$fname >tmp.test
+ status=$?
+ if test $status -eq 1
+ then
+ echo " Unsupported feature"
+ status=0
+ else
+ cmp -s tmp.test $srcdir/tfiles/16/$fname.tst
+ status=$?
+ if test $status -ne 0
+ then
+ echo " FAILED!"
+ else
+ dumpout $fname.h5 >tmp.test
+ rm -f $fname.h5
+ cmp -s tmp.test $srcdir/tfiles/16/$fname.ddl
+ status=$?
+ if test $status -ne 0
+ then
+ echo " FAILED!"
+ else
+ echo " Passed"
+ fi
+ fi
+ return_val=`expr $status + $return_val`
+ fi
+done
+
+#######Non-standard tests#######
+USE_ALT=""
+### Set default tfiles directory for tests
+nbitdir="18"
+version_compare "$H5_LIBVER" "1.8.23"
+# check if HDF5 version is < 1.8.23
+if [ "$version_lt" = 1 ]; then
+ USE_ALT="22"
+else
+# check if HDF5 version is >= 1.10.0 and < 1.10.8
+ version_compare "$H5_LIBVER" "1.10.0"
+ if [ "$version_lt" = 0 ]; then
+ version_compare "$H5_LIBVER" "1.10.8"
+ if [ "$version_lt" = 1 ]; then
+ USE_ALT="07"
+ nbitdir="110"
+ fi
+ fi
+fi
+
+for topic in $topics18
+do
+ fname=h5ex_d_$topic
+ $ECHO_N "Testing C/H5D/$fname...$ECHO_C"
+ exout ./$fname >tmp.test
+ status=$?
+ if test $status -eq 1
+ then
+ echo " Unsupported feature"
+ status=0
+ else
+ if [[ $fname == "h5ex_d_nbit" ]]
+ then
+ tdir=$nbitdir
+ if [[ $USE_ALT == "" ]]
+ then
+ ### set USE_ALT=07 if not set above
+ USE_ALT="07"
+ fi
+ else
+ tdir=18
+ ### unset USE_ALT for the other topics
+ USE_ALT=""
+ fi
+ cmp -s tmp.test $srcdir/tfiles/18/$fname.tst
+ status=$?
+ if test $status -ne 0
+ then
+ echo " FAILED!"
+ else
+ if [[ $fname == "h5ex_d_transform" ]]
+ then
+ targ="-n"
+ else
+ targ=""
+ fi
+ dumpout $targ $fname.h5 >tmp.test
+ rm -f $fname.h5
+ cmp -s tmp.test $srcdir/tfiles/$tdir/$fname$USE_ALT.ddl
+ status=$?
+ if test $status -ne 0
+ then
+ echo " FAILED!"
+ else
+ echo " Passed"
+ fi
+ fi
+ return_val=`expr $status + $return_val`
+ fi
+done
+
+
+#Remove external data file from h5ex_d_extern
+rm -f h5ex_d_extern.data
+rm -f tmp.test
+echo "$return_val tests failed in C/H5D/"
+exit $return_val