summaryrefslogtreecommitdiffstats
path: root/HDF5Examples/FORTRAN/H5D/test.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'HDF5Examples/FORTRAN/H5D/test.sh.in')
-rwxr-xr-xHDF5Examples/FORTRAN/H5D/test.sh.in211
1 files changed, 211 insertions, 0 deletions
diff --git a/HDF5Examples/FORTRAN/H5D/test.sh.in b/HDF5Examples/FORTRAN/H5D/test.sh.in
new file mode 100755
index 0000000..76dbbcd
--- /dev/null
+++ b/HDF5Examples/FORTRAN/H5D/test.sh.in
@@ -0,0 +1,211 @@
+#! /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 $FC in
+*/*) H5DUMP=`echo $FC | 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 \
+ soint \
+ szip \
+ unlimmod"
+
+FORTRAN_2003_CONDITIONAL_F="@FORTRAN_2003_CONDITIONAL_F@"
+
+if [ "$FORTRAN_2003_CONDITIONAL_F" = "Xyes" ]; then
+ topics="$topics rdwr_kind"
+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 FORTRAN/H5D/$fname...$ECHO_C"
+ exout ./$fname >tmp.test
+ status=$?
+ if test $status -eq 1
+ then
+ echo " Unsupported feature"
+ status=0
+ else
+ if [ "$topic" = "alloc" ]; then
+ # Check if the only difference is the size of the unallocated space. This
+ # was fixed later in HDF5 to be of zero size.
+ status=0
+ diff tmp.test $srcdir/tfiles/18/$fname.tst > tmp.diff
+ if [ $? -ne 0 ]; then
+ NumOfFinds=`grep -c "0 bytes" tmp.diff | wc -l`
+ rm -f tmp.diff
+ if [ "$NumOfFinds" -gt "1" ]; then
+ status=1
+ fi
+ fi
+ else
+ cmp -s tmp.test $srcdir/tfiles/18/$fname.tst
+ status=$?
+ fi
+ 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/18/$fname.ddl
+ status=$?
+ if test $status -ne 0
+ then
+ # test to see if the only difference is because of big-endian and little-endian
+ diff tmp.test $srcdir/tfiles/18/$fname.ddl > tmp.diff
+ echo " "
+ NumOfFinds=`grep -c "DATATYPE" tmp.diff`
+ NumOfFinds=`expr $NumOfFinds \* 2`
+ NumOfLines=`wc -l <tmp.diff`
+ rm -f tmp.diff
+ if test $NumOfLines -gt $NumOfFinds
+ then
+ echo " FAILED!"
+ else
+ echo " *Inconsequential difference* ... Passed"
+ status=0
+ fi
+ 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.8
+ version_compare "$H5_LIBVER" "1.10.8"
+ if [ "$version_lt" = 1 ]; then
+ USE_ALT="07"
+ nbitdir="110"
+ fi
+fi
+
+topics="nbit"
+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
+
+
+rm -f tmp.test
+echo "$return_val tests failed in FORTRAN/H5D/"
+exit $return_val