Project

General

Profile

Osmocom Titan TTCN3 Testsuites

In 2017, Osmocom started to create extensive tests suites for the Cellular Network Infrastructure elements. Those suites are written in the TTCN-3 programming language and use the compiler + executor of the Eclipse_TITAN project.

Source Code / Patches

The source code of our test suites lives in the osmo-ttcn3-hacks repository

We're following the Gerrit process for patch review.

Test Suites

Implementation under Test Testsuite Jenkins
bsc-nat http://git.osmocom.org/osmo-ttcn3-hacks/tree/bsc-nat -
OsmoBSC http://git.osmocom.org/osmo-ttcn3-hacks/tree/bsc https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-bsc-test/
OsmoBTS http://git.osmocom.org/osmo-ttcn3-hacks/tree/bts https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-bts-test/
OsmoGGSN http://git.osmocom.org/osmo-ttcn3-hacks/tree/ggsn_tests https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-ggsn-test/
OsmoHLR http://git.osmocom.org/osmo-ttcn3-hacks/tree/hlr https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-hlr-test/
OsmoMGW http://git.osmocom.org/osmo-ttcn3-hacks/tree/mgw https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-mgw-test/
OsmoMSC http://git.osmocom.org/osmo-ttcn3-hacks/tree/msc https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-msc-test/
OsmoPCU http://git.osmocom.org/osmo-ttcn3-hacks/tree/pcu -
OsmoSGSN http://git.osmocom.org/osmo-ttcn3-hacks/tree/sgsn https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-sgsn-test/
osmo-sip-connector http://git.osmocom.org/osmo-ttcn3-hacks/tree/sip https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-sip-test/

Running a testsuite

You have multiple options on how to execute a test suite.

Running test suite in the dockerized environment

This is the much easier way to run the test suite. No manual configuration of Osmocom programs or the test suite are required. Both the Osmocom program (Implementation Under Test) as well as the test suite are packaged as docker containers, whcih are then executed next to each other using a docker network with the "right" addrsses between IUT and testsuite.

Also, using this setup you will be guaranteed to run in the exact same environment as the automatically-executed tests on jenkins.osmocom.org, i.e. your results should be exactly identical, without any differences introduced by your runtime environment, whether specific library versions or intentional or inadvertent configuration differences.

The docker files for this can be found in the docker-playground git repository which you can clone from git://git.osmocom.org/docker-playground

Let's assume you'd want to run the testsuite for OsmoBSC. You would need to
  1. look at http://git.osmocom.org/docker-playground/tree/ttcn3-bsc-test/jenkins.sh to understand which containers are required.
    • at the time of writing, this is osmo-stp-master, osmo-bsc-master, osmo-bts-master and ttcn3-bsc-test
  2. build those respective containers by issuing make in the above-mentioned directories, e.g.
    $ (cd osmo-stp-master && make)
    $ (cd osmo-bsc-master && make)
    $ (cd osmo-bts-master && make)
    $ (cd ttcn3-bsc-test && make)
    
  3. run the jenkins.sh script of the ttcn3-bsc-test suite:
    $ cd ttcn3-bts-test && ./jenkins.sh
    
The jenkins.sh script will make sure to
  • create the needed docker network[s]
  • run all the required containers (IUT, helpers, testsuite)
  • shut them down after test suite execution
  • collect the log files after execution, /tmp/logs will contain them

Running only a sub-set of the test cases

FIXME

Running it native on your machine

This is the most complicated bit to set-up, as you will have to run the respective Osmocom Program (Implementation Under Test) in the right configuration with all the IP addresses, port numbers, config file, etc. exactly like it's expected by the test suite.

You will need a deeper understanding about how the test suite works, and what its requirement are.

Running only a sub-set of the test cases

FIXME

Further information

Add picture from clipboard (Maximum size: 48.8 MB)