1#!/bin/sh 2# HDF Utilities Test script 3# Usage: testutil.sh [machine-type] 4 5srcdir=@srcdir@ 6 7machinetype="$1" 8 9# Check if target machine supports 32 bits datatype. 10# "true" is TRUE; "" means FALSE. 11case $machinetype in 12 *unicos*) has32="";; 13 *) has32="true";; 14esac 15 16# initialize errors variable 17errors=0 18haserr=0 19 20# setup hdfed command which is used often 21HDFED='../../hdf/util/hdfed' 22HDFLS="${TESTS_ENVIRONMENT} ../../hdf/util/hdfls" 23HDFEDCMD="${TESTS_ENVIRONMENT} $HDFED -batch" # use -batch mode for no prompt 24SED="sed -e /library/,/String/d" # filter out the library version 25TESTCMD="${TESTS_ENVIRONMENT} ./hdfimport" # The test command 26 27echo "" 28echo "==============================" 29echo "HDFIMPORT tests started" 30echo "==============================" 31 32if [ -f hdfimport -a -f hdfimporttest ]; then 33echo "** Testing hdfimport ***" 34 35# use [!S] to prevent SDSfloat2.hdf and SDSfloat3.hdf from being deleted; 36# please replace with better solution, one is if available. - BMR (2006/9/23) 37/bin/rm -f ctxt* cb* [!S]*.hdf *.out hdfls.tmp5 hdfed.tmp6 hdffiles.tmp 38${TESTS_ENVIRONMENT} ./hdfimporttest 39echo "Testing for 32-bit floating point ASCII (2D data)" 40$TESTCMD ctxtr2 -o ctxtr2.hdf 41echo "Testing for 32-bit floating point ASCII (3D data)" 42$TESTCMD ctxtr3 -o ctxtr3.hdf 43echo "Testing for 32-bit integer binary (2D data)" 44$TESTCMD cb32i2 -o cb32i2.hdf 45echo "Testing for 32-bit integer binary (3D data)" 46$TESTCMD cb32i3 -o cb32i3.hdf 47echo "Testing for 16-bit integer binary (2D data)" 48$TESTCMD cb16i2 -o cb16i2.hdf 49echo "Testing for 16-bit integer (3D data)" 50$TESTCMD cb16i3 -o cb16i3.hdf 51echo "Testing for 32-bit floating point binary (2D data)" 52$TESTCMD cb32r2 -o cb32r2.hdf 53echo "Testing for 32-bit floating point binary (3D data)" 54$TESTCMD cb32r3 -o cb32r3.hdf 55echo "Testing for 64-bit floating point binary (2D data) - Default Behaviour (Conversion to 32 bit FP SDS)" 56$TESTCMD cb64r2 -o cb64r2.hdf 57echo "Testing for 64-bit floating point binary (3D data) - Default Behaviour (Conversion to 32-bit FP SDS)" 58$TESTCMD cb64r3 -o cb64r3.hdf 59echo "Testing for 64-bit floating point binary (2D data) - Conversion to 64-bit FP SDS" 60$TESTCMD cb64r2 -n -o cb64r2-n.hdf 61echo "Testing for 64-bit floating point binary (3D data) - Conversion to 64-bit FP SDS" 62$TESTCMD cb64r3 -n -o cb64r3-n.hdf 63echo "Testing for raster options" 64$TESTCMD ctxtr2 -o ctxtr2_ris.hdf -raster -e 50 50 65$TESTCMD cb64r2 -o cb64r2_ris.hdf -raster -i 50 50 -f 66 67# test with hdf files 68echo "Testing for reading from hdf files" 69$TESTCMD $srcdir/SDSfloat2.hdf -o SDSfloat2.out 70$TESTCMD $srcdir/SDSfloat3.hdf -o SDSfloat3.out 71 72($HDFLS -l ctxtr2.hdf | $SED) > hdfls.tmp5 2>&1 73($HDFLS -l ctxtr3.hdf | $SED) >> hdfls.tmp5 2>&1 74($HDFLS -l cb32i2.hdf | $SED) >> hdfls.tmp5 2>&1 75($HDFLS -l cb32i3.hdf | $SED) >> hdfls.tmp5 2>&1 76($HDFLS -l cb16i2.hdf | $SED) >> hdfls.tmp5 2>&1 77($HDFLS -l cb16i3.hdf | $SED) >> hdfls.tmp5 2>&1 78($HDFLS -l cb32r2.hdf | $SED) >> hdfls.tmp5 2>&1 79($HDFLS -l cb32r3.hdf | $SED) >> hdfls.tmp5 2>&1 80($HDFLS -l cb64r2.hdf | $SED) >> hdfls.tmp5 2>&1 81($HDFLS -l cb64r3.hdf | $SED) >> hdfls.tmp5 2>&1 82($HDFLS -l cb64r2-n.hdf | $SED) >> hdfls.tmp5 2>&1 83($HDFLS -l cb64r3-n.hdf | $SED) >> hdfls.tmp5 2>&1 84($HDFLS -l ctxtr2_ris.hdf | $SED) >> hdfls.tmp5 2>&1 85($HDFLS -l cb64r2_ris.hdf | $SED) >> hdfls.tmp5 2>&1 86 87# run hdfls on SDSfloat*.out, and remove the library version from the 88# output for later checking agains original output - BMR (2006/9/7) 89($HDFLS SDSfloat2.out | $SED) >> hdffiles.tmp 2>&1 90($HDFLS SDSfloat3.out | $SED) >> hdffiles.tmp 2>&1 91 92 diff hdfls.tmp5 $srcdir/hdfimport.out1 || errors=1 93 $HDFEDCMD < $srcdir/hdfimport.input1 > hdfed.tmp6 2>&1 94 diff hdfed.tmp6 $srcdir/hdfimport.out2 || errors=1 95 96 # hdfimport.out3 contains output that hdfls previously generated 97 # from SDSfloat*.out with the library version removed - BMR (2006/9/7) 98 diff hdffiles.tmp $srcdir/hdfimport.out3 || errors=1 99 100# use [!S] to prevent SDSfloat2.hdf and SDSfloat3.hdf from being deleted; 101# please replace with a better solution, if one is available. - BMR (2006/9/23) 102/bin/rm -f ctxt* cb* [!S]*.hdf *.out hdfls.tmp5 hdfed.tmp6 hdffiles.tmp 103#/bin/rm -f ctxt* cb* *.hdf 104else 105haserr=1 106echo "** hdfimport or hdfimporttest not available ***" 107fi 108 109if [ $errors -eq 1 ]; then 110 haserr=1 111 echo " ********* NOTE ***************" 112 echo " hdfimport might have failed ***" 113 echo " The above errors could be formatting " 114 echo " problems which can be ignored " 115 echo " please run the following by hand to verify " 116 echo " " 117 echo " /bin/rm -f ctxtr* cb* *.hdf hdfls.tmp5 hdfed.tmp6" 118 echo " ${TESTS_ENVIRONMENT} ./hdfimporttest " 119 echo " $TESTCMD ctxtr2 -o ctxtr2.hdf " 120 echo " $TESTCMD ctxtr3 -o ctxtr3.hdf " 121 echo " $TESTCMD cb32i2 -o cb32i2.hdf " 122 echo " $TESTCMD cb32i3 -o cb32i3.hdf " 123 echo " $TESTCMD cb16i2 -o cb16i2.hdf " 124 echo " $TESTCMD cb16i3 -o cb16i3.hdf " 125 echo " $TESTCMD cb32r2 -o cb32r2.hdf " 126 echo " $TESTCMD cb32r3 -o cb32r3.hdf " 127 echo " $TESTCMD cb64r2 -o cb64r2.hdf " 128 echo " $TESTCMD cb64r3 -o cb64r3.hdf " 129 echo " $TESTCMD cb64r2 -n -o cb64r2-n.hdf " 130 echo " $TESTCMD cb64r3 -n -o cb64r3-n.hdf " 131 echo " $TESTCMD ctxtr2 -o ctxtr2_ris.hdf -raster -e 50 50 " 132 echo " $TESTCMD cb64r2 -o cb64r2_ris.hdf -raster -i 50 50 -f " 133 echo " $TESTCMD SDSfloat2.hdf -o SDSfloat2.out " 134 echo " $TESTCMD SDSfloat3.hdf -o SDSfloat3.out " 135 echo "($HDFLS -l ctxtr2.hdf | $SED) >& hdfls.tmp5 " 136 echo "($HDFLS -l ctxtr3.hdf | $SED) >>& hdfls.tmp5 " 137 echo "($HDFLS -l cb32i2.hdf | $SED) >> hdfls.tmp5 2>&1 " 138 echo "($HDFLS -l cb32i3.hdf | $SED) >> hdfls.tmp5 2>&1 " 139 echo "($HDFLS -l cb16i2.hdf | $SED) >> hdfls.tmp5 2>&1 " 140 echo "($HDFLS -l cb16i3.hdf | $SED) >> hdfls.tmp5 2>&1 " 141 echo "($HDFLS -l cb32r2.hdf | $SED) >>& hdfls.tmp5 " 142 echo "($HDFLS -l cb32r3.hdf | $SED) >>& hdfls.tmp5 " 143 echo "($HDFLS -l cb64r2.hdf | $SED) >>& hdfls.tmp5 " 144 echo "($HDFLS -l cb64r3.hdf | $SED) >>& hdfls.tmp5 " 145 echo "($HDFLS -l cb64r2-n.hdf | $SED) >> hdfls.tmp5 2>&1 " 146 echo "($HDFLS -l cb64r3-n.hdf | $SED) >> hdfls.tmp5 2>&1 " 147 echo "($HDFLS -l ctxtr2_ris.hdf | $SED) >>& hdfls.tmp5 " 148 echo "($HDFLS -l cb64r2_ris.hdf | $SED) >>& hdfls.tmp5 " 149 echo "($HDFLS SDSfloat2.out | $SED) >> hdffiles.tmp 2>&1 " 150 echo "($HDFLS SDSfloat3.out | $SED) >> hdffiles.tmp 2>&1 " 151 echo " diff hdfls.tmp5 hdfimport.out1 " 152 echo " $HDFEDCMD < hdfimport.input1 >& hdfed.tmp6 " 153 echo " diff hdfed.tmp6 hdfimport.out2 " 154 echo " diff hdffiles.tmp hdfimport.out3 || errors=1 " 155 echo " ******* END NOTE *************" 156 echo "" 157 errors=0 158fi 159 160# 161# Check errors result 162if [ $haserr -eq 0 ]; then 163 echo "=================================" 164 echo "HDFIMPORT Utilities tests passed." 165 echo "=================================" 166else 167 echo "*********************************************" 168 echo "HDFIMPORT Utilities tests encountered errors" 169 echo "*********************************************" 170fi 171echo "" 172exit $haserr 173