Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Titan » The Titan runtime configuration file
The Titan runtime configuration file [message #1735829] Thu, 23 June 2016 07:01 Go to next message
Elemer Lelik is currently offline Elemer LelikFriend
Messages: 807
Registered: January 2015
Senior Member

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
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:
Logging can be configured with fine granularity using config file options.


In this section one can specify parameters that are passed to test ports.

For example:
mtc.*.LocalIPAddress := ""  //all ports of mtc will have the given local address
*.HTTPPort.RemoteAddress := "" // any port named HTTPPort in any component will be passed the given value of RemoteAddress 
mtc.RADIUS[0].LocalUDPPort := "12345"  //The first port of the RADIUS port array will have a LocalUDPPort value of "12345" 
mtc.RADIUS[1].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,
myGroup :=,
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 :=
* := 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.

Best regards


[Updated on: Thu, 23 June 2016 07:12]

Report message to a moderator

Re: The Titan runtime configuration file [message #1737454 is a reply to message #1735829] Fri, 08 July 2016 11:50 Go to previous message
Gustavo Gonnet is currently offline Gustavo GonnetFriend
Messages: 34
Registered: October 2015
Location: Montreal, Quebec, Canada
Nicely explained. One thing I'd like to add is this:
All parameters defined in the [DEFINE] section have a local context and ARE NOT SEEN by Titan.

thank you
Previous Topic:Advanced TTCN-3 usage: The secret life of shorthand notations
Next Topic:Simple test case with CoAP
Goto Forum:

Current Time: Fri Sep 21 21:46:24 GMT 2018

Powered by FUDForum. Page generated in 0.01614 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top