#! /bin/sh # Tests for the ncdump tool srcdir=@srcdir@ currentdir=`pwd` # Definitions of commands and variables NCDUMP='ncdump' # The tool name NCDUMP_BIN="${TESTS_ENVIRONMENT} "`pwd`/$NCDUMP # The path of the tool binary RM='rm -f' CMP='cmp -s' DIFF='diff -c' CP='cp' nerrors=0 verbose=yes $CP $srcdir/test0.cdl ./nctest0.cdl # 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 "*** $* ***" ;; *) echo "MESG(): Unknown level ($level)" exit 1 ;; esac } # Report the result and exit FINISH() { if [ $nerrors -eq 0 ] then MESG 0 "All ncdump tests passed" else MESG 0 "ncdump tests failed: $nerrors" fi exit $nerrors } # Print a line-line message left justified in a field of 70 characters # beginning with the word "Testing". # TESTING() { SPACES=" " echo "Testing $* $SPACES" | cut -c1-70 | tr -d '\012' } # Run a test and print PASS or *FAIL*. If a test fails then increment # the `nerrors' global variable # RUN() { # Run test. ${TESTS_ENVIRONMENT} ../ncgen/ncgen -o test0.nc -n nctest0.cdl RET=$? if [ $RET -eq 1 ]; then echo "*FAILED*" nerrors="`expr $nerrors + 1`" fi ${TESTS_ENVIRONMENT} $NCDUMP_BIN test0.nc > test1.cdl RET=$? if [ $RET -eq 1 ]; then echo "*FAILED*" nerrors="`expr $nerrors + 1`" fi ${TESTS_ENVIRONMENT} ../ncgen/ncgen -o test1.nc -n test1.cdl RET=$? if [ $RET -eq 1 ]; then echo "*FAILED*" nerrors="`expr $nerrors + 1`" fi ${TESTS_ENVIRONMENT} $NCDUMP_BIN -n test0 test1.nc > test2.cdl RET=$? if [ $RET -eq 1 ]; then echo "*FAILED*" nerrors="`expr $nerrors + 1`" fi $CMP test1.cdl test2.cdl cmpval=$? if [ "$cmpval" = 0 ] ; then echo " PASSED" else echo "*FAILED*" nerrors="`expr $nerrors + 1`" fi $RM -f test1.nc test1.cdl test2.cdl } ############################################################################## ### T H E T E S T S ### ############################################################################## # Print a beginning banner MESG 0 "Running ncdump tests" # compare output RUN # End of test, return exit code FINISH