Skip to content
Success

Changes

Summary

  1. Common.cfg: Logging: add %p to LogFile format (details)
  2. Cosmetic: log_merge: modernize (details)
  3. log_merge: ensure we don't overwrite the log file (details)
  4. log_merge: use same prefix as for pcap files (details)
  5. M3UA_Templates: Allow passing multiple Routing Context values (details)
  6. stp: Update TC_rkm_unreg_active to expect multiple routing contexts (details)
  7. stp: Store asp name in array of m3ua cfgs (details)
  8. stp: Introduce test TC_clnt_sctp_adm_shutdown (details)
  9. stp: Introduce test TC_m3ua_sctp_srv_adm_shutdown (details)
  10. hnbgw: HNBGW_Tests.default: Drop unused LLSK config (details)
  11. hnbgw: Add missing plmn config in osmo-hnbgw.cfg (details)
  12. hnbgw: Configure local ASP/AS in osmo-hnbgw.cfg (details)
  13. hnbgw: Introduce test TC_{cs,ps}_rua_dt_during_sccp_wait_cc (details)
  14. gbproxy/testenv: initial (details)
  15. gbproxy: sync configs with docker-playground (details)
  16. hnbgw: Introduce altstep as_pfcp_handle_del_req() (details)
  17. hnbgw: Introduce tests TC_ps_rab_release(_abnormal) (details)
  18. testenv: podman_install: show checked out commits (details)
  19. testenv: podman_install: tweak git commands (details)
  20. testenv: no python trace for setup script failures (details)
  21. testenv: podman: add erlang-dev (details)
  22. testenv: podman: add missing tree command (details)
  23. testenv: qemu: fix adding kernel modules (details)
  24. testenv: fix not aborting on build_initrd error (details)
  25. testenv: qemu: initrd build fail: stop immediately (details)
  26. testenv: qemu: add modules.alias (details)
  27. testenv: support qemu=required in testenv.cfg (details)
  28. testenv: qemu_initrd_add_bin: support adding so (details)
  29. testenv: cfg: check for multiple spaces in lists (details)
  30. stp: Rename STP_Tests.ttcn -> STP_Tests_IPA_M3UA.ttcn (details)
  31. stp: STP_Tests_IPA: Support configuring less than 8 AS(P)s (details)
  32. epdg: add sleep to f_TC_hss_initiated_deregister_permanent_termination (details)
  33. epdg: TC_concurrent_ues_MTC: rx CMD_ATTACHED without from (details)
  34. epdg: initial testenv.cfg (details)
  35. testenv: check eclipse-titan version (details)
  36. stp: Initial split into several testenv config (details)
  37. stp: Split M3UA TCP tests into its own testenv config (details)
  38. stp: m3ua: Specify ASP names to use per test (details)
  39. stp: ipa: Specify ASP names to use per test (details)
  40. library: NGAP encoding/decoding using libfftranscode (details)
  41. library: Add NGAP_Templates.ttcn (details)
  42. ngap: NGAP_Pixits: fix modulepar without default value assigned to (details)
  43. NGAP_Templates: Fix criticality of PLMNSupportList IE in NGSetupResponse (details)
  44. NGAP_Templates: Add missing rx template for NGSetupFailure with (details)
  45. library: Introduce NGAP Emulation (details)
  46. testenv: podman: Stick rebar3 downloaded version to 3.24.0 (details)
  47. 5gc: Introduce testsuite (details)
  48. library: Rename NAS_Templates.ttcn -> NAS_EPS_Templates.ttcn (details)
  49. testenv: add -j/--jobs parameter to run action (details)
  50. testenv: add TESTENV_INSTALL_DIR (details)
  51. testenv: README: document env vars set by testenv (details)
  52. 5gc: Initial ConnHdlr support (details)
  53. stp: ipa: Introduce tests to validate incoming TCP conn with unkown AS (details)
  54. testenv: deduplicate make_dir (details)
  55. testenv: fix TESTENV_INSTALL_DIR (details)
  56. 5gc: testenv: use TESTENV_INSTALL_DIR (details)
  57. log_merge.sh: Merge all logs if no test cases are found (details)
  58. deps: Depend on osmocom fork of forge.etsi.org nas.git (details)
  59. 5gc: Initial support encoding NG NAS UL messages (details)
  60. library/ngap: Fix wrong id set on PWSFailureIndication templates (details)
  61. library/ngap: Fix criticality of several NGAP messages (details)
  62. bts: f_init(): print testcasename() in the IUT's logs (details)
  63. bsc: fix race condition in RSLEm (details)
  64. testenv: run "make deps" every time (details)
  65. 5gc: Initial NAS receiving support (details)
  66. 5gc: Initial NAS transmitting support (details)
  67. testenv: podman: Install newer libcurl from bookworm-backports (details)
  68. 5gc: Fix upfd failing to start outside podman (details)
  69. testenv: use eclipse-titan 11 in Dockerfile (details)
Commit f5290b95a41e7413d9ff7d2ddeff9feac908a115 by Oliver Smith
Common.cfg: Logging: add %p to LogFile format

Add the process ID at the end of the log file that ttnc3 writes, to
avoid potential conflicts:

> Otherwise if you have eg TC_foobar in STP_Tests_M3UA and
> STP_Tests_IPA, you may end up rewriting one of them since both would be
> written with the same file name.

%e is the name of the TTCN-3 executable, e.g. STP_Tests even if the test
case is in STP_Tests_M3UA. It is not possible to get STP_Tests_M3UA into
the file name with any of the meta characters, I've tried it out.

Related: https://gitlab.eclipse.org/eclipse/titan/titan.core/-/blob/9.0.0/usrguide/referenceguide/7-the_run-time_configuration_file.adoc#L632-666
Change-Id: I0a2a376cd11784addff8ca228e3cc3e831b418a2
The file was modifiedlog_merge.sh
The file was modifiedCommon.cfg
Commit 60122096625dbc7db67d1f6a27eadf919b699e9a by Oliver Smith
Cosmetic: log_merge: modernize

Move license and copyright up and use an SPDX license identifier.

Change-Id: Iedd4f575edeaf47852f073d04d8cd8ffd92920dc
The file was modifiedlog_merge.sh
Commit b2a916a7ef4052174c1b996ca118aff0c607f7b0 by Oliver Smith
log_merge: ensure we don't overwrite the log file

Add a safety check that ensures we don't overwrite an existing log file
by accident.

Change-Id: Ieda3d95c60dfae208959b80d55a1e8c3925a9dad
The file was modifiedlog_merge.sh
Commit f93e24e746a2977355ac25b952bc58c011b630f8 by Oliver Smith
log_merge: use same prefix as for pcap files

In some testsuites we have tests in ttcn3 files other than the main
testsuite executable. In that case we save the pcap files with the name
of the ttcn3 file with the test, but before this patch the merged log
file has the name of the main testsuite. This is inconsistent and may
lead to a conflict if a test exists in multiple ttcn3 files.

Fix this by getting the same prefix as we use for the pcap from the
logfile itself. Fall back to using the same prefix as without this patch
in case we can't parse the log line.

Fixes: OS#6787
Change-Id: Id2937d711a54a34c0d87d080199b4c3d5a5d6e06
The file was modifiedlog_merge.sh
Commit b50ad60f6f38b94f43462d5c56691ba201e78e1f by Pau Espin Pedrol
M3UA_Templates: Allow passing multiple Routing Context values

Change-Id: I117c63786d71aea683b554cf294fee0ceed665e0
The file was modifiedlibrary/M3UA_Templates.ttcn
Commit d14819cf286914d87c6b87445d14f25a69eca886 by Pau Espin Pedrol
stp: Update TC_rkm_unreg_active to expect multiple routing contexts

That test is registering a new routcing context (AS) into an
existing/pre-configured ASP.
As a result, the ASP serves 2 AS. When we receive notifications on that
ASP then we'll be receiving info on 2 routing contexts, one for the
pre-confgiured AS and one for the dynamically registered one.

Depends: libosmo-sigtran.git I646301ec3d08ef98f227cf4d19da1039e40cedd2
Change-Id: I2dc4d197e6de38781b63e3079ada4c4b4a0db31d
The file was modifiedstp/STP_Tests_M3UA.ttcn
Commit 2b5b120b7eaa2ae4baebc9c6dfca601857731e7d by Pau Espin Pedrol
stp: Store asp name in array of m3ua cfgs

This way we keep STP specific config in one place instead of having to
figure out the ASP name on each test where we want to modify that ASP.

Change-Id: I1d5d9113dc95a8da911a7a99260c9bfe6e9de7c9
The file was modifiedstp/STP_Tests_M3UA.ttcn
Commit 3e856d5685d5d6e2b4b2cd4e1d18ee746cbee451 by Pau Espin Pedrol
stp: Introduce test TC_clnt_sctp_adm_shutdown

Related: OS#6752
Change-Id: I8b1c8b633afc1515dedfccd43e642401896b167e
The file was modifiedstp/expected-results.xml
The file was modifiedstp/STP_Tests_M3UA.ttcn
Commit 3a7b28ef19010f55295764cf719cac13502bb3b7 by Pau Espin Pedrol
stp: Introduce test TC_m3ua_sctp_srv_adm_shutdown

Related: OS#6752
Change-Id: Iad34af7e7758fbd3a0d686a261ccce53bc705817
The file was modifiedstp/expected-results.xml
The file was modifiedstp/STP_Tests_M3UA.ttcn
Commit eafa096c17f673dcf7e3efc77c09d5044449ad73 by Pau Espin Pedrol
hnbgw: HNBGW_Tests.default: Drop unused LLSK config

That's only used in osmo-hnodeb, and it's probably a leftover when
copy-pasting from hnodeb directory to create the hnbgw testsuite.

Change-Id: Ic04ded35f64b5dac0c5f36ebdf066d751013c438
The file was modifiedhnbgw/HNBGW_Tests.default
Commit fe3378149c9df99970cc1177a7941962cd07b89a by Pau Espin Pedrol
hnbgw: Add missing plmn config in osmo-hnbgw.cfg

Change-Id: Ie360247b7be9cf5ac4feeab2a8957131896f7721
The file was modifiedhnbgw/osmo-hnbgw.cfg
Commit 7f797404b9b95370d562c085447a107358a79c6b by Pau Espin Pedrol
hnbgw: Configure local ASP/AS in osmo-hnbgw.cfg

This allows us using known port for the SCTP assoc, which can then be
used to look up ASP in osmo-stp VTY.

Change-Id: Ic04702b597f7217890ee58734c11b866fb14af8b
The file was modifiedhnbgw/osmo-hnbgw.cfg
Commit fc86052d9d2a22bb6409669127ef25261bee38a7 by Pau Espin Pedrol
hnbgw: Introduce test TC_{cs,ps}_rua_dt_during_sccp_wait_cc

Related: SYS#7453
Change-Id: I97767db5560edf951202c876726d0c52b5b5b49f
The file was modifiedhnbgw/expected-results.xml
The file was modifiedhnbgw/HNBGW_Tests.ttcn
Commit bf3798b378d365c09cfa5fa242838cb43a54f522 by Oliver Smith
gbproxy/testenv: initial

Change-Id: I75265eb0765da85bffd76f8d64d278ed008d9b47
The file was addedgbproxy/testenv.cfg
Commit a02c8a259caaf20050cb3fb40ccf330518d3a8d9 by Oliver Smith
gbproxy: sync configs with docker-playground

Change-Id: Ibef7e870c5c90d1cc861c89904950b1ac68dc9b2
The file was modifiedgbproxy/GBProxy_Tests.cfg
The file was modifiedgbproxy/osmo-gbproxy.cfg
Commit e75a84faccbaf35dc5b8579f7b0e06037821fca4 by Pau Espin Pedrol
hnbgw: Introduce altstep as_pfcp_handle_del_req()

Change-Id: I94101b5f0ad8634db68f0a9d5230c00926b02061
The file was modifiedhnbgw/HNBGW_Tests.ttcn
The file was modifiedhnbgw/ConnHdlr.ttcn
Commit 2427e756ad58c4b59b0e0158cc4d3b014da537bd by Pau Espin Pedrol
hnbgw: Introduce tests TC_ps_rab_release(_abnormal)

Same as their existing CS counterparts TC_rab_release(_abnormal).

Related: SYS#7451
Change-Id: Ia25efc2d6bf01d4a13e7fd1ce0563d20dd2e321e
The file was modifiedlibrary/ranap/RANAP_Templates.ttcn
The file was modifiedhnbgw/HNBGW_Tests.ttcn
The file was modifiedhnbgw/expected-results.xml
Commit 1da23db789f441168ae0a53bc6a1636427cae631 by Oliver Smith
testenv: podman_install: show checked out commits

When running with --podman --binary-repo and a testsuite needs a
component for which we don't have a binary package (such as
sccp_demo_user), we need to clone the source and build it.

Show the commit from which we are building / have already built the
component.

Suggested-by: Pau Espin Pedrol <pespin@sysmocom.de>
Change-Id: I2837a41c919a9f7ef8c315ce5aa48fb4fe3f9a85
The file was modified_testenv/testenv/podman_install.py
Commit 8dfdcbc98f5da4ce0fcea261adcfecb922b3afae by Oliver Smith
testenv: podman_install: tweak git commands

* Do not run them in podman: git is required to run testenv, by not
  running it through podman the command in the log is shorter.
* Set advice.detachedHead=false for the git clone to avoid printing the
  "You are in 'detached HEAD' state. You can look around ..." text block
  that isn't useful in this context.

Change-Id: I2ee26764d1471e54eff748e11ec2cce6fb662667
The file was modified_testenv/testenv/podman_install.py
Commit c3a6c8156207166fa183a5d68dafdf8530a8278e by Oliver Smith
testenv: no python trace for setup script failures

Do not print a python trace when a setup script fails, usually it is
unrelated and just clutters the output.

Change-Id: Icbec52befa268547906fdbe9b52bdbc9e94722e6
The file was modified_testenv/testenv/daemons.py
Commit 0bb6ee7d89ebe617437a59d29c78fb82013c0fc7 by Oliver Smith
testenv: podman: add erlang-dev

Add the full erlang-dev package to the podman container, so we can build
osmo-epdg from source. Without this it fails with ei.h missing.

Change-Id: I4ca9d1823037889315f50de629e5581964cda079
The file was modified_testenv/data/podman/Dockerfile
Commit cd111b3951f5362a8ad09e5978784f9d4ae3d441 by Oliver Smith
testenv: podman: add missing tree command

The tree command is used by the testenv scripts when building QEMU
initrds to quickly show the contents of the initrd before packing it.

Fix for:
  + tree -a /tmp/testenv-ggsn_tests-osmo_ggsn_v4_only-20250509-1151-745e3562-dxt_lu1f/ggsn/_initrd
  osmo-ggsn/run.sh: 140: tree: not found

That the build initramfs logic did not abort here is another bug that
gets fixed in a follow-up patch in this series.

Change-Id: I75fcd210db9e5c9364cb98ee09ebf754790aa55f
The file was modified_testenv/data/podman/Dockerfile
Commit a1c1394e673ea4ae83a37f1bb1902059765d8972 by Oliver Smith
testenv: qemu: fix adding kernel modules

Without this patch qemu_initrd_add_file fails to add kernel modules
with "No such file or directory" when running in podman, even though the
files exist:

  ./testenv.py run ggsn -Dp -c osmo_ggsn_v4_only
  …
  + cp -a --parents /lib/modules/6.1.0-34-amd64/kernel/drivers/net/net_failover.ko /tmp/testenv-ggsn_tests-osmo_ggsn_v4_only-20250509-1146-cd82caba-wegi5i98/ggsn/_initrd/usr
  cp: 'lib/modules/6.1.0-34-amd64/kernel/drivers/net': No such file or directory
  …

When looking at it with strace it became clear that this comes from a
getxattr that fails in the podman filesystem and returns a misleading
error:

  getxattr("lib/modules/6.1.0-34-amd64/kernel/drivers/net", "system.posix_acl_access", 0x7ffc012054e0, 132) = -1 ENOENT (No such file or directory)

Fix it by modifying the cp command to not try to preserve any attributes
(they don't matter in the initramfs).

Change-Id: Ic32318da169ee8ebf867937782be5cf8a15f9f2f
The file was modified_testenv/data/scripts/qemu/qemu_functions.sh
Commit 1555973888309197222fe06e5ce208e51579f1e1 by Oliver Smith
testenv: fix not aborting on build_initrd error

Without this patch the build_initrd function keeps going on errors:

  + cp -a --parents /lib/modules/6.1.0-34-amd64/kernel/drivers/net/net_failover.ko /tmp/testenv-ggsn_tests-osmo_ggsn_v4_only-20250509-1040-a21668df-euc9e2fs/ggsn/_initrd/usr
  cp: 'lib/modules/6.1.0-34-amd64/kernel/drivers/net': No such file or directory
  + cp -a --parents /lib/modules/6.1.0-34-amd64/kernel/drivers/net/virtio_net.ko /tmp/testenv-ggsn_tests-osmo_ggsn_v4_only-20250509-1040-a21668df-euc9e2fs/ggsn/_initrd/usr
  …

The reason for that is that even though the script runs with set -e, the
-e flag gets ignored between if…then where the build_initrd shell
function gets called:

  if ! build_initrd >build_initrd.log 2>&1; then
  qemu_initrd_exit_error "build_initrd.log"
  fi

Fix it by using a trap instead.

Related: https://unix.stackexchange.com/a/65564
Change-Id: I2870b7e7ba28b2afc72e86b7a3bc389103564c80
The file was modifiedggsn_tests/osmo-ggsn/run.sh
The file was modified_testenv/data/scripts/qemu/qemu_functions.sh
Commit 93d36bcd48e5e7b646f4f964de536f0499670dad by Oliver Smith
testenv: qemu: initrd build fail: stop immediately

Let qemu_wait.sh fail immediately when building the initrd has failed,
instead of waiting until it runs into a timeout.

Change-Id: I6de4d1c31385af52ee0fd55378adb10a9e2c2154
The file was modified_testenv/data/scripts/qemu/qemu_functions.sh
The file was modified_testenv/data/scripts/qemu/qemu_wait.sh
Commit 73287f8c0b45f60a2de21482a30ed9d312c37121 by Oliver Smith
testenv: qemu: add modules.alias

Fix loading the sctp module, which is needed to run osmo-epdg in QEMU:
  modprobe: can't load module libcrc32c (kernel/lib/libcrc32c.ko): unknown symbol in module, or unknown parameter

Change-Id: I475176734b994e7abda63badda0983ab6534b682
The file was modified_testenv/data/scripts/qemu/qemu_functions.sh
Commit 9ccb5118853bbdcd46429ac10f5e1b8b093d1897 by Oliver Smith
testenv: support qemu=required in testenv.cfg

Make it possible to set qemu=required in addition to the existing
possibility of qemu=optional in the testenv configs and verify that
either the debian kernel (from the podman container) or a custom kernel
gets used for such configs.

This is in preparation for adding a testenv config for osmo-epdg, which
uses kernel-gtp and unlike osmo-ggsn doesn't have userspace fallback
code. With testenv using the hosts gtp kernel device for this is not
supported (it would have several downsides anyway, such as not being in
control what exact kernel version is used leading to different test
outcomes for different users, not being easily able to compare different
kernel versions, having a harder time getting debug logs from the module
etc.).

Change-Id: If4abdf1f9248fee0915603a9b3c6e3e5e5083057
The file was modified_testenv/README.md
The file was modified_testenv/testenv/testenv_cfg.py
Commit b273a1d02aa6a02a65b45f5761363bc14823b771 by Oliver Smith
testenv: qemu_initrd_add_bin: support adding so

Erlang has its own library loading mechanism, so we need to explicitly
add the depending libraries to the initramfs instead of just pointing at
binaries.

Change-Id: I1b9f06e7bff22b9260fbe0bd765177a25e97b557
The file was modified_testenv/data/scripts/qemu/qemu_functions.sh
Commit 317d4e52883375036e040eb4451a4c4d9d0a714e by Oliver Smith
testenv: cfg: check for multiple spaces in lists

Pau ran into an unexpected bug while having entries in copy= separated
by multiple spaces ("copy=osmo-stp.cfg  osmo-stp-m3ua.confmerge"):

  [testenv][m3ua] + ['cp', '-a', 'osmo-stp.cfg', '', 'osmo-stp-m3ua.confmerge', '/tmp/testenv-stp-m3ua-20250516-1349-e4103924-bfvi_syt/stp']
  cp: cannot stat '': No such file or directory

Catch this early and print a more useful error:

  [testenv] /home/user/code/osmo-dev/src/osmo-ttcn3-hacks/stp/testenv.cfg: copy= in section [stp] has multiple spaces:
  [testenv]   "osmo-stp.cfg  osmo-stp-m3ua.confmerge"
  [testenv] Please separate elements with only one space.

Change-Id: Ie47cf5482ba479457a662759ce87611a7c41e29c
The file was modified_testenv/testenv/testenv_cfg.py
Commit 229633a11fd3cfeb8ffcdb29f3915b5615390676 by Pau Espin Pedrol
stp: Rename STP_Tests.ttcn -> STP_Tests_IPA_M3UA.ttcn

The previous name usually causes confusion since it seems to indicate
either:
* Some sort of common placeholder for STP_Tests_IPA and STP_Tests_M3UA
  (it's not the case, we already have STP_Tests_Common.ttcn for that)
* A placeholder for tests not IPA or M3UA related (it's not the case,
  since it only contains IPA<->M3UA tests).

Hence, rename it to denote better the aim of that file, ie. testing
forwarding between IPA and M3UA AS(P)s.

Change-Id: Id2963407adf11add01630c3899a062d764c8ad75
The file was modifiedstp/STP_Tests_M3UA.ttcn
The file was modifiedstp/README.md
The file was removedstp/STP_Tests.ttcn
The file was modifiedstp/STP_Tests.cfg
The file was addedstp/STP_Tests_IPA_M3UA.ttcn
The file was modifiedstp/expected-results.xml
The file was modifiedstp/STP_Tests_IPA.ttcn
The file was modifiedstp/STP_Tests_Common.ttcn
Commit 07ea85b00364fbf4245c8768ac6389ca5a4b0e02 by Pau Espin Pedrol
stp: STP_Tests_IPA: Support configuring less than 8 AS(P)s

This is a preparation patch towards splitting testsuite into smaller
configurations.

Change-Id: I820d295cd22fe824abf0f60bf6f1f0f3fd069d85
The file was modifiedstp/STP_Tests_IPA.ttcn
Commit c9165d53c1d5f9d5a523e1fe94079162d21ff023 by Oliver Smith
epdg: add sleep to f_TC_hss_initiated_deregister_permanent_termination

The test sends PERMANENT_TERMINATION twice to osmo-epdg. If we don't
sleep between them, osmo-epdg is not able to terminate related FSMs
quickly enough between the first and the second termination request when
running in QEMU, which results in osmo-epdg answering with
DIAMETER_SUCESS instead of DIAMETER_ERROR_USER_UNKNOWN for the second
f_DIA_SWx_RT.

Related: OS#6796
Change-Id: I5d7021b6a9800cf1d7588f4a0ef864f5c30cf475
The file was modifiedepdg/EPDG_Tests.ttcn
Commit 92ba23b5dcf9f9c971961bb1a465c99c65fe4361 by Oliver Smith
epdg: TC_concurrent_ues_MTC: rx CMD_ATTACHED without from vc_conn_list[i]

This is needed to make the test pass in QEMU. I think this makes it
accept the COORD_CMD_ATTACHED in any order instead of the order the
COORD_CMD_START were sent beforehand.

Increasing the sleep between the COORD_CMD_START also makes the test
pass in QEMU, but that increases the overall test time significantly in
TC_concurrent_ues100.

Change-Id: I4c76d12273a14df562ea906e6c8ddb348d1b0eda
The file was modifiedepdg/EPDG_Tests.ttcn
Commit 3e531e9a155bf58992ec7dcdb1e494377220db55 by Oliver Smith
epdg: initial testenv.cfg

With this config, all tests are passing.

Depends: osmo-ci Ia60d5c1f5ade31e37293b40340e789f04ea86287
Change-Id: Ide2873be7830cc43e7fa09f26b2d504d0563a3c2
The file was addedepdg/testenv/wait_until_osmo_epdg_is_ready.sh
The file was addedepdg/testenv/run_qemu.sh
The file was addedepdg/testenv/run_osmo_epdg_with_dummy_ue.sh
The file was addedepdg/testenv.cfg
The file was modifiedepdg/EPDG_Tests.cfg
The file was addedepdg/osmo-epdg.config
Commit 12500cb616309309c7b6d1ada8d72f0746312afe by Oliver Smith
testenv: check eclipse-titan version

The osmocom:latest repository currently has eclipse-titan 9.0.0 and we
assume that the user has at least this version installed. Add a check to
avoid subtle unexpected errors caused by using older versions.

Related: I57eecd6e0ea9e488a2110b029ddc313bd05cd1fa
Change-Id: Icace325f492ce803d6f25a30b128ee0676e16727
The file was modified_testenv/testenv/requirements.py
Commit ab4904cd1323dc45f110c01470a45430f61398df by Pau Espin Pedrol
stp: Initial split into several testenv config

As a first step, split the generic config into 3 configs, one per
module.

The idea is to have a different config for a given set of related tests
running on a specific network topology/setup.

This helps in simplifying the test conditions, which allows easily
adding new topologies to test, validate specific scenarios or debug
existing ones.

For instance, to test Combined linkset loadsharing, we'll need to set up
some sort of scenario where we have at least 2 AS with each at least 1
ASP.

Change-Id: I4ec8e1bbc8e71d8bd421dfbd5356bf1937ce2bb4
The file was modifiedstp/STP_Tests_M3UA.ttcn
The file was addedstp/osmo-stp-ipa-m3ua.confmerge
The file was addedstp/osmo-stp-m3ua.confmerge
The file was modifiedstp/STP_Tests_IPA_M3UA.ttcn
The file was modifiedstp/osmo-stp.cfg
The file was removedstp/testenv.cfg
The file was addedstp/STP_Tests_M3UA.cfg
The file was addedstp/testenv_m3ua.cfg
The file was addedstp/STP_Tests_IPA.cfg
The file was addedstp/testenv_ipa.cfg
The file was modifiedstp/STP_Tests_IPA.ttcn
The file was addedstp/osmo-stp-ipa.confmerge
The file was addedstp/testenv_ipa-m3ua.cfg
The file was addedstp/STP_Tests_IPA_M3UA.cfg
Commit abb3cc03711da6bed0b30c82cadd7b34778d777b by Pau Espin Pedrol
stp: Split M3UA TCP tests into its own testenv config

That group of tests explicitly tests operation of m3ua-tcp AS(P)s and
interaction with m3ua(-sctp) ones.
Hence, create a new config to test those, where we keep the TCP related
configuration in osmo-stp.

Change-Id: I8123887755aa3253830b43407b4cc6b21142233c
The file was modifiedstp/expected-results.xml
The file was modifiedstp/osmo-stp-m3ua.confmerge
The file was addedstp/STP_Tests_M3UA_TCP.cfg
The file was modifiedstp/STP_Tests_M3UA.ttcn
The file was addedstp/STP_Tests_M3UA_TCP.ttcn
The file was addedstp/osmo-stp-m3ua-tcp.confmerge
The file was modifiedstp/STP_Tests_M3UA.cfg
The file was addedstp/testenv_m3ua-tcp.cfg
Commit e4a4b0f4d6f8978e92c0856947eb4cfad53ceff6 by Pau Espin Pedrol
stp: m3ua: Specify ASP names to use per test

Since we recently introduced an "asp_name" into each m3ua_config,
use that to construct a list of m3ua_configs to set up for each test.

This makes each test only set up the relevant ASPs for the test easily,
plus the big win of port offsets becoming test-specific.

That means changing the order or clients or servers in the testsuite
config, or adding new ones won't break existing tests.

Also add a new "is_server" field which allows specifying clients and
servers in whichever order we like.

Change-Id: I63ed043014ee8a9a593ed17797b621f39c746bcd
The file was modifiedstp/STP_Tests_IPA_M3UA.ttcn
The file was modifiedstp/STP_Tests_M3UA.ttcn
The file was modifiedstp/STP_Tests_M3UA_TCP.ttcn
The file was modifiedstp/STP_Tests_M3UA_TCP.cfg
The file was modifiedstp/STP_Tests_IPA_M3UA.cfg
The file was modifiedstp/STP_Tests_M3UA.cfg
Commit 4545814cd37ae44b86d19837d91fb239ef455775 by Pau Espin Pedrol
stp: ipa: Specify ASP names to use per test

Similar to what was done for M3UA ASPs in previous commit.

Change-Id: Ifce2a3964d4caf0850691515e516cee93dbe8d44
The file was modifiedstp/STP_Tests_IPA_M3UA.ttcn
The file was modifiedstp/osmo-stp-ipa.confmerge
The file was modifiedstp/STP_Tests_IPA.ttcn
The file was modifiedstp/STP_Tests_IPA.cfg
The file was modifiedstp/STP_Tests_IPA_M3UA.cfg
Commit ed16ac3b25eaaf3a5ddd36b3e607b069dadd132f by Pau Espin Pedrol
library: NGAP encoding/decoding using libfftranscode

This allows us to encode/decode 3GPP NGAP messages, as used on the
N2/NG-C interface control plane between gNB and AMF.

asn files fetched from https://forge.etsi.org/rep/int/5g-core/ngap.git
directory ttcn/LibNGAP/lib/asn1, commit
fa43d01e202379a969e991a9454d9c6c6930b5b5.

Change-Id: Ia8e29c77e09a4388c774e3d7286f96052d67fe3f
The file was addedlibrary/ngap/NGAP_IEs.asn
The file was addedlibrary/ngap/NGAP_PDU_Descriptions.asn
The file was addedlibrary/ngap/NGAP_CommonDataTypes.asn
The file was addedlibrary/ngap/NGAP_Constants.asn
The file was addedlibrary/ngap/NGAP_PDU_Contents.asn
The file was addedlibrary/ngap/NGAP_Containers.asn
The file was addedlibrary/ngap/NGAP_EncDec.cc
The file was addedlibrary/ngap/regen_makefile.sh
The file was addedlibrary/ngap/NGAP_Types.ttcn
Commit a9c4ef430c25416181fb36e37789ad50d7325b61 by Pau Espin Pedrol
library: Add NGAP_Templates.ttcn

files fetched from https://forge.etsi.org/rep/int/5g-core/ngap.git
directory ttcn/LibNGAP/lib/LibNGAP_*.ttcn, commit
fa43d01e202379a969e991a9454d9c6c6930b5b5.

Change-Id: I52aed2961329ee904de82b4fdb91e3eaca2059c9
The file was addedlibrary/ngap/NGAP_Templates.ttcn
The file was modifiedlibrary/General_Types.ttcn
The file was addedlibrary/ngap/NGAP_Pixits.ttcn
Commit 3c890acb0baafdabda1eed936d560d46cfd8a632 by Pau Espin Pedrol
ngap: NGAP_Pixits: fix modulepar without default value assigned to template

Otherwise titan errors during startup when trying to assign unbound
values to template parameters in NGAP_Templates.ttcn.

Change-Id: Ib2410457d2b25f09134509b618b079b010e6ace0
The file was modifiedlibrary/ngap/NGAP_Pixits.ttcn
Commit 5d8439122f6f8e2baa4bcb7dc7810cc410fde374 by Pau Espin Pedrol
NGAP_Templates: Fix criticality of PLMNSupportList IE in NGSetupResponse

The criticality rejected is specified in 3GPP TS 38.413 version 18.5.0
Release 18, both in the ASN.1 definition of "NGSetupResponseIEs NGAP-PROTOCOL-IES",
as well as section 9.2.6.2.
open5gs-amfd is correctly sending reject there.

Change-Id: I0e73a97201e61a41ce5b056a149e185582ed187c
The file was modifiedlibrary/ngap/NGAP_Templates.ttcn
Commit 12d3e30457340daa1c794f0b5de8de6965983fdf by Pau Espin Pedrol
NGAP_Templates: Add missing rx template for NGSetupFailure with TimeToWait optional IE

Change-Id: I241b83119e1fcf849895393ac1a1231368a85cbb
The file was modifiedlibrary/ngap/NGAP_Templates.ttcn
Commit ef9df57aeb4995c57c75bb0637a564a64d7fb929 by Pau Espin Pedrol
library: Introduce NGAP Emulation

Only initial features are working, like sending NG Setup Request +
Response.

Change-Id: I5aea8be12c54cf907e71bffe6456efb5e60eb203
The file was addedlibrary/NGAP_Emulation.ttcn
The file was addedlibrary/NGAP_CodecPort_CtrlFunct.ttcn
The file was addedlibrary/NGAP_CodecPort_CtrlFunctDef.cc
The file was addedlibrary/NGAP_Functions.ttcn
The file was addedlibrary/NGAP_CodecPort.ttcn
Commit e74f8817c7f6a0250e280765080f3fabae054339 by Pau Espin Pedrol
testenv: podman: Stick rebar3 downloaded version to 3.24.0

The previous URL now contains a newer 3.25.0 rebar3 release, which
requires minimum OTP 26, but debian12 launches with OTP 25.

"""
  This BEAM file was compiled for a later version of the runtime system than the current (Erlang/OTP 25).
  To fix this, please re-compile this module with an Erlang/OTP 25 compiler.
  (Use of opcode 182; this emulator supports only up to 180.)
"""

Change-Id: Idce3a0a9e61b1d897a6d26f6b6eb49d59b0883ad
The file was modified_testenv/data/podman/Dockerfile
Commit b3571455fd989fc477f7f99a392bd8945ec9e4bd by Pau Espin Pedrol
5gc: Introduce testsuite

Change-Id: I867433c87c6da2f0d1f299245aedf4830acbf539
The file was added5gc/open5gs/open5gs-smf.yaml
The file was added5gc/gen_links.sh
The file was added5gc/open5gs/open5gs_prepare.sh
The file was added5gc/open5gs/open5gs-nrf.yaml
The file was added5gc/create_test_subscribers.sh
The file was added5gc/mongod.conf
The file was added5gc/open5gs/open5gs-ausf.yaml
The file was added5gc/open5gs/open5gs-upf.yaml
The file was added5gc/open5gs/open5gs-pcf.yaml
The file was added5gc/open5gs/open5gs-udr.yaml
The file was added5gc/C5G_Tests.default
The file was modifiedMakefile
The file was added5gc/testenv.cfg
The file was added5gc/open5gs/open5gs-scp.yaml
The file was added5gc/open5gs/open5gs-sepp2.yaml
The file was added5gc/regen_makefile.sh
The file was added5gc/open5gs/open5gs-smf-freediameter.conf
The file was added5gc/expected-results.xml
The file was added5gc/C5G_Tests.ttcn
The file was added5gc/README.md
The file was added5gc/open5gs/open5gs-udm.yaml
The file was added5gc/open5gs/open5gs-sepp1.yaml
The file was added5gc/open5gs/open5gs-bsf.yaml
The file was added5gc/open5gs/open5gs-amf.yaml
The file was added5gc/C5G_Tests.cfg
Commit 1e4551b8f3b15131e4bc596bfd3716a9f1f7ba0f by Pau Espin Pedrol
library: Rename NAS_Templates.ttcn -> NAS_EPS_Templates.ttcn

This new naming matches existing files like NAS_EPS_Types.ttcn.
This also allows differentiating it from 5G NAS.

Change-Id: Ief9835e7c70ed2885105117613ec653a6ed4dfea
The file was modifiedmme/LTE_CryptoFunctions.ttcn
The file was removedlibrary/NAS_Templates.ttcn
The file was modifiedlibrary/S1AP_Emulation.ttcn
The file was modifiedmme/MME_Tests.ttcn
The file was modifiedmme/gen_links.sh
The file was addedlibrary/NAS_EPS_Templates.ttcn
Commit b4780d40ee653556980d181d16b90440f402d727 by Oliver Smith
testenv: add -j/--jobs parameter to run action

Allow building with less than all CPU cores. This may be desirable
because the NGAP asn1 files are huge and building with -j$(NPROC) eats
all the memory on some systems.

Suggested-by: Pau Espin Pedrol <pespin@sysmocom.de>
Change-Id: I191291cabd40e23983d29a350e587c1e11a52c0d
The file was modified_testenv/testenv/__init__.py
The file was modified_testenv/testenv/osmo_dev.py
The file was modified_testenv/testenv/testsuite.py
The file was modified_testenv/testenv/podman_install.py
Commit 143b1000572151d2a1b549d44ca3cbbb314df8f6 by Oliver Smith
testenv: add TESTENV_INSTALL_DIR

This is useful for e.g. the new 5gc testsuite.

Suggested-by: Pau Espin Pedrol <pespin@sysmocom.de>
Change-Id: I0a45e67c40a2c1d2220ef301e3e51178939f60b6
The file was modified_testenv/testenv/cmd.py
Commit 1146db60d9e2c97254e33c4ef11ab769bf14c6d0 by Oliver Smith
testenv: README: document env vars set by testenv

Change-Id: I1a43d6b71c4dbc00abd8a4347fb2b35704491591
The file was modified_testenv/testenv/cmd.py
The file was modified_testenv/README.md
Commit 24ca6ff9f2dbdb5569d338523b0c5353d4040fc8 by Pau Espin Pedrol
5gc: Initial ConnHdlr support

With this we can already send an InitialUEMessage(Registration Request)
to the 5GC and see if everything is configured properly there.

Change-Id: I094b6775198dfcbf4041c3af423baa6f5072b97d
The file was modified5gc/C5G_Tests.ttcn
The file was modifiedlibrary/NGAP_Functions.ttcn
The file was modified5gc/expected-results.xml
Commit d7b640552dddee25de26d6e03e801c5973ad9d99 by Pau Espin Pedrol
stp: ipa: Introduce tests to validate incoming TCP conn with unkown AS (ipa_unit_id)

Change-Id: If6a9f54a19f6a4d833bbf66aad5dafd7e9917f82
The file was modifiedstp/STP_Tests_IPA.ttcn
The file was modifiedstp/expected-results.xml
Commit 12cf6c92fac57348ada46991005e1730778c8622 by Oliver Smith
testenv: deduplicate make_dir

Generate the osmo-dev make dir path in one location, in testenv.cmd
which gets imported by testenv.osmo_dev instead of doing it in both.
This makes it easier to bump make_dir_version when necessary.

Change-Id: Id3cb30e1ea126daf04dac227a2bf39b746549ec9
The file was modified_testenv/testenv/cmd.py
The file was modified_testenv/testenv/osmo_dev.py
Commit 8cbe2afa357e10014103acdf6517211b8eea3ec6 by Oliver Smith
testenv: fix TESTENV_INSTALL_DIR

When osmo-dev is used (no --binary-repo arg is set), then set
TESTENV_INSTALL_DIR and --install-prefix for osmo-dev to:
  <cache dir>/osmo-ttcn3-testenv/{podman,host}/install
Old --install-prefix:
  <cache dir>/osmo-ttcn3-testenv/{podman,host}/usr
Old TESTENV_INSTALL_DIR:
  <cache dir>/osmo-ttcn3-testenv/{podman,host}

The old behavior was misleading, because:
* It resulted in configs getting installed into:
  <cache dir>/osmo-ttcn3-testenv/{podman,host}/usr/etc/...
* TESTENV_INSTALL_DIR looked like it would point at the install dir
  (because there is usr inside that directory), but it was actually
  pointing at the top dir of the install dir.

Fixes: 143b1000 ("testenv: add TESTENV_INSTALL_DIR")
Change-Id: Id94936338a6eb74dee0b3f4668cbaca309b269e4
The file was modified_testenv/testenv/cmd.py
The file was modified_testenv/testenv/osmo_dev.py
The file was modified_testenv/README.md
Commit 68979fbd794c4716437c22a2ffbb66d94934d69b by Oliver Smith
5gc: testenv: use TESTENV_INSTALL_DIR

Change-Id: I412e53d132957a877a9a0478df3ac2fe31327a6c
The file was modified5gc/open5gs/open5gs_prepare.sh
Commit e915b6e14c2e34756df41a7d33d11b6ad9cd733e by Pau Espin Pedrol
log_merge.sh: Merge all logs if no test cases are found

This can happen for instance if titan exits with an error during startup
even before starting any test.
In that scenario, titan still writes stuff to a file (eg.
C5G_Tests--efc28eab6a6d-hc-1305.log).
Let's try to make everything logged available in that case, so user can
debug what went wrong.

Change-Id: Ifc68e42022e8b2990d3c5221b3901f255e4e759b
The file was modifiedlog_merge.sh
Commit 01082e623873a09567c82f28aff437aaae3dd762 by Pau Espin Pedrol
deps: Depend on osmocom fork of forge.etsi.org nas.git

This module provides types, templates and functions to operate NG NAS
(5G).

A fork is needed because:
* Upstream code doesn't compile against eclipse titan (A PR has been
  submitted upstream and we should eventually be able to compile ttcn3
  code just fine in that regard).
* Some system/external functions need to be implemented, such as
  fx_GetSystemTime(). We currently do that in our fork.

Related: SYS#7073
Change-Id: I004fc26e5d691ee7e3be984e28f5516e2b55258c
The file was modifieddeps/Makefile
Commit 28224acd24e3a2d93babc79213422a9b412b854d by Pau Espin Pedrol
5gc: Initial support encoding NG NAS UL messages

Change-Id: Id59564114cf18ae745e3e385e2c91779a453e545
The file was modified5gc/regen_makefile.sh
The file was modified5gc/C5G_Tests.ttcn
The file was addedlibrary/NG_NAS_Functions.ttcn
The file was modified5gc/gen_links.sh
Commit 060b156b9c42050d6f41c8b5f40ef8cc849912d6 by Pau Espin Pedrol
library/ngap: Fix wrong id set on PWSFailureIndication templates

Change-Id: Ied1c7a5914c6cbacf64ba857aa31c12ca6f001fb
The file was modifiedlibrary/ngap/NGAP_Templates.ttcn
Commit caa43cefe1801f4be03713d20faf62570a9fef04 by Pau Espin Pedrol
library/ngap: Fix criticality of several NGAP messages

As defined in ASN.1 in 3GPP TS 38.413 section 9.4.3.

Change-Id: I2283a5b025f0ce7d7445fa0ce9ba8405156c4533
The file was modifiedlibrary/ngap/NGAP_Templates.ttcn
Commit d100e4b6470b14fbb66c409eaf00a09506c2c475 by laforge
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
The file was modifiedbts/BTS_Tests.ttcn
Commit 0ae8624fd8bbfdfb1cce159ebac587fff1957bd7 by laforge
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
The file was modifiedbsc/BSC_Tests.ttcn
Commit 1197bdf6b7b9880812d6bbcf5a8b8db32179ba47 by Oliver Smith
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
The file was modified_testenv/testenv/testsuite.py
Commit 6a185b88e35599030fbeb316b801c0f7afcbaab8 by Pau Espin Pedrol
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
The file was modifieddeps/Makefile
The file was modified5gc/create_test_subscribers.sh
The file was modified5gc/gen_links.sh
The file was modifiedlibrary/NGAP_Emulation.ttcn
The file was modifiedlibrary/NGAP_Functions.ttcn
The file was addedlibrary/NG_NAS_Osmo_Templates.ttcn
The file was modifiedlibrary/Osmocom_Types.ttcn
The file was modified5gc/C5G_Tests.ttcn
Commit 4e2919d7793781b9f5ae67d5ad32da57c3eff1a6 by Pau Espin Pedrol
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
The file was modifiedlibrary/NG_NAS_Osmo_Templates.ttcn
The file was modified5gc/C5G_Tests.ttcn
The file was modifiedlibrary/NGAP_Functions.ttcn
The file was modifiedlibrary/NGAP_Emulation.ttcn
Commit 769f6e6e2cd4c2e0a02ddf2f9c81a59c5a60a0c3 by Pau Espin Pedrol
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
The file was modified_testenv/data/podman/Dockerfile
Commit 076493241d7e5ef0c4c41b50532d3955651a40cc by Pau Espin Pedrol
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
The file was modified5gc/testenv.cfg
The file was modified5gc/open5gs/open5gs-upf.yaml
The file was added5gc/open5gs/testenv.sh
Commit 8082d099e3f96da3dfe4348b0e1bd794d93b8b02 by Oliver Smith
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
The file was modified_testenv/data/podman/Dockerfile