diff options
Diffstat (limited to 'HDF5Examples/FORTRAN/H5T/test.sh.in')
-rwxr-xr-x | HDF5Examples/FORTRAN/H5T/test.sh.in | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/HDF5Examples/FORTRAN/H5T/test.sh.in b/HDF5Examples/FORTRAN/H5T/test.sh.in new file mode 100755 index 0000000..368b75a --- /dev/null +++ b/HDF5Examples/FORTRAN/H5T/test.sh.in @@ -0,0 +1,217 @@ +#! /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@ +FORTRAN_2003_CONDITIONAL_F="@FORTRAN_2003_CONDITIONAL_F@" + +topics="vlstring" + +if [ "$FORTRAN_2003_CONDITIONAL_F" = "Xyes" ]; then + topics="arrayatt_F03 array_F03 bitatt_F03 bit_F03 cmpdatt_F03 cmpd_F03 \ + Cstring_F03 enumatt_F03 enum_F03 floatatt_F03 float_F03 \ + intatt_F03 int_F03 opaqueatt_F03 opaque_F03 \ + string_F03 $topics" +fi + +return_val=0 + +for topic in $topics +do + fname=h5ex_t_$topic + $ECHO_N "Testing FORTRAN/H5T/$fname...$ECHO_C" + exout ./$fname >tmp.test + cmp -s tmp.test $srcdir/tfiles/18/$fname.tst + status=$? + if test $status -ne 0 + then + echo " FAILED!" + else + if [[ $fname == "h5ex_t_cpxcmpd_F03" || $fname == "h5ex_t_cpxcmpdatt_F03" ]] + then + targ="-n" + else + targ="" + fi + dumpout $targ $fname.h5 >tmp.test + rm -f $fname.h5 + cmp -s tmp.test $srcdir/tfiles/18/$fname.ddl + status=$? + if test $status -ne 0 + then + echo " FAILED!" + else + echo " Passed" + fi + fi + return_val=`expr $status + $return_val` +done + + +#######Non-standard tests####### + +USE_ALT="" +if [ "$H5_LIBVER_DIR" = "110" ]; then + # check if HDF5 version is < 1.10.7 + version_compare "$H5_LIBVER" "1.10.7" + if [ "$version_lt" = 1 ]; then + USE_ALT="06" + fi +else + if [ "$H5_LIBVER_DIR" = "18" ]; then + # check if HDF5 version is < 1.8.22 + version_compare "$H5_LIBVER" "1.8.22" + if [ "$version_lt" = 1 ]; then + USE_ALT="21" + fi + fi +fi + +if [ "$FORTRAN_2003_CONDITIONAL_F" = "Xyes" ]; then + topics="objrefatt_F03 objref_F03 regrefatt_F03 regref_F03" +else + topics="" +fi + +for topic in $topics +do + fname=h5ex_t_$topic + $ECHO_N "Testing FORTRAN/H5T/$fname...$ECHO_C" + exout ./$fname >tmp.test + cmp -s tmp.test $srcdir/tfiles/18/$fname.tst + status=$? + if test $status -ne 0 + then + echo " FAILED!" + else + dumpout $fname.h5 >tmp.test + rm -f $fname.h5 + version_compare "$H5_LIBVER" "1.10.0" + if [ "$version_lt" = 1 ]; then + cmp -s tmp.test $srcdir/tfiles/18/$fname$USE_ALT.ddl + else + version_compare "$H5_LIBVER" "1.12.0" + if [ "$version_lt" = 1 ]; then + version_compare "$H5_LIBVER" "1.10.7" + if [ "$version_lt" = 1 ]; then + cmp -s tmp.test $srcdir/tfiles/110/$fname$USE_ALT.ddl + else + cmp -s tmp.test $srcdir/tfiles/18/$fname.ddl + fi + else + cmp -s tmp.test $srcdir/tfiles/112/$fname.ddl + fi + fi + status=$? + if test $status -ne 0 + then + echo " FAILED!" + else + echo " Passed" + fi + fi + return_val=`expr $status + $return_val` +done + +topics="" +version_compare "$H5_LIBVER" "1.10.0" +if [ "$version_lt" = 0 ]; then + topics=" vlenatt_F03 vlen_F03" +fi + +for topic in $topics +do + fname=h5ex_t_$topic + $ECHO_N "Testing C/H5T/$fname...$ECHO_C" + exout ./$fname >tmp.test + cmp -s tmp.test $srcdir/tfiles/18/$fname.tst + status=$? + if test $status -ne 0 + then + echo " FAILED!" + else + dumpout $fname.h5 >tmp.test + rm -f $fname.h5 + version_compare "$H5_LIBVER" "1.14.3" + if [ "$version_lt" = 1 ]; then + cmp -s tmp.test $srcdir/tfiles/18/$fname.ddl + else + cmp -s tmp.test $srcdir/tfiles/114/$fname.ddl + fi + status=$? + if test $status -ne 0 + then + echo " FAILED!" + else + echo " Passed" + fi + fi + return_val=`expr $status + $return_val` +done + + +#fname=h5ex_t_convert +#$ECHO_N "Testing FORTRAN/H5T/$fname...$ECHO_C" +#exout ./$fname >tmp.test +#cmp -s tmp.test $srcdir/tfiles/18/$fname.test +#status=$? +#if test $status -ne 0 +#then +# echo " FAILED!" +#else +# echo " Passed" +#fi +#return_val=`expr $status + $return_val` + + +rm -f tmp.test +echo "$return_val tests failed in /FORTRAN/H5T/" +exit $return_val |