.ds CP 2003-2005 .TH test-tc 1 "TundraWare Inc." .SH NAME test-tc.py Test driver to exercise the \fCtconfpy\fP Python module. .SH SYNOPSIS test-tc.py [symtbl] [inmem] [nonewvars] [templates] [temponly] [limitns] [litvars] [nopredefs] [debug] cfgfile, ... .SH OPTIONS .TP .B symtbl This option causes the test driver to include a symbol table with some predefined test variables in it. These are useful for experimenting with variable dereferencing, substitution, and type/value enforcement. The variables created are: .ft C \" courier .nf Name Val RO Type Def Legal Values Min/Max ------------------------------------------------------------------------------ int1 1 True TYPE_INT 0 [1, 2, 23] None None int2 1 True TYPE_INT 0 [] 1 30 float1 1.0 None TYPE_FLOAT 0.5 [3.14, 2.73] None None float2 1.0 None TYPE_FLOAT 0.5 [] -1.2 0.5 str1 "stringy" None None None [r'^box$', r'^Bax', r'a+bc'] 3 8 cmplx1 4+5j None TYPE_COMPLEX 0-0j [] None None cmplx2 4+5j None TYPE_COMPLEX 0-0j [1-1j 1+1j] None None bool1 True None TYPE_BOOL None None None None ro1 "ReadVar" False None None None None None .fi .ft \" revert Notice that some of the fields are defined as \fCNone\fP. In this case, that parameter is set to its default value when the variable is created. (See the \fCtconfpy\fP documentation regarding the \fCVarDescriptor\fP object for the details.) The default is to not predefine any such variables. (Note that whether this option is present or not, \fCtconfpy\fP always creates a number of predefined variables of its own internally. See the \fCtconfpy\fP documentation for the details.) You can see all the predefined variables (and their attributes) by running \fCtest-tc.py\fP on an empty configuration file. This will show you both the variables automatically defined by \fCtconfpy\fP as well as any variables created with this option, if present. .TP .B inmem Read each cfgile specified on the command line into an in-memory list, and pass this list to the parser. This exercises the in-memory parsing capabilities of \fCtconfpy\fP. It is primarily provided as a diagnostic tool for anyone modifying the parser code. .TP .B nonewvars This option disables the creation of new variables in the configuration file (via the \fCAllowNewVars\fP API option). The user is limited to referencing and modifying only those variables already present in the symbol table. Typically used when passing an initial symbol table to the parser to limit the user to only those variables. The default is to permit new variable creation. .TP .B templates This option creates a default set of variable templates for use in the configuration file. These are passed to the \fCtconfpy\fP parser via the \fCTemplates={}\fP API option. The following variable templates are predefined when this option is used: .ft C \" courier .nf Name Val RO Type Def Legal Values Min/Max -------------------------------------------------------------------------- templb 1 RW boolean False [] None None templc 4+5j RW complex 0-0j [1-1j, 1+1j] None None templf 1.0 RW float 0.5 [3.14, 2.73] None None templi 1 RW int 0 [1, 2, 23] None None templs "stringy" RW string "" [r'^box$', r'^Bax', r'a+bc'] 3 8 .fi .ft \" revert .TP .B temponly This option will only permit new variable creation if a template for that variable exists (via the \fCTemplatesOnly=True\fP parser API option). This is used in conjunction with the \fCtemplates\fP option above. .TP .B limitns This option will populate the initial symbol table so that only a limited number of namespaces can be used. If this option is present, only the root namespace, and namespaces beginning with the string "NS" will be allowed. In this case, namespaces will be required to be from 3 to 8 characters long. The default without this option is to allow new namespaces to be used without restrictions on name or length. The initial namespace is set to root ("") whether or not this option is selected. .TP .B litvars By default, \fCtconfpy\fP does nothing to text encountered inside of \fC.literal\fP blocks in a configuration file. If this option is present, the test driver tells \fCtconfpy\fP to replace any variable references present in a \fC.literal\fP block. See the \fCtconfpy\fP documentation for a more complete description. .TP .B nopredefs This option tells the parser (via the \fCReturnPredefs=False\fP API option) to .B not include any of its own predefined variables in the symbol table it returns. .TP .B debug This option causes the test driver to invoke \fCtconfpy\fP with debugging enabled and then display debug output when parsing is complete. The default is for debug output to be disabled. .SH ADDING OR CHANGING PREDEFINED VARIABLES IN THE TEST DRIVER This test driver uses a simple table-driven scheme for predefining variables should you desire this feature. This can be found near the beginning of the \fCtest-tc.py\fP file. All this should be fairly self-explanatory once you understand the various variable attributes recognized by \fCtconfpy\fP. Edit this table as desired to create more variables or different attribute values for your testing purposes. The exact same scheme is used for predefining variable templates and you can add/delete/change these to suit your own tastes in the same way. .SH OTHER Requires Python 2.3 or later. .SH BUGS AND MISFEATURES The symbol table dump at the end of a program run could be formatted better. .SH COPYRIGHT AND LICENSING \fCtest-tc\fP is part of the \fCtconfpy\fP package and is Copyright (c) \*(CP TundraWare Inc. For terms of use, see the tconfpy-license.txt file in the program distribution. If you install \fCtconfpy\fP on a FreeBSD system using the 'ports' mechanism, you will also find this file in /usr/local/share/doc/py-tconfpy. .SH AUTHOR .ft C \" Courier .nf Tim Daneliuk tconfpy@tundraware.com .fi .ft \" revert .SH DOCUMENT REVISION INFORMATION $Id: test-tc.1,v 1.112 2005/01/20 10:08:50 tundra Exp $