#! /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