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