This documentation helps you to understand and use the script.


help command

You can refer to the help command if you don’t know how to continue at any point. Simply run one the following command:

python -h
python --help

The result gives you a first idea, what is possible with the script. The output looks like this:

-h show this help message and exit
-p PROTO available protocol test suites are {mqtt, coap, opcua} sets a protocol that will be cloned together with its dependencies
-b build the project and create a Makefile
--path PATH specify optionally your root directory, where all dependencies will be stored
-e NAME set the name of the executable that will be generated
-v progress status output is verbose

protocol command

The protocol command is the a mandatory flag. It will scan your working directory to check whether all dependencies are met. In case there is something missing, the script will download the missing dependencies automatically. The command demands a parameter representing the interesting protocol.

Let’s assume you would like to run tests against a CoAP implementation. Run one of the following command to get the CoAP conformance test suite and all it’s dependencies:

python -p coap
python --protocol coap

Use the same procedure for any available protocol.

build command

This optional command can be used to build the IoT-Tesware. It builds a Makefile first and creates an executable afterwards. You can only build one protocol at a time. It is determined by the protocol command. To build the CoAP test suite for example, run one of the following commands:

python -p coap -b
python -p coap --build

path command

When you run the install script, it creates a folder structure under ~/Titan by default. This is your base directory where the IoT-Testware and all it’s dependencies are stored:

IoT-Testware You find the test suites for the protocols you have chosen via the protocol command. It creates a folder for every protocol separately in the form of iottestware.<PROTOCOL>

Libraries Collection of libraries needed for the specific IoT-Testware protocol.

ProtocolModules The protocol modules, provided in developer resources, are included inside this directory. The subset of protocol modules are protocol dependent. They define the protocol types.

TestPorts To bridge the gap between the test suite and the system under test (SUT), test ports are needed. They are provided by Eclipse Titan project.

executable command

With this command it is possible to name the executable that is generated when calling the build command. In contrast, the install script chose a default name for the executable following the scheme:


To set your own name for the resulting executable, let’s say “myExecutable” simply run one of this command:

python -p coap -e myExecutable
python -p coap --executable_name myExecutable

verbose command

If you set this command, the console output will be verbose and give you more information during the process. By default, the output is quite, meaning only important messages are shown. To switch the verbose output on, you add either `` -v `` or `` –verbose `` to your command like in the following examples:

python -p coap --verbose -e myExecutable
python -p coap -b -v
python --verbose --protocol coap