|The Titan runtime configuration file [message #1735829]
||Thu, 23 June 2016 07:01
|| Elemer Lelik
Registered: January 2015
Parts of the configuration file have been discussed earlier; the aim of this post to offer an overview that can be used as a quick reference.
Initializing the data for the code itself can be done in two ways in Titan:
some values are generated during compilation, but there's also the possibility to attribute values to module parameters at the start of execution from a configuration file. Likewise, some parameters controlling the behaviour of Titan during test execution can be read from an external configuration file.
The config file used by Titan is a text file, structured in sections , each section having a particular header.
Sections may come in random order. We'll briefly go through each section and describe them broadly.
Further details about the config file can be found in the reference guide Ch.7 The Run-time Configuration File
This was discused in detail in https://www.eclipse.org/forums/index.php/t/1077635/
Essential to remember is that module parameters in the config will override module parameters in the code,
and their value is set at the start of execution, when Titan reads the config file;
this permits quickly changing values without the need to recompile the code.
Again, there's a separate forum post for this: https://www.eclipse.org/forums/index.php/t/1073933/
Logging can be configured with fine granularity using config file options.
In this section one can specify parameters that are passed to test ports.
mtc.*.LocalIPAddress := "10.48.161.146" //all ports of mtc will have the given local address
*.HTTPPort.RemoteAddress := "10.48.161.147" // any port named HTTPPort in any component will be passed the given value of RemoteAddress
mtc.RADIUS.LocalUDPPort := "12345" //The first port of the RADIUS port array will have a LocalUDPPort value of "12345"
mtc.RADIUS.LocalUDPPort := "12346" //The second port of the RADIUS port array will have a LocalUDPPort value of "12346"
Each test port has its' own set of significant port parameters which are documented in the ports' description.
In this section one can create macro definitions that can be used in other configuration file sections except [INCLUDE].
Useful when a value appears in multiple sections, as when a change is needed, this has to be done in one location only.
Other configuration files can be included.
The [INCLUDE] directives of included files are processed recursively.
Each referenced configuration file is processed exactly once even if it is included from several places.
Relative pathnames are resolved based on the directory of the referring configuration file.
Same as include, except that inlcuded config files are sequentially processed.
This section defines external commands ( shell scripts)
to be executed by the ETS whenever a control part or test case is started or terminated.
Using this feature one can control external monitor programs
(like tcpdump in case of IP testing) automatically during test execution.
BeginTestCase := "/usr/local/tester/bin/StartTcpdump"
EndTestCase := "/usr/local/tester/bin/StopTcpdump"
In this section you have to specify what parts of your test suite you want to execute.
In single mode the configuration file is useless without this section.
IPv6Demo.tc_send_echo // run it twice
IPv6BaseSpecification.control //execute the control part
IPv6NeighborDiscovery.* //execute all test cases
In this section one can specify groups of hosts.
These groups can be used inside the [COMPONENTS] section to restrict the creation of certain PTCs to a given set of hosts.
HeintelAndPauler := heintel, pauler.ez.domain.hu
myGroup := 10.44.87.34, test-host.123.com
AllHosts := *
This section consists of rules restricting the location of created PTCs. These constraints are useful when distributed tests are executed in a heterogeneous environment.
The participating computers may have different hardware setup, computing capacity or operating system.
MyComponentType := HeintelAndPauler
CPComponentType := 10.44.87.34
* := AllHosts
[GROUPS] and [COMPONENTS] can be used to control execution of Titan over an array of computers, physical or virtualized/cloud based.
Binaries will have to be distributed and launched manually. As a result , Host Controllers will be created on each host,
and they will connect to the Main Controller. For details see user guide 4.4 Running Parallel Test Suites.
These options control the behavior of the main controller(MC).
Options LocalAddress and TCPPort determine the IP address and TCP port on which the MC application will listen for incoming HC connections.
LocalAddress can be useful on multi-homed hosts.If omitted MC will accept connections on all local IP addresses.
TCPPort is a port number between 0 and 65535, recommended value being 9034.
Using a port number less than 1024 requires super-user (root) privileges.
The MC will listen on an ephemeral port chosen by the kernel when TCPPort is omitted or set to zero.
The KillTimer option tells the MC to wait some seconds for a busy test component (MTC or PTC) to terminate when it was requested to stop .
The MC in co-operation with the local HC kills the UNIX process if the component did not terminate properly before KillTimer expiry.
The purpose of this function is to prevent the test system from deadlocks.
Please note that when the UNIX process of MTC is killed all existing PTCs are destroyed at the same time.
The settings in this section control the behavior of the TTCN-3 Profiler and Coverage measurement.
This section will be treated in detail in a separate post.
[Updated on: Thu, 23 June 2016 07:12]
Report message to a moderator
Powered by FUDForum
. Page generated in 0.02250 seconds