#! /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="array arrayatt bit bitatt cmpd cmpdatt cpxcmpd cpxcmpdatt enum enumatt float floatatt \ int intatt opaque opaqueatt string stringatt vlstring vlstringatt \ commit" return_val=0 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/16/$fname.tst status=$? if test $status -ne 0 then echo " FAILED!" else if [[ $fname == "h5ex_t_cpxcmpd" || $fname == "h5ex_t_cpxcmpdatt" ]] 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 topics="objref objrefatt regref regrefatt" 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/16/$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="vlen vlenatt" 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/16/$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 C/H5T/$fname...$ECHO_C" exout ./$fname >tmp.test cmp -s tmp.test $srcdir/tfiles/16/$fname.tst 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 C/H5T/" exit $return_val