diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/testh5toh4 | 182 |
1 files changed, 75 insertions, 107 deletions
diff --git a/tools/testh5toh4 b/tools/testh5toh4 index ba8a3a3..99fcdb5 100644 --- a/tools/testh5toh4 +++ b/tools/testh5toh4 @@ -39,119 +39,87 @@ CONVERT() { # Run h5toh4 convert. TESTING $h5toh4 $@ - ( - case "$1" in - "-m") - if [ $# -eq 2 ] - then - if test "$INDIR" = "$OUTDIR"; then - set - $1 $INDIR/$2 - $h5toh4 "$@" 2>/dev/null - else - cp $INDIR/$2 $OUTDIR - set - $1 $OUTDIR/$2 - $h5toh4 "$@" 2>/dev/null - $RM $2 - fi - elif [ $# -eq 3 ] - then - if test "$INDIR" = "$OUTDIR"; then - set - $1 $INDIR/$2 $INDIR/$3 - $h5toh4 "$@" 2>/dev/null - else - cp $INDIR/$2 $INDIR/$3 $OUTDIR - set - $1 $OUTDIR/$2 $OUTDIR/$3 - $h5toh4 "$@" 2>/dev/null - $RM $2 $3 - fi - elif [ $# -eq 4 ] - then - if test "$INDIR" = "$OUTDIR"; then - set - $1 $INDIR/$2 $INDIR/$3 $INDIR/$4 - $h5toh4 "$@" 2>/dev/null - else - cp $INDIR/$2 $INDIR/$3 $INDIR/$4 $OUTDIR - set - $1 $OUTDIR/$2 $OUTDIR/$3 $OUTDIR/$4 - $h5toh4 "$@" 2>/dev/null - $RM $2 $3 $4 - fi - elif [ $# -eq 5 ] - then - if test "$INDIR" = "$OUTDIR"; then - set - $1 $INDIR/$2 $INDIR/$3 $INDIR/$4 $INDIR/$5 - $h5toh4 "$@" 2>/dev/null - else - cp $INDIR/$2 $INDIR/$3 $INDIR/$4 $INDIR/$5 $OUTDIR - set - $1 $OUTDIR/$2 $OUTDIR/$3 $OUTDIR/$4 $OUTDIR/$5 - $h5toh4 "$@" 2>/dev/null - $RM $2 $3 $4 $5 - fi - elif [ $# -eq 6 ] - then - if test "$INDIR" = "$OUTDIR"; then - set - $1 $INDIR/$2 $INDIR/$3 $INDIR/$4 $INDIR/$5 $INDIR/$6 - $h5toh4 "$@" 2>/dev/null - else - cp $INDIR/$2 $INDIR/$3 $INDIR/$4 $INDIR/$5 $INDIR/$6 $OUTDIR - set - $1 $OUTDIR/$2 $OUTDIR/$3 $OUTDIR/$4 $OUTDIR/$5 $OUTDIR/$6 - $h5toh4 "$@" 2>/dev/null - $RM $2 $3 $4 $5 $6 - fi - elif [ $# -eq 7 ] +# +# Set up arguments to run the conversion test. +# The converter assumes all hdf5 files has the .h5 suffix as in the form +# of foo.h5. It creates the corresponding hdf4 files with the .hdf suffix +# as in the form of foo.hdf. One exception is that if exactly two file names +# are given, it treats the first argument as an hdf5 file and creates the +# corresponding hdf4 file with the name as the second argument, WITOUT +# any consideration of the suffix. +# +# If INDIR != OUTDIR, need to copy the input hdf5 files from the INDIR +# to the OUTDIR and transform the input file pathname because of the suffix +# convention mentioned above. This way, the hdf4 files are always created +# in the OUTDIR directory. + +# Need to run the following in a separate shell to preserve the +# positional parameters of THIS shell. The current shell parameters +# are needed for the verification. (In the next revision, will use +# the $OUTFILES values to do the verification.) +# + +( + INFILES="" + OUTFILES="" + + case "$1" in + "-m") # multiple files conversion + shift + while [ $# -gt 0 ] + do + if [ "$INDIR" != "$OUTDIR" ] then - if test "$INDIR" = "$OUTDIR"; then - set - $1 $INDIR/$2 $INDIR/$3 $INDIR/$4 $INDIR/$5 $INDIR/$6 $INDIR/$7 - $h5toh4 "$@" 2>/dev/null - else - cp $INDIR/$2 $INDIR/$3 $INDIR/$4 $INDIR/$5 $INDIR/$6 $INDIR/$7 $OUTDIR - set - $1 $OUTDIR/$2 $OUTDIR/$3 $OUTDIR/$4 $OUTDIR/$5 $OUTDIR/$6 $OUTDIR/$7 - $h5toh4 "$@" 2>/dev/null - $RM $2 $3 $4 $5 $6 $7 - fi - elif [ $# -eq 8 ] + cp $INDIR/$1 $OUTDIR/$1 + fi + INFILES="$INFILES $OUTDIR/$1" + OUTFILES="$OUTFILES $OUTDIR/`basename $1 .h5`.hdf" + shift + done + set - "-m" $INFILES + ;; + + * ) # one file conversion + case $# in + 1) + if [ "$INDIR" != "$OUTDIR" ] then - if test "$INDIR" = "$OUTDIR"; then - set - $1 $INDIR/$2 $INDIR/$3 $INDIR/$4 $INDIR/$5 $INDIR/$6 $INDIR/$7 $INDIR/$8 - $h5toh4 "$@" 2>/dev/null - else - cp $INDIR/$2 $INDIR/$3 $INDIR/$4 $INDIR/$5 $INDIR/$6 $INDIR/$7 $INDIR/$8 $OUTDIR - set - $1 $OUTDIR/$2 $OUTDIR/$3 $OUTDIR/$4 $OUTDIR/$5 $OUTDIR/$6 $OUTDIR/$7 $OUTDIR/$8 - $h5toh4 "$@" 2>/dev/null - $RM $2 $3 $4 $5 $6 $7 $8 - fi - else - if test "$INDIR" = "$OUTDIR"; then - set - $1 $INDIR/$2 $INDIR/$3 $INDIR/$4 $INDIR/$5 $INDIR/$6 $INDIR/$7 $INDIR/$8 $INDIR/$9 - $h5toh4 "$@" 2>/dev/null - else - cp $INDIR/$2 $INDIR/$3 $INDIR/$4 $INDIR/$5 $INDIR/$6 $INDIR/$7 $INDIR/$8 $INDIR/$9 $OUTDIR - set - $1 $OUTDIR/$2 $OUTDIR/$3 $OUTDIR/$4 $OUTDIR/$5 $OUTDIR/$6 $OUTDIR/$7 $OUTDIR/$8 $OUTDIR/$9 - $h5toh4 "$@" 2>/dev/null - $RM $2 $3 $4 $5 $6 $7 $8 $9 - fi + cp $INDIR/$1 $OUTDIR/$1 fi - ;; - * ) - if [ $# -eq 1 ] - then - if test "$INDIR" = "$OUTDIR"; then - set - $INDIR/$1 - $h5toh4 "$@" 2>/dev/null - else - cp $INDIR/$1 $OUTDIR - set - $OUTDIR/$1 - $h5toh4 "$@" 2>/dev/null - $RM $1 - fi - else - set - $INDIR/$1 $OUTDIR/$2 - $h5toh4 "$@" 2>/dev/null + INFILES="$OUTDIR/$1" + OUTFILES="$OUTDIR/`basename $1 .h5`.hdf" + set - $INFILES + ;; + + 2) # hdf4 file specified + if [ "$INDIR" != "$OUTDIR" ] + then + cp $INDIR/$1 $OUTDIR/$1 fi - ;; - esac - ) + INFILES="$OUTDIR/$1" + OUTFILES="$2" + set - $OUTDIR/$1 $OUTDIR/$2 + ;; + + *) # Illegal + echo "Illegal arguments" + exit 1 + ;; + esac + ;; + esac + + # run the conversion and remove input files that have been copied over + $h5toh4 "$@" 2>/dev/null + if [ "$INDIR" != "$OUTDIR" ] + then + $RM $INFILES + fi + +) + # verify results case "$1" in "-m") |