Skip to content

Loading builds...

Changes

#662 (Aug 1, 2026, 2:38:00 PM)

stp: expected-results.xml: Add two missing tests

Change-Id: I756ee108ad8a657679b2d098175e01b859af4bc8
Pau Espin Pedrol at

#661 (Jul 31, 2026, 2:38:00 PM)

eIM: Make tests work with testenv

The eIM can now be tested using testenv.py.

Related: SYS#8100
Change-Id: I38364e4bd5625b301c32fd58b50e35667c64b1be
pmaier@sysmocom.de at
hlr: pyhss: add ussd configuration

Configure the same strings for returning MSISDN and IMSI as in OsmoHLR,
because this is what the tests expect.

Related: https://github.com/nickvsnetworking/pyhss/pull/302
Change-Id: I7d2f62e6c034e3fd3c5dce048ccb297f4dea7825
Oliver Smith at

#660 (Jul 30, 2026, 2:38:00 PM)

deps: Update nas.git to rebased branch on top of v1.2.1

We have a forked repo of ETSI's nas.git on our osmocom gitea, which
contains an extra fix for upstream (currently waiting to be merged [1])
and one patch implementing C++ helpers to fit our own environment, which
needs to be kept downstream.

There has been quite a lot of development in upstream lately (TTF_T059),
with eg. old NGAP.git code being put inside nas.git (we are still using
our own copy of NGAP inside osmo-ttcn3-hacks/library/, but that may
change in the future).

A new branch rebased on top of upstream's master (v1.2.1) has been
pushed to our forked repo, so use it here to already align better with
upstream, easing further work and contributions in the future.

[1] https://forge.etsi.org/rep/int/5g-core/nas/-/merge_requests/18

Related: SYS#7073
Change-Id: I731c37324de93fe2bf35dac7e64304fc5057ee5f
Pau Espin Pedrol at

#659 (Jul 29, 2026, 2:38:00 PM)

ruff: ignore new failing default rules

With the new ruff 0.16 version, a lot of new default rules have been
added. Ignore the ones that are failing for now to make the linter pass
again.

Related: https://astral.sh/blog/ruff-v0.16.0#better-default-rule-set
Change-Id: If95dc72c1826b4b96961453b2c2ed1d2c81ba149
Oliver Smith at
testenv: fix B006

Fix "B006 Do not use mutable data structures for argument defaults". I
ran into bugs caused by this a couple of times actually, it is good to
check for that.

Related: https://docs.astral.sh/ruff/rules/mutable-argument-default/
Change-Id: Id860c1cba20c0218aa1d1bb17378a0f5a521cfe0
Oliver Smith at

#652 (Jul 22, 2026, 2:38:00 PM)

testenv: Dockerfile: rebar3 version via apt-cache

When building for Debian Unstable, we need a higher rebar3 version so it
is compatible with the Erlang OTP version in the distribution. Get the
version of rebar3 from the distribution via apt-cache and download it
instead of hardcoding a version number.

Related: OS#7025#note-10
Change-Id: Ie3c8812c41648dd5ca655114dec00ae7d48eaba8
Oliver Smith at
testenv: support Debian Unstable

Related: SYS#7025#note-10
Change-Id: Ib8f04ee1e8b33f6e724ea2a74b1a96f26746e878
Oliver Smith at
testenv: init: check distro argument early

Check the --distro argument and print a proper error, instead of failing
later on with a stack trace if it is unsupported.

Change-Id: I9d51c2b236f10f4c10e991873df47b4f3297e6e1
Oliver Smith at

#646 (Jul 16, 2026, 2:38:00 PM)

CCID: Check if reader times out while expecting procedure byte

A case 2 APDU (according to ISO 7816) is sent toward the reader. The
reader expects a procedure byte or a status word. If none of these are
sent by the SIM the reader must timeout and send an error message back
to the host.

Change-Id: Iacd6aacaf8220e69b9b7038e354d54c788d1eb05
jolly at
CCID: Check if reader handles Abort correctly

The tests aborts an ongoing case 2 APDU (according to ISO 7816). The
SIM responds with a NULL procedure byte so that the reader does not
time out.

The abort messages are sent on both, the control pipe and the bulk
pipe with the same sequence number.

This test fails with osmo-ccid-firmware, because the abort
message/handling is not yet implemented.

Change-Id: Iebe97e73497b8468ebf08faf2c4db700fc76997f
jolly at

#645 (Jul 15, 2026, 2:38:00 PM)

deps: use a fork of titan.ProtocolEmulations.SCCP

The fork adds support for sending UDTS via
ASP_SCCP_N_NOTICE_req.

Change-Id: I8c0de4dab088930d5d7a9febcbebcb5e1f9411e8
daniel at
stp: add ASP_SCCP_N_NOTICE_req support and f_asp_tx_notice()

Wire ASP_SCCP_N_NOTICE_req as a simple passthrough in TCAP_CODEC_PT,
so test components can send UDTS via the existing SCCP_TCAP port.
Add f_asp_tx_notice() to STP_Tests_TCAP as a convenience wrapper.

Change-Id: I74c05405f1c99d43b4bf863f959275ee51301f2e
daniel at
stp: Add TCAP_N_NOTICE_req to send a UDTS with TCAP payload

Change-Id: Ie13cecc2f2fc8a20d9646f0fb010b91c2ecf7766
daniel at
stp: Test that UDTS containing tcap is routed correctly

Related: SYS#8090
Depends: libosmo-sigtran.git I2051aa9e84e553feb17daabb93ba3ce82358e0e4
Change-Id: I264ab424fbc3652249535bbe4f30029defa64c09
daniel at

#643 (Jul 13, 2026, 2:38:00 PM)

CCID: Check if reader times out after first status word

A case 1 APDU is sent towards the reader. The reader expects two status
words. If only the first word is sent by the SIM, the reader must
timeout and send an error message back to the host.

Change-Id: Ic5b892e356c13808555d75746c48c6d8c96ec462
Andreas Eversberg at
CCID: Send a wrong procedure byte towards the reader

A case 2 request (according to ISO 7816) is sent and a response with
data is expected, but the first byte replied by the SIM is not a
procedure byte, nor a valid status byte.

This text expects the reader to return an error that states an incorrect
received procedure byte.

Change-Id: Iaa0bd8845b3408fba309874fe41c855d8e7efccc
Andreas Eversberg at

#639 (Jul 9, 2026, 2:38:00 PM)

eIM, IPAd: migrate from SGP.32 V.1.0.1 to SGP.32 V.1.2

SGP.32 V.1.2 is not backward compatible to SGP.32 V.1.0.1. This patch updates
the ASN.1 specification and the TTCN3 templates and types accordingly.

It also applies the bare minimum of changes required to compile the eIM and IPAd
testcases.

Related: SYS#8100
Related: SYS#8101
Change-Id: Id9e112669d9ed8caaec0893c55189eb566fe59be
Co-authored-by: Andreas Eversberg <aeversberg@sysmocom.de>
pmaier@sysmocom.de at

#638 (Jul 8, 2026, 2:38:00 PM)

STP_Tests_TCAP: Fix ipa_to_ipa testcase

tcap routing doesn't work the way the test thinks. E.g. a Begin can't be
routed to a special destination because it does't contain a dtid which
is needed to route to the correct ASP.

Change-Id: Ie274232b706348b5ab6d0ac248883d86c53ebb4e
dwillmann at
STP_Tests_TCAP: Test routing of fragments in TC_tcap_loadshare_ipa_tcap_range_success_pc

A TCAP Begin will cause the stp to create a cache entry and route
according to that. Send only a TCAP Continue so we check the tcap range
routing logic.

Change-Id: I1cb47174b8f0e69970e75109b9d15b2012e150c3
dwillmann at

#637 (Jul 7, 2026, 2:38:00 PM)

library: add f_gsm_fn_{sum,sub,diff}()

Change-Id: Ie91ccef5d3f170f4a341a6cf9d3323a896b299e6
laforge at
bts: TC_pcu_interf_ind: check reporting interval instead of absolute FN

Recent osmo-bts commit 53f0ec29 broke TC_pcu_interf_ind:

  Verdict: fail reason: Odd TDMA frame number := 935

There's no requirement that periodic interference reports must land
on a TDMA frame number satisfying 'fn mod 104 == 0' - only that they
keep arriving every configured averaging period.  Instead, verify
that the interval between consecutive reports equals 104 TDMA frames
(1 SACCH period), using the new f_gsm_fn_sub() helper.

Change-Id: Ia96f2926400bae8c0a6fb8f81eb56b48ca5f2de9
Related: 53f0ec29 ("l1sap: fix duplicate RF RESOURCE INDICATION on clock bootstrap")
Vadim Yanitskiy at

#634 (Jul 4, 2026, 2:38:00 PM)

stp: for TCAP loadshare: use NI == national

Use a non-zero NI. The TCAP tests don't check it
on the receive path, but the osmo-stp is checking
it if it matches the configuration.

Related: SYS#8061
Change-Id: I51ef302ad72ff3c434fddb39006ce50106a5918f
lynxis at

#236 (Jun 2, 2025, 2:38:00 PM)

bts: f_init(): print testcasename() in the IUT's logs

It's useful to see testcase names in the IUT's logs in some
situations.  For instance, when some testcase crashes the IUT.

Change-Id: I16136f32d7143edfc1638e359ef5b1066c248732
Related: OS#6794
laforge at
bsc: fix race condition in RSLEm

It may happen that the RSLEm component receives a DChan message
earlier than we suspend the DChan processing.  We saw this once:

  RSL for unknown Dchan
      BSC_Tests.ttcn:12769 BSC_Tests control part
      BSC_Tests.ttcn:5888 TC_ho_int_a5_4 testcase

Let's guard against this by calling f_rslem_suspend() earlier.

Change-Id: I012d4db05538d294a6b4aa85be4a40bb0bad28a3
laforge at
testenv: run "make deps" every time

The previous logic of not always running "make deps" was useful when
"make deps" would take a long time to complete even if there were no
changes. But this has been fixed in c7e40d6a ("Makefile: avoid fetching
deps if not needed"). Run it every time now in order to fix that deps
are not updated after deps/Makefile gets changed.

Change-Id: I02668530ce36c51a1c641fb816464c9c8e6ded9e
Oliver Smith at
5gc: Initial NAS receiving support

With this patch it is already possible to receive the NAS Auth Request
in the test ConnHdlr.

nas.git dep needs updating to include a new patch fixing decoding of
NG_AUTHENTICATION_REQUEST.

Change-Id: I6697f30f95777fc9aed16a529a669d10f42c57be
Pau Espin Pedrol at
5gc: Initial NAS transmitting support

With this patch it is already possible to transmit the NAS Auth Response
in the test ConnHdlr.
We still lack generating a proper RES to have the response properly
accepted.

Change-Id: I951e98217b0150eed58fabb8e50a4782c1a3b510
Pau Espin Pedrol at
testenv: podman: Install newer libcurl from bookworm-backports

It was already spotted a few days ago that libcurl4 7.88.1-10+deb12u12,
currently being shipped by debian12, contains some sort of bug where it
doesn't properly format/read HTTP2 requests when used in open5gs.
It was found out that installing a newer version of libcurl4 fixes the
problem.
This patch also fixes the problems spotted in the 5gc testsuite when
running within podman (they didn't show up outside podman because I'm
using Archlinux and hence using newer libcurl 8.13.0 too).

Change-Id: I799eeac73c49b9596502ad98acaa11dba3b88e97
Pau Espin Pedrol at
5gc: Fix upfd failing to start outside podman

tuns need to be recreated beforehand with sudo, as already done in
ttcn3-ggsn-tests-ogs, otherwise upfd would need root access to create
them.

Change-Id: I5d3e0c3b7391d312304190acf07b347320481275
Pau Espin Pedrol at
testenv: use eclipse-titan 11 in Dockerfile

Install eclipse-titan from osmocom:nightly instead of osmocom:latest,
which now has version 11. Once we ensured everything works as expected,
we will upgrade the version in osmocom:latest too.

Change-Id: I660dd6ca93a54087b1d41787c4ed2b64a3ad0437
Oliver Smith at