Add CRAM tests for tr181-gre, including an end-to-end tunnel test: the
remote peer lives in a network namespace behind a veth pair emulating
the WAN link, so the test is self-contained and is not tied to a
specific board. The end-to-end test drives the tunnel
through the data model (GRE.Tunnel + Interface + IP.Interface), verifies
the kernel route, reply behaviour with and without a peer return route,
the UseSequenceNumber/UseChecksum toggles and runs a short iperf3 session
through the tunnel.
References: PCF-2294, FEAT-150
Signed-off-by: Khaled Hasni <khaled.hasni_ext@softathome.com>
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
Cram supplies each generated test script to the shell through standard
input. The shared SSH command inherits that input and consumes the
remaining script, leaving the shell at EOF inside a quoted command.
Commit 5fd42aa540 ("ci: cram: use legacy SCP protocol for remote
copies") rewrote CRAM_REMOTE_COMMAND while adding legacy SCP support and
dropped the -n option added for PCF-2222. Job 15640024463 then failed
130-periodicfileupload.t with:
/bin/sh: 152: Syntax error: Unterminated quoted string (no-eol)
Job 15640024462 leaked this salt marker in the same test:
CRAM1 (no-eol)
Restore -n so SSH reads from /dev/null instead of the generated test
script.
Assisted-by: codex:gpt-5.6-sol
Assisted-by: claude:opus-5:1m-context
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Fixes: 5fd42aa540 ("ci: cram: use legacy SCP protocol for remote copies")
References: PCF-2222
Quote expanded command substitutions in remote logger commands
to ensure the expanded value is passed as a single literal
argument and prevent remote shell interpretation of special
characters.
Closes: PPW-1315
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
Currently, the 036-lcm-usp-restrictions test fails during the
TrustedProvider model validation; this happened because
TrustedProvider required some time (up to 5 seconds) to register its model:
da53b18a65/src/main.c (L159)
New version of TrustedProvider service registers data model over ODL and
amxrt mechanism and does not contain the registration timeouts.
Fixes: PPW-2037
References: FEAT-28, FEAT-120
Signed-off-by: Mykola Hlukhenkyi <m.hlukhenkyi@inango-systems.com>
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
Debian 13 ships pyOpenSSL without the deprecated X509Req API used by
servefile certificate generation.
Generate a short-lived certificate with openssl and pass it to both
HTTPS server instances.
Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
The Debian 13 testbed image runs cram as an unprivileged user, so its
ping process cannot open a raw socket with the executor capabilities.
Use the existing passwordless sudo setup for the host-side probe.
GitLab runner hostnames are not present in the container hosts file,
so sudo also emits a lookup warning before the asserted ping result.
Discard stderr while retaining the ping and grep exit behavior.
Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
The separately released testbed image can update MiniDLNA without
changing the behavior under test. Matching one package version makes
the DUT discovery test fail whenever that host-side fixture changes.
Keep the server description fields exact, but match the MiniDLNA
version with a cram glob. This verifies that the DUT discovers the
fixture without coupling the expectation to a Debian package version.
Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
OpenSSH in the Debian 13 testbed container uses SFTP for scp transfers
by default, while the DUT images do not provide an SFTP server.
Force the legacy SCP protocol in the shared cram copy command, the
security certificate fixture, and the remaining direct scp calls so
every test can stage its helper files and packages.
Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Fixes: 854ef0eafb ("ci: cram: add new LCM tests")
References: PPW-1258
The shared testbed setup installs MiniDLNA, Avahi, and dbus before
every cram and CDRouter job. This adds network and package mirror
dependencies to hardware tests and allows the runtime environment to
drift independently of the selected image.
The separately released testbed image now carries these packages,
together with the Python dependencies used by cram. Remove the runtime
apt update and install command so jobs consume only the image contents.
Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Fixes: 6792ba6b95 ("PROVISORY: ci: testbed: install minidlna and avahi packages at runtime")
References: PPW-1258
The testbed setup rewrites the Debian mirror to archive.debian.org
before installing runtime cram dependencies. This was needed for the
old Buster container, but Debian 13 uses current mirrors and stores its
configuration in deb822 files instead of /etc/apt/sources.list.
Both focused cram jobs stop at the first rewrite before DUT bring-up:
```text
$ sudo sed -i 's|http://deb.debian.org/debian|http://archive.debian.org/debian|g' /etc/apt/sources.list 2>/dev/null
Running after_script
```
Remove both obsolete rewrites and let apt use the sources supplied by
the versioned Debian 13 testbed image.
Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Fixes: 6792ba6b95 ("PROVISORY: ci: testbed: install minidlna and avahi packages at runtime")
References: PPW-1258
Debian 13 marks its system Python environment as externally managed,
so cram-time pip installs fail before the tests can exercise the DUT.
Python 3.13 also removed cgi, which the preinstalled servefile 0.5.4
still imports.
Use async-upnp-client, servefile, scapy, and legacy cgi from the
testbed image. Remove the per-test pip calls and PATH overrides, and
document that scapy is an image dependency. Preserve the newer
CABundle fixture setup from the source change.
The later 018-dhcpv4-client-options.t test reintroduced the same pip
call, so give it the same treatment.
Assisted-by: codex:gpt-5
Assisted-by: claude:opus-5:orchestrator
Assisted-by: codex:gpt-5.6-sol:medium-fast
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
ntpsec-ntpdate 1.2.3 reports successful queries as a timestamp
followed by numeric offset and uncertainty values instead of the
former textual offset wording.
Match the numeric ntpsec query format so the time test accepts the
output provided by the Debian 13 testbed image.
Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
The testbed container now has its own prpl Foundation project, release
pipeline, and versioned registry image. Keeping the old Debian Buster
image in prplos leaves two sources for the same CI runtime and continues
to expose obsolete build, test, and deploy jobs.
Remove the in-tree Dockerfile and its CI job definitions. Drop the root
include because the testbed and CDRouter templates now consume the
external containers/testbed release directly.
Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
The testbed and CDRouter templates currently derive their image from the
designated prplos branch. This couples image changes to an in-tree build
and prevents consumers from using the separately released container.
Use the released ci/containers/testbed v1.3.0 image in both templates,
pinning it to its published immutable manifest digest. This keeps cram
and CDRouter on the same Debian 13 environment with the runtime test
dependencies preinstalled, while every pipeline pulls the exact released
content.
The previous image declared /home/testbed as a volume. GitLab's Docker
executor replaced it with an empty, root-owned, persistent runner cache
that shadowed the writable home created in the image. OpenSSH resolves
~/.ssh through the passwd database instead of $HOME, so redirecting HOME
could not make bare ssh read the host key written by ssh-keyscan.
The v1.3.0 image drops that volume. Remove the ineffective HOME
overrides while retaining the .ssh directory setup that ssh-keyscan
needs.
Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PPW-1258
Cram tests conventionally define R directly from CRAM_REMOTE_COMMAND.
Commit 43f1696033 ("ci: cram: periodicfileupload tests sometimes fails
(PPW-1766)") introduced a sed pipeline for this test.
The substitution only matches ssh when it has a leading space, while
CRAM_REMOTE_COMMAND begins with ssh. The pipeline is therefore a silent
no-op.
Keeping a per-test rewrite would duplicate the stdin handling. The
preceding "ci: cram: keep remote commands off the script stdin" puts
ssh -n into CRAM_REMOTE_COMMAND at its source for every test.
Restore the canonical alias so this test follows the suite convention
and relies on the centralized remote command definition.
References: PCF-2222, PPW-1766
Assisted-by: claude:opus-5:orchestrator
Assisted-by: codex:gpt-5.6-sol:medium-fast
Fixes: 43f1696033 ("ci: cram: periodicfileupload tests sometimes fails (PPW-1766)")
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
Cram supplies the complete generated test script through the shell's
stdin. SSH inherits that input from the shared remote-command alias and
drains the script beyond the shell's read-ahead buffer. The shell then
reaches EOF in the middle of a quoted command near byte 8,192:
```text
/bin/sh: 74: Syntax error: Unterminated quoted string
```
This is independent of the Python interpreter. Freedom job 15484314070
failed the 49-command probe at chunk 0036 under Python 3.14.6. With the
same probe and firmware, job 15484856804 passed all 49 chunks under
Python 3.13 after adding the SSH stdin protection.
Pass -n to the shared SSH command so it reads from /dev/null instead of
the test script. Apply the same safe default to the MXL fallback alias.
Assisted-by: codex:gpt-5
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
References: PCF-2222
Problem:
reboot TimeStamp precision has changed: unnecessary fraction of seconds have been removed
This simplification change has been introduced in PPW-1605 in the reboot-service when
the reboot timestamp is now set to unknow when the HGW isn't NTP synced.
Solution:
change the cram test timestamp check
Reference: PPW-1605
Signed-off-by: Florian Rouzaud <florian.rouzaud@softathome.com>
As part of PCF-2632, when no default Trusted Element is available,
the TrustedElement.SIM data model is now populated using the active
IMSI obtained from the modem.
Since a prepopulated Trusted SIM is now available, removed the
creation of a new Trusted Element during validation. This prevents
duplicate entries and resolves the cram test failure.
Updated 018-cellular-trusted-elements.t to validate Trusted SIM
based on the prepopulated active IMSI.
References: PCF-2632
Signed-off-by: Sathishkumar Selvam <sathishkumar.selvam@capgemini.com>
Integrates following changes:
- Issue: PPW-500 [CWMP] ACS did not receive Inform from CPE on original ACS server after 302 redirect. (0877f0b5)
References: PPW-500
Signed-off-by: prplbot <bot@prplfoundation.org>
Integrates:
- Moved odl with required AP defauilts directly to pwhm's defaults
- Moved odl with required Mesh ManagementMode directly to prplmesh-process-manager's defaults
Closes: PPW-991, PPW-992
Signed-off-by: avatara.kuznetsov <a.kuznetsov@inango-systems.com>
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
- Added runtime environment string about in which CPE_OPMODE firmware been built by default
- Modified odl-generator to add this string to netlayout.json so it can be used in .uc files
- Moved extender-related odls to their respective packages and modified them to use new flag in netlayout.json so they be processed when required
Closes: PPW-991, PPW-992
Signed-off-by: a.kuznetsov <a.kuznetsov@inango-systems.com>
Signed-off-by: FAOUZI YAHYA <faouzi.yahya_ext@softathome.com>
Add two dhcpv4 client tests. first one check if option provided by a
client is correctly provided in the DHCPv4.Server DM. Second one check
that if multiple client provide the same option with different value,
the value are not mixed up.
References: PCF-2262
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
Cram tests emit .t.err files on failure; ignore them so they don't
accumulate as untracked noise.
References: PCF-2262
Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com>
Remove the `$` symbol from the random sets from which password is generated because it breaks ODL expansion.
Closes: PPW-2035
References: FEAT-28
Signed-off-by: Artem Trokhymchuk <a.trokhymchuk@inango-systems.com>
In 05a30b1404 we removed "# CONFIG_VERSION_CODE_FILENAMES is not set" from the cram tests after aligning with openwrt 24.10.5.
However, this was forgotten for the freedom and valyrian board.
References: PPW-2167
Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
Adding cram testcase to subscribe to ubus events for the
notify flow created and verify no other unexpected events
listed in ubus notifications subscribed for enumerate
connection tracking object.
References: PPW-1201
Signed-off-by: Hari Sriram <hari.s@capgemini.com>
Align the Easymesh R1 smoke test with the DUT flashing procedure from FEAT-29.
This commit aligns the DUT deploy scripts from the prplMesh repository.
Reference: PPM-4139
Signed-off-by: Maarten De Decker <maarten.dedecker@mind.be>