Project

General

Profile

Automatic Testing

Within Osmocom we are used to rather comprehensive functional test suites that we execute automatically
at least once per 24 hours. That is for the 99% of our software that is userspace code.

For the kernel GTP code, it's of course not that simple, and we never had any related testing so far.

In 2021, 5 years after the GTP kernel driver was merged mainline, we now finally have set up some test jobs for kernel GTP.

Those jobs execute the same GGSN test suite that we run against the userspace dataplane (handling GTP-U and GTP-C in a userspace program osmo-ggsn). The only difference is that they configure osmo-ggsn to use the kernel GTP driver for GTP-U.

Those tests are executed by jenkins, in the following jobs:

ttcn3-ggsn-test-kernel-latest-torvalds

  • jenkins job
  • runs GGSN test suite against latest released osmo-ggsn version with kernel-gtp of torvalds/linux.git
  • test results (make sure to click "Expand All")

ttcn3-ggsn-test-kernel-latest-net-next

  • jenkins job
  • runs GGSN test suite against latest released osmo-ggsn version with kernel-gtp of net-next.git
  • test results (make sure to click "Expand All")

ttcn3-ggsn-test-kernel-latest

  • jenkins job
  • runs GGSN test suite against latest released osmo-ggsn version with kernel-gtp of Debian 10 kernel package
  • test results
    (make sure to click "Expand All")

Manually triggered tests

Contrary to the above jenkins jobs which all run automatically once every 24 hours, there is also one jenkins job for manual execution:

ttcn3-ggsn-test-kernel-git

  • jenkins job
  • this is the same test suite and osmo-ggsn as above, but a developer can manually trigger the job and specify
    • URL of the kernel git repo to build
    • branch of the kernel git repo to build
    • whether to use osmo-ggsn latest tag or master

If any one is working on the kernel GTP driver and wants to get access to triggering that jenkins job in order to test your patches/branches before submission, please register an account at https://jenkins.osmocom.org/ and contact privately.

We are always happy about any contributions in terms of extending test coverage. This could be done by e.g. adding jobs using other P-GW/GGSN software than osmo-ggsn, or by extending the coverage of the test cases of the test suite.

For anyone interested in more details, please see our redmine issue https://osmocom.org/issues/3208 tracks the development of the tests.

The test suite source code (in TTCN-3) is at https://git.osmocom.org/osmo-ttcn3-hacks/tree/ggsn_tests
with containerization + configs at https://git.osmocom.org/docker-playground/tree/ttcn3-ggsn-test

I'd like to thank Oliver Smith for creating the above automatic test CI integration. Development of this was funded by sysmocom (https://sysmocom.de/)

Add picture from clipboard (Maximum size: 48.8 MB)