#!/bin/sh # HDF Utilities Test script # Usage: testutil.sh [machine-type] srcdir=@srcdir@ machinetype="$1" # Check if target machine supports 32 bits datatype. # "true" is TRUE; "" means FALSE. case $machinetype in *unicos*) has32="";; *) has32="true";; esac # initialize errors variable errors=0 haserr=0 # setup hdfed command which is used often HDFED='./hdfed' HDFEDCMD="$HDFED -batch" # use -batch mode for no prompt SED="sed -e /library/,/String/d" # filter out the library version echo "" echo "==============================" echo "HDF Utilities tests started" echo "==============================" # gif2hdf and hdf2gif if [ -f gif2hdf -a -f hdf2gif ]; then echo "** Testing gif2hdf and hdf2gif ***" /bin/rm -rf gif_hdf_temp /bin/mkdir gif_hdf_temp $TESTS_ENVIRONMENT ./hdf2gif $srcdir/testfiles/skull.hdf gif_hdf_temp/skull.gif $TESTS_ENVIRONMENT ./gif2hdf $srcdir/testfiles/SunWheel.gif gif_hdf_temp/SunWheel.hdf $TESTS_ENVIRONMENT ./gif2hdf $srcdir/testfiles/bttrfly.gif gif_hdf_temp/bttrfly.hdf else echo "** hdf2gif or gif2hdf is not available ***"; fi echo " *********************** NOTE ****************************" echo " Use WEB Browser and JHV to compare " echo " $srcdir/testfiles/SunWheel.gif and $srcdir/testfiles/bttrfly.gif " echo " with gif_hdf_temp/SunWheel.hdf and gif_hdf_temp/bttrfly.hdf" echo " " echo " Use JHV and WEB Browser to compare " echo " $srcdir/testfiles/skull.hdf and gif_hdf_temp/skull.gif" echo " ********************* END NOTE **************************" echo "" errors=0 # hdf24to8 # "uncompress" utiltiy became obsolete; replaced with gunzip EIP 2004/12/01 # gunzip not available on Windows; simply untarring files SJW 2007/7/31 if [ -f hdf24to8 -a -f hdftor8 ]; then echo "** Testing hdf24to8 ***" /bin/rm -f head.r24 head.r8 head8.hdf img001-263.328 pal001 #cp $srcdir/testfiles/head.r24.Z $srcdir/testfiles/head.r8.Z . cp $srcdir/testfiles/head.r24 $srcdir/testfiles/head.r8 . $TESTS_ENVIRONMENT ./hdf24to8 head.r24 head8.hdf $TESTS_ENVIRONMENT ./hdftor8 head8.hdf cmp img001-263.328 head.r8 || errors=1 /bin/rm -f head.r24 head.r8 head8.hdf img001-263.328 pal001 else echo "** hdf24to8 or hdftor8 is not available ***" fi if [ $errors -eq 1 ]; then haserr=1 echo " ********* NOTE ***************" echo " hdf24to8 might have failed ***" echo " The above errors could be formatting " echo " problems which can be ignored " echo " please run the following by hand to verify " echo " " echo " /bin/rm -f head.r24 head.r8 head8.hdf img001-263.328 pal001" echo " cp $srcdir/testfiles/head.r24 $srcdir/testfiles/head.r8 . " echo " ./hdf24to8 head.r24 head8.hdf " echo " ./hdftor8 head8.hdf " echo " cmp img001-263.328 head.r8 " echo " ******* END NOTE *************" echo "" errors=0 fi # hdfed if [ -f $HDFED ]; then echo "** Testing hdfed ***" /bin/rm -f storm110.hdf ntcheck.hdf hdfed.tmp cp $srcdir/testfiles/storm110.hdf $srcdir/testfiles/ntcheck.hdf . $TESTS_ENVIRONMENT $HDFEDCMD < $srcdir/hdfed.input1 > hdfed.tmp 2>&1 diff hdfed.tmp $srcdir/hdfed.out1 || errors=1 /bin/rm -f storm110.hdf ntcheck.hdf hdfed.tmp else echo "** hdfed not available ***" fi if [ $errors -eq 1 ]; then haserr=1 echo " ********* NOTE ***************" echo " hdfed might have failed ***" echo " The above errors could be formatting " echo " problems which can be ignored " echo " please run the following by hand to verify " echo " " echo "/bin/rm -f storm110.hdf ntcheck.hdf hdfed.tmp " echo "cp $srcdir/testfiles/storm110.hdf $srcdir/testfiles/ntcheck.hdf . " echo "$HDFEDCMD < $srcdir/hdfed.input1 >& hdfed.tmp " echo "diff hdfed.tmp $srcdir/hdfed.out1 " echo " ******* END NOTE *************" echo "" errors=0 fi # ristosds if [ -f ristosds -a -f $HDFED ]; then echo "** Testing ristosds ***" /bin/rm -f storm*.hdf hdfed.tmp1 cp $srcdir/testfiles/storm110.hdf $srcdir/testfiles/storm120.hdf $srcdir/testfiles/storm130.hdf . $TESTS_ENVIRONMENT ./ristosds storm*.hdf -o storm.hdf > /dev/null 2>&1 $TESTS_ENVIRONMENT $HDFEDCMD < $srcdir/ristosds.input1 > hdfed.tmp1 2>&1 diff hdfed.tmp1 $srcdir/ristosds.out1 || errors=1 /bin/rm -f storm*.hdf hdfed.tmp1 else echo "** ristosds or hdfed not available ***" fi if [ $errors -eq 1 ]; then haserr=1 echo " ********* NOTE ***************" echo " ristosds might have failed ***" echo " The above errors could be formatting " echo " problems which can be ignored " echo " please run the following by hand to verify " echo " " echo " /bin/rm -f storm*.hdf hdfed.tmp1 " echo " cp $srcdir/testfiles/storm110.hdf $srcdir/testfiles/storm120.hdf $srcdir/testfiles/storm130.hdf . " echo "./ristosds storm*.hdf -o storm.hdf " echo "$HDFEDCMD < $srcdir/ristosds.input1 >& hdfed.tmp1 " echo " diff hdfed.tmp1 $srcdir/ristosds.out1" echo " ******* END NOTE *************" echo "" errors=0 fi #hdfpack if [ -f hdfpack -a -f hdfls ]; then echo "** Testing hdfpack ***" /bin/rm -f test.hdf test.blk test.pck hdfls.tmp1 cp $srcdir/testfiles/test.hdf . $TESTS_ENVIRONMENT ./hdfpack test.hdf test.pck $TESTS_ENVIRONMENT ./hdfpack -b test.hdf test.blk ($TESTS_ENVIRONMENT ./hdfls test.hdf | $SED ) > hdfls.tmp1 2>&1 ($TESTS_ENVIRONMENT ./hdfls test.pck | $SED ) >> hdfls.tmp1 2>&1 diff hdfls.tmp1 $srcdir/hdfpack.out1 || errors=1 /bin/rm -f test.hdf test.blk test.pck hdfls.tmp1 else echo "** hdfpack or hdfls not available ***" fi if [ $errors -eq 1 ]; then haserr=1 echo " ********* NOTE ***************" echo " hdfpack might have failed ***" echo " The above errors could be formatting " echo " problems which can be ignored " echo " please run the following by hand to verify " echo " " echo "/bin/rm -f test.hdf test.blk test.pck hdfls.tmp1 " echo " cp $srcdir/testfiles/test.hdf . " echo "./hdfpack test.hdf test.pck " echo "./hdfpack -b test.hdf test.blk " echo "(./hdfls test.hdf | $SED ) >& hdfls.tmp1" echo "(./hdfls test.pck | $SED ) >>& hdfls.tmp1" echo " diff hdfls.tmp1 $srcdir/hdfpack.out1 " echo " ******* END NOTE *************" echo "" errors=0 fi #hdftopal/paltohdf if [ -f hdftopal -a -f paltohdf ]; then echo "** Testing hdftopal/paltohdf ***" /bin/rm -f palette.* cp $srcdir/testfiles/palette.raw . $TESTS_ENVIRONMENT ./paltohdf palette.raw palette.hdf $TESTS_ENVIRONMENT ./hdftopal palette.hdf palette.raw.new cmp palette.raw palette.raw.new || errors=1 /bin/rm -f palette.* else echo "** hdftopal or paltohdf not available ***" fi if [ $errors -eq 1 ]; then haserr=1 echo " ********* NOTE ***************" echo " hdftopal or paltohdf might have failed ***" echo " The above errors could be formatting " echo " problems which can be ignored " echo " please run the following by hand to verify " echo " " echo " /bin/rm -f palette.* " echo " cp $srcdir/testfiles/palette.raw . " echo "./paltohdf palette.raw palette.hdf " echo "./hdftopal palette.hdf palette.raw.new " echo "cmp palette.raw palette.raw.new " echo " ******* END NOTE *************" echo "" errors=0 fi # r8tohdf/hdftor8 if [ -f r8tohdf -a -f hdftor8 -a -f hdfls ]; then echo "** Testing r8tohdf/hdftor8 ***" /bin/rm -f storm* img* palette.raw hdfls.tmp2 pal005 cp $srcdir/testfiles/storm*.raw $srcdir/testfiles/palette.raw . $TESTS_ENVIRONMENT ./r8tohdf 57 57 storm.hdf storm*.raw $TESTS_ENVIRONMENT ./r8tohdf 57 57 storm.hdf -p palette.raw -i storm110.raw $TESTS_ENVIRONMENT ./hdftor8 storm.hdf ($TESTS_ENVIRONMENT ./hdfls -l storm.hdf | $SED) > hdfls.tmp2 2>&1 diff hdfls.tmp2 $srcdir/hdftor8.out1 || errors=1 cmp img001-057.057 storm110.raw || errors=1 cmp img002-057.057 storm120.raw || errors=1 cmp img003-057.057 storm130.raw || errors=1 cmp img004-057.057 storm140.raw || errors=1 /bin/rm -f storm* img* palette.raw hdfls.tmp2 pal005 else echo "** r8tohdf, hdftor8 or hdfls not available ***" fi if [ $errors -eq 1 ]; then haserr=1 echo " ********* NOTE ***************" echo " r8tohdf or hdftor8 might have failed ***" echo " The above errors could be formatting " echo " problems which can be ignored " echo " please run the following by hand to verify " echo " " echo "/bin/rm -f storm* img* palette.raw hdfls.tmp2 pal005 " echo "cp $srcdir/testfiles/storm*.raw $srcdir/testfiles/palette.raw . " echo "./r8tohdf 57 57 storm.hdf storm*.raw " echo "./r8tohdf 57 57 storm.hdf -p palette.raw -i storm110.raw " echo "./hdftor8 storm.hdf " echo "(./hdfls -l storm.hdf | $SED) >& hdfls.tmp2 " echo " diff hdfls.tmp2 $srcdir/hdftor8.out1 " echo "cmp img001-057.057 storm110.raw " echo "cmp img002-057.057 storm120.raw " echo "cmp img003-057.057 storm130.raw " echo "cmp img004-057.057 storm140.raw " echo " ******* END NOTE *************" echo "" errors=0 fi # hdfcomp if [ -f hdfcomp -a -f hdfls ]; then echo "** Testing hdfcomp ***" /bin/rm -f storm*.hdf all*.hdf hdfls.tmp3 cp $srcdir/testfiles/storm*.hdf . $TESTS_ENVIRONMENT ./hdfcomp allstorms.hdf storm*.hdf $TESTS_ENVIRONMENT ./hdfcomp allcomp.hdf -c storm*.hdf ($TESTS_ENVIRONMENT ./hdfls -l allstorms.hdf | $SED) > hdfls.tmp3 2>&1 ($TESTS_ENVIRONMENT ./hdfls -l allcomp.hdf | $SED) >> hdfls.tmp3 2>&1 diff hdfls.tmp3 $srcdir/hdfcomp.out1 || errors=1 /bin/rm -f storm*.hdf all*.hdf hdfls.tmp3 else echo "** hdfcomp or hdfls not available ***" fi if [ $errors -eq 1 ]; then haserr=1 echo " ********* NOTE ***************" echo " hdfcomp might have failed ***" echo " The above errors could be formatting " echo " problems which can be ignored " echo " please run the following by hand to verify " echo " " echo "/bin/rm -f storm*.hdf all*.hdf hdfls.tmp3 " echo "cp $srcdir/testfiles/storm*.hdf . " echo "./hdfcomp allstorms.hdf storm*.hdf " echo "./hdfcomp allcomp.hdf -c storm*.hdf " echo "(./hdfls -l allstorms.hdf | $SED) >& hdfls.tmp3 " echo "(./hdfls -l allcomp.hdf | $SED) >>& hdfls.tmp3 " echo "diff hdfls.tmp3 $srcdir/hdfcomp.out1 " echo " ******* END NOTE *************" echo "" errors=0 fi #jpeg2hdf/hdf2jpeg if [ -f jpeg2hdf -a -f hdf2jpeg -a -f hdfls ]; then echo "** Testing jpeg2hdf/hdf2jpeg ***" /bin/rm -f jpeg.hdf jpeg_img.jpg jpeg2.jpg hdfls.tmp4 cp $srcdir/testfiles/jpeg_img.jpg . $TESTS_ENVIRONMENT ./jpeg2hdf jpeg_img.jpg jpeg.hdf $TESTS_ENVIRONMENT ./hdf2jpeg jpeg.hdf jpeg2.jpg ($TESTS_ENVIRONMENT ./hdfls -l jpeg.hdf | $SED) > hdfls.tmp4 2>&1 diff hdfls.tmp4 $srcdir/jpeg2hdf.out1 || errors=1 cmp jpeg_img.jpg jpeg2.jpg || errors=1 /bin/rm -f jpeg.hdf jpeg_img.jpg jpeg2.jpg hdfls.tmp4 else echo "** jpeg2hdf, hdf2jpeg or hdfls not available ***" fi if [ $errors -eq 1 ]; then haserr=1 echo " ********* NOTE ***************" echo " jpeg2hdf or hdf2jpeg might have failed ***" echo " The above errors could be formatting " echo " problems which can be ignored " echo " please run the following by hand to verify " echo " " echo "/bin/rm -f jpeg.hdf jpeg_img.jpg jpeg2.jpg hdfls.tmp4 " echo "cp $srcdir/testfiles/jpeg_img.jpg . " echo "./jpeg2hdf jpeg_img.jpg jpeg.hdf " echo "./hdf2jpeg jpeg.hdf jpeg2.jpg " echo "(./hdfls -l jpeg.hdf | $SED) >& hdfls.tmp4 " echo "diff hdfls.tmp4 $srcdir/jpeg2hdf.out1 " echo "cmp jpeg_img.jpg jpeg2.jpg " echo " ******* END NOTE *************" echo "" errors=0 fi ## ## fp2hdf is now called hdfimport, and is in mfhdf/hdfimport ## # # fp2hdf # if [ -f fp2hdf -a -f hdfls -a -f $HDFED ]; then # echo "** Testing fp2hdf ***" # if [ ! "$has32" ]; then # echo " $machinetype does not support float32." # echo " float32 tests skipped." # fi # # /bin/rm -f ctxtr* cb* *.hdf hdfls.tmp5 hdfed.tmp6 # ./fptest # ./fp2hdf ctxtr2 -o ctxtr2.hdf # ./fp2hdf ctxtr3 -o ctxtr3.hdf # if [ "$has32" ]; then # ./fp2hdf cb32r2 -o cb32r2.hdf # ./fp2hdf cb32r3 -o cb32r3.hdf # fi # ./fp2hdf cb64r2 -o cb64r2.hdf # ./fp2hdf cb64r3 -o cb64r3.hdf # ./fp2hdf ctxtr2 -o ctxtr2_ris.hdf -raster -e 50 50 # ./fp2hdf cb64r2 -o cb64r2_ris.hdf -raster -i 50 50 -f # (./hdfls -l ctxtr2.hdf | $SED) > hdfls.tmp5 2>&1 # (./hdfls -l ctxtr3.hdf | $SED) >> hdfls.tmp5 2>&1 # if [ "$has32" ]; then # (./hdfls -l cb32r2.hdf | $SED) >> hdfls.tmp5 2>&1 # (./hdfls -l cb32r3.hdf | $SED) >> hdfls.tmp5 2>&1 # fi # (./hdfls -l cb64r2.hdf | $SED) >> hdfls.tmp5 2>&1 # (./hdfls -l cb64r3.hdf | $SED) >> hdfls.tmp5 2>&1 # (./hdfls -l ctxtr2_ris.hdf | $SED) >> hdfls.tmp5 2>&1 # (./hdfls -l cb64r2_ris.hdf | $SED) >> hdfls.tmp5 2>&1 # if [ "$has32" ]; then # diff hdfls.tmp5 $srcdir/fp2hdf.out1 || errors=1 # $HDFEDCMD < $srcdir/fp2hdf.input1 > hdfed.tmp6 2>&1 # diff hdfed.tmp6 $srcdir/fp2hdf.out2 || errors=1 # else # diff hdfls.tmp5 $srcdir/fp2hdf.out1-32 || errors=1 # $HDFEDCMD < $srcdir/fp2hdf.input1-32 > hdfed.tmp6 2>&1 # diff hdfed.tmp6 $srcdir/fp2hdf.out2-32 || errors=1 # fi # /bin/rm -f ctxtr* cb* *.hdf hdfls.tmp5 hdfed.tmp6 # else # echo "** fp2hdf, hdfed or hdfls not available ***" # fi # # if [ $errors -eq 1 ]; then # haserr=1 # echo " ********* NOTE ***************" # echo " fp2hdf might have failed ***" # echo " The above errors could be formatting " # echo " problems which can be ignored " # echo " please run the following by hand to verify " # echo " " # echo " /bin/rm -f ctxtr* cb* *.hdf hdfls.tmp5 hdfed.tmp6" # echo " ./fptest " # echo " ./fp2hdf ctxtr2 -o ctxtr2.hdf " # echo " ./fp2hdf ctxtr3 -o ctxtr3.hdf " # if [ "$has32" ]; then # echo " ./fp2hdf cb32r2 -o cb32r2.hdf " # echo " ./fp2hdf cb32r3 -o cb32r3.hdf " # fi # echo " ./fp2hdf cb64r2 -o cb64r2.hdf " # echo " ./fp2hdf cb64r3 -o cb64r3.hdf " # echo " ./fp2hdf ctxtr2 -o ctxtr2_ris.hdf -raster -e 50 50 " # echo " ./fp2hdf cb64r2 -o cb64r2_ris.hdf -raster -i 50 50 -f " # echo "( ./hdfls -l ctxtr2.hdf | $SED) >& hdfls.tmp5 " # echo "( ./hdfls -l ctxtr3.hdf | $SED) >>& hdfls.tmp5 " # if [ "$has32" ]; then # echo "( ./hdfls -l cb32r2.hdf | $SED) >>& hdfls.tmp5 " # echo "( ./hdfls -l cb32r3.hdf | $SED) >>& hdfls.tmp5 " # fi # echo "( ./hdfls -l cb64r2.hdf | $SED) >>& hdfls.tmp5 " # echo "( ./hdfls -l cb64r3.hdf | $SED) >>& hdfls.tmp5 " # echo "( ./hdfls -l ctxtr2_ris.hdf | $SED) >>& hdfls.tmp5 " # echo "( ./hdfls -l cb64r2_ris.hdf | $SED) >>& hdfls.tmp5 " # if [ "$has32" ]; then # echo " diff hdfls.tmp5 $srcdir/fp2hdf.out1 " # echo " $HDFEDCMD < $srcdir/fp2hdf.input1 >& hdfed.tmp6 " # echo " diff hdfed.tmp6 $srcdir/fp2hdf.out2 " # else # echo " diff hdfls.tmp5 $srcdir/fp2hdf.out1-32 " # echo " $HDFEDCMD < $srcdir/fp2hdf.input1-32 >& hdfed.tmp6 " # echo " diff hdfed.tmp6 $srcdir/fp2hdf.out2-32 " # fi # echo " ******* END NOTE *************" # echo "" # errors=0 # fi # # Check errors result if [ $haserr -eq 0 ]; then echo "==============================" echo "HDF Utilities tests passed." echo "==============================" else echo "**************************************" echo "HDF Utilities tests encountered errors" echo "**************************************" fi echo "" exit $haserr