One of the goals of FunnelWeb is that it must be extremely
portable, and a significant effort has gone into achieving this.
An equally important goal was that of correctness and
reliability. To this end, it was determined that a large automated
suite of test programs be prepared to assist in regression testing.
Preparing the test suite was tedious, but achievable. Automating
it portably was more difficult.
The difficulty faced was that if FunnelWeb was implemented in
the form of a utility that could be invoked from the operating
system command language, the only way to set up regression
testing was in the command language of the operating system
of the target machine (shellscripts for UNIX, DCL for
OpenVMS, batch files for MSDOS, and
Macintosh). The huge variation in these command languages
led to the conclusion that either the automation of regression
testing would have to be rewritten on each target machine, or a
small command language would have to be created within
FunnelWeb. In the end, the twin goals of portability and
regression testing were considered so important that a small
command shell was constructed inside FunnelWeb. This is
FunnelWeb command shell
, or just "the shell" for
By default, when FunnelWeb is invoked, it does not enter its
shell. If just given the name of an input file, it will simple
process the input file in the normal manner and then terminate.
To instruct FunnelWeb to invoke its shell, the +K or +X
command line option must be specified when FunnelWeb is
invoked from the operating system. It is also invoked upon
startup if the file fwinit.fws exists.
Most FunnelWeb users will never need to use the shell and
need not even know about it. There are four main uses of the
As a tool to support automated regression testing.
As a development tool on machines that do not have a
built in shell (e.g. the Macintosh). The shell can be used
to process whole groups of files automatically.
As a convenience. A user working on a multi tasking,
http://www.ross.net/funnelweb/reference/shell_introduction.html (1 of 2) [3/3/2000 10:45:57 PM]