hdf5/tools/testh5toh4
Paul Harten bdc304d612 [svn-r958] Purpose:
New feature

Solution:
    Testing of Extendable Dataset support in h5toh4 converter when
    extendable dimension is first dimension.

Platform tested:
    Solaris2.5
1998-12-01 16:56:14 -05:00

265 lines
4.7 KiB
Bash

#! /bin/sh
# Test scripts for h5toh4.
# See the USAGE function for command usage.
# Definitions of commands and variables
CMD='../h5toh4'
RM='rm -f'
SED='sed '
H4DUMP='hdp'
DIFF=diff
CMP='cmp -s'
nerrors=0 # number of errors (0)
quitonerr=0 # quit on error (not)
noclean=0 # no cleaning temp. files (yes)
only="" # dumper sub-command to test only
except="" # dumper sub-command to test not
# Definitions of functions/shorthands
#
# Print Usage of the command
USAGE()
{
echo "Usage: $0 [-help] [-noclean] [-quit] [-except <command>] [-only <command>]"
echo " -help: display help information"
echo " -noclean: do not clean away temporary files"
echo " -quit: quit immediately if any test fails"
echo " -except: skip one specific command"
echo " -only: test one specific command"
echo "<command> can be one of {list, dumpsds, dumprig, dumpvd, dumpvg, dumpgr}"
}
# Print message with formats according to message level ($1)
MESG()
{
level=$1
shift
case $level in
0)
echo '============================='
echo $*
echo '============================='
;;
3)
echo '-----------------------------'
echo $*
echo '-----------------------------'
;;
6)
echo "*** Arguments are $* ***"
;;
*)
echo "MESG(): Unknown level ($level)"
exit 1
;;
esac
}
# Run the test to produce an output file which is then
# compared with the expected ($1) output.
# Note that this can be used to produce the expected
# output files by replace "$output" with "$expected"
# in the run-the-test commands.
TEST()
{
# shift
# print a id banner
MESG 6 $@
# run the test
(
echo "#############################"
echo "'$CMD $@'"
echo "#############################"
cd testfiles
$CMD "$@"
cd ..
)
case "$1" in
"-m")
shift
for i in $@
do
h4file=testfiles/`echo $i | $SED -e s/\.h5/.hdf/g`
output=`echo $h4file | $SED -e s/\.hdf/.tmp/`
expected=`echo $h4file | $SED -e s/\.hdf/.dmp/`
$H4DUMP dumpvg $h4file > $output
$H4DUMP dumpvd $h4file >> $output
$H4DUMP dumpsds $h4file >> $output
$CMP $expected $output
if [ $? -ne 0 ]
then
echo $DIFF $expected $output
$DIFF $expected $output
echo " <<< FAILED >>>"
nerrors=`expr $nerrors + 1`
if [ $quitonerr -gt 0 ];
then
FINISH
fi
fi
done
;;
* )
if [ $# -eq 1 ]
then
h4file=testfiles/`echo $1 | $SED -e s/\.h5/.hdf/`
else
h4file=testfiles/$2
fi
output=`echo $h4file | $SED -e s/\.hdf/.tmp/`
expected=`echo $h4file | $SED -e s/\.hdf/.dmp/`
$H4DUMP dumpvg $h4file > $output
$H4DUMP dumpvd $h4file >> $output
$H4DUMP dumpsds $h4file >> $output
$CMP $expected $output
if [ $? -ne 0 ]
then
echo $DIFF $expected $output
$DIFF $expected $output
echo " <<< FAILED >>>"
nerrors=`expr $nerrors + 1`
if [ $quitonerr -gt 0 ];
then
FINISH
fi
fi
;;
esac
# if [ $noclean -eq 0 ]
# then
# $RM $output
# fi
}
# Report the result and exit
FINISH()
{
if [ $nerrors -eq 0 ]
then
MESG 0 "All h5toh4 tests passed"
else
MESG 0 "h5toh4 tests failed: $nerrors"
fi
exit $nerrors
}
#===============
# Main Body
#===============
# parse arguments
while [ $# -gt 0 ]
do
case "$1" in
"-quit")
quitonerr=1
;;
"-noclean")
noclean=1
;;
"-help")
USAGE
exit 0
;;
"-only")
shift
case "$1" in
"h5toh4")
only="$1"
;;
*)
echo "Unknown command: $1"
USAGE
exit 1
;;
esac
;;
"-except")
shift
case "$1" in
"h5toh4")
except="$1"
;;
*)
echo "Unknown command: $1"
USAGE
exit 1
;;
esac
;;
* )
echo "Unknow option: $1"
USAGE
exit 1
;;
esac
shift
done
# Print a beginning banner
MESG 0 "Running h5toh4 tests"
# Test command list
TestCmd=h5toh4
TestName="Test command $TestCmd"
if [ "$except" != $TestCmd -a \( -z "$only" -o "$only" = $TestCmd \) ]
then
MESG 3 "$TestName"
$RM ./testfiles/*.hdf ./testfiles/*.tmp
TEST tgroup.h5
TEST tdset.h5
TEST tdset2.h5
TEST tattr.h5
TEST tslink.h5
TEST thlink.h5
TEST tcompound.h5
TEST tcompound2.h5
TEST tall.h5
$RM ./testfiles/*.tmp
TEST tgroup.h5 tgroup.hdf
TEST tdset.h5 tdset.hdf
TEST tdset2.h5 tdset2.hdf
TEST tattr.h5 tattr.hdf
TEST tslink.h5 tslink.hdf
TEST thlink.h5 thlink.hdf
TEST tcompound.h5 tcompound.hdf
TEST tcompound2.h5 tcompound2.hdf
TEST tall.h5 tall.hdf
$RM ./testfiles/*.hdf ./testfiles/*.tmp
TEST -m tgroup.h5 tdset.h5 tdset2.h5 tattr.h5 tslink.h5 thlink.h5 tcompound.h5 tcompound2.h5 tall.h5
$RM ./testfiles/*.hdf ./testfiles/*.tmp
else
MESG 3 "$TestName <<<SKIPPED>>>"
fi
# End of test
FINISH