#! /bin/sh # -*- Mode: Shell-Script -*- # ---------------------------------------------------------------------- # main.test --- test main program attribute # make sure that when it is not specified # then option processing consumes all args. # # Time-stamp: "2007-07-04 10:11:46 bkorb" # Author: Bruce Korb ## ## This file is part of AutoOpts, a companion to AutoGen. ## AutoOpts is free software. ## AutoOpts is copyright (c) 1992-2007 by Bruce Korb - all rights reserved ## ## AutoOpts is available under any one of two licenses. The license ## in use must be one of these two and the choice is under the control ## of the user of the license. ## ## The GNU Lesser General Public License, version 3 or later ## See the files "COPYING.lgplv3" and "COPYING.gplv3" ## ## The Modified Berkeley Software Distribution License ## See the file "COPYING.mbsd" ## ## These files have the following md5sums: ## ## 239588c55c22c60ffe159946a760a33e pkg/libopts/COPYING.gplv3 ## fa82ca978890795162346e661b47161a pkg/libopts/COPYING.lgplv3 ## 66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd # # $Id: main.test,v 4.7 2007/07/04 21:36:39 bkorb Exp $ # ---------------------------------------------------------------------- . ./defs # # # # # # # # # # DEFINITIONS FILE # # # # # # # # # echo "creating ${testname}.def in `pwd`" testname="${testname}" \ argument="${argument}" long_opts="${long_opts}" \ ${SHELLX} ${stdopts} option:'opt init' second=020 || \ failure "Could not run stdopts.def" exec 4> ${testname}.def2 sed '/test_main=/d' ${testname}.def >&4 cat >&4 <<- _EOF_ explain = 'This is some explanatory text.'; argument = '[ ... ]'; main = { handler-proc = fumble; fumble-code = 'printf( "%s\n", pz_entry );'; main-type = for-each; }; _EOF_ exec 4>&- mv -f ${testname}.def2 ${testname}.def echo ${AG_L} ${testname}.def ${AG_L} ${testname}.def || \ failure AutoGen could not process compile "-?" # # # # # # # # # # HELP OUTPUT FILE # # # # # # # # # basehlp=${testname}.hlp echo creating ${basehlp} cat > ${basehlp} <<'_EOF_' test_main - Test AutoOpts for main USAGE: main [ - [] ]... [ ... ] Flg Arg Option-Name Description -o Str option The option option descrip -s Num second The second option descrip -? no help Display usage information and exit -! no more-help Extended usage information passed thru pager This is some explanatory text. If no arguments are provided, input arguments are read from stdin, one per line; blank and '#'-prefixed lines are comments. 'stdin' may not be a terminal (tty). _EOF_ cmp -s ${testname}.h*lp || \ failure "`diff ${basehlp} ${testname}.help`" # # # # # # # # # # TEST OPERATION # # # # # # # # # # ./${testname} > ${testname}.out < ${testname}.hlp cat > ${testname}.base <<\_EOF_ test_main - Test AutoOpts for main USAGE: main [ - [] ]... [ ... ] Flg Arg Option-Name Description -o Str option The option option descrip -s Num second The second option descrip -? no help Display usage information and exit -! no more-help Extended usage information passed thru pager This is some explanatory text. If no arguments are provided, input arguments are read from stdin, one per line; blank and '#'-prefixed lines are comments. 'stdin' may not be a terminal (tty). _EOF_ cmp -s ${testname}.base ${testname}.out || \ failure "`diff ${testname}.base ${testname}.out`" ./${testname} -s 5 the quick 'brown fox' > ${testname}.out2 cat > ${testname}.base2 <<\_EOF_ the quick brown fox _EOF_ cmp -s ${testname}.base2 ${testname}.out2 || \ failure "`diff ${testname}.base2 ${testname}.out2`" cleanup ## Local Variables: ## Mode: shell-script ## indent-tabs-mode: nil ## sh-indentation: 2 ## End: # end of main.test