Package qm :: Package test :: Package classes :: Module compiler_table :: Class CompilerTable
[hide private]
[frames] | no frames]

Class CompilerTable

source code

         object --+            
                  |            
extension.Extension --+        
                      |        
      runnable.Runnable --+    
                          |    
          resource.Resource --+
                              |
                             CompilerTable

A map from programming languages to 'Compiler's.

The 'CompilerTable' resource uses the context to determine which
compilers the user wants to test.  Test databases containing
compiler tests should arrange for the tests they compain to depend
on a 'CompilerTable' resource.

The first context variable which is examined is
'CompilerTable.languages'.  The value should be a
whitespace-separated list of programming language names.  (See
below for standardized names for some languages.)

Then, for each language 'l' in the list of languages, the
following context variables are examined:

- 'CompilerTable.l_kind'

  The kind of compiler (e.g., "GCC" or "EDG") used to compile
  programs of language 'l'.  The 'kind' must name a class derived
  from 'Compiler'.

- 'CompilerTable.l_path'

  The path to the compiler for language 'l'.  This path may be
  either absolute or relative.

- 'CompilerTable.l_options'

  A whitespace-separated list of command-line options to provide
  to the compiler for language 'l'.  These options are passed to
  the constructor for the 'Compiler' object; generally, all tests
  are run with these options, followed by any test-specific
  options.  For example, if the user wants to test the compiler
  when run with '-O2', the user would put '-O2' in the 'l_options'
  context variable.

The 'CompilerTable' resource provides the following context
variables to all tests that depend upon the resource:

- 'CompilerTable.compilers'

   The 'compilers' variable is a map from language names to
   instances of 'Compiler'.  Test classes should obtain the
   'Compiler' to use when compiling source files by using this
   map.

- 'CompilerTable.target'

   An instance of 'Host' that can be used to run compiler
   programs.

Nested Classes [hide private]

Inherited from runnable.Runnable: ResourceField

Inherited from extension.Extension: Type, __metaclass__

Instance Methods [hide private]
 
SetUp(self, context, result)
Set up the resource.
source code

Inherited from resource.Resource: CleanUp

Inherited from runnable.Runnable: GetAttachments, GetDatabase, GetId, __init__

Inherited from extension.Extension: GetClassName, GetExplicitArguments, MakeDomDocument, MakeDomElement, Write, __getattr__

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables [hide private]
  LANG_C = "c"
The name of the C programming language.
  LANG_CPLUSPLUS = "cplusplus"
The name of the C++ programming language.

Inherited from resource.Resource: kind

Inherited from runnable.Runnable: EXTRA_DATABASE, EXTRA_ID, RESOURCE_FIELD_ID, arguments, resources

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

SetUp(self, context, result)

source code 

Set up the resource.

'context' -- A 'Context' giving run-time parameters to the resource. The resource may place additional variables into the 'context'; these variables will be visible to tests that depend on the resource.

'result' -- A 'Result' object. The outcome will be 'Result.PASS' when this method is called. The 'result' may be modified by this method to indicate outcomes other than 'Result.PASS' or to add annotations.

This method should not return a value.

Derived classes must override this method.

Overrides: resource.Resource.SetUp
(inherited documentation)