Problem: 017-dhcpv4-force-option.t intermittently fails with a bare [2] on the two probes that follow the Force=0 write, while the Force=1 probe just before them passes. Writing a Device.DHCPv4.Server. parameter makes dhcpv4-manager rewrite the dnsmasq configuration and restart dnsmasq. The test only waited one second afterwards and dhcpv4_option_probe.py sent its DHCPDISCOVER exactly once, so a request issued during that restart window was lost and the probe gave up after the timeout instead of reporting the option state under test. The reason was invisible: all five probe error paths wrote to stderr, which the test discards with 2>/dev/null, so every one of them looked identical in the .t.err artifact. Solution: - retransmit an unanswered DHCPDISCOVER/DHCPREQUEST, --retries (default 2) - print the ERROR line on stdout so it stays visible in the Cram diff - release the lease on the last probe so no lease is left behind A passing run is unaffected: retransmission stops as soon as the reply arrives and nothing is written to stderr on success. References: PPW-2188 Signed-off-by: Alexandre Fiset <alexandre.fiset@softathome.com> |
||
|---|---|---|
| .. | ||
| cdrouter | ||
| certs | ||
| docker | ||
| manual_tests/cram/mxl25641-hdk-6 | ||
| mockups | ||
| scripts | ||
| testbed | ||
| tests | ||
| blackduck.yml | ||
| build.yml | ||
| cdrouter.yml | ||
| coverity.yml | ||
| docker.yml | ||
| prplmesh.yml | ||
| README.md | ||
| release.yml | ||
| sdk.yml | ||
| testbed.yml | ||
Content
This directory contains stuff used on the GitLab CI.
docker
Contains definitions for Docker images.
testbed
Contains definitions for testbed related tests.
scripts
Contains scripts used on GitLab CI.
tests
Contains tests used on GitLab CI.
build.yml
Contains definition of the GitLab CI build test job templates used during build stage. Those templates can then be extended by other GitLab CI jobs in order to keep things DRY.
.build test config
Allows build testing of specific configurations defined in the profiles directory, using scripts/gen_config.py under the hood.
Example usage:
include:
- local: .gitlab/build.yml
stages:
- build
build test netgear-rax40 prpl:
extends: .build test config
Which is going to build test prplOS with netgear-rax40 and prpl profiles.
Description of CI variables:
- CI_BUILD_CONFIG_EXTRA - list of additional config options which should be enabled(prefixed with
+) or disabled (prefixed with-), for example+BUILD_LOG -SDKwould result inCONFIG_BUILD_LOG=yandCONFIG_SDK=yconfig symbols in.configfile.
docker.yml
Provides support for building, tagging and pushing the Docker images to image registry.
For example let's build image foo.
Prerequisites:
- Create directory for new Docker image
mkdir -p .gitlab/docker/foo - Docker image description
$EDITOR .gitlab/docker/foo/Dockefile
Then just put following into .gitlab/docker/foo/gitlab.yml
build Docker image foo:
extends: .build Docker image
testbed.yml
Provides bits needed for runtime testing on real device using labgrid Python testing framework.
Supported devices:
- Netgear RAX40
sdk.yml
Provides support for the OpenWrt SDK utilizing the Docker SDK container under the hood.
.build feed with SDK
Allows compile testing of packages using the SDK.
Example usage, build testing of safec3 package from Intel's feed_opensource_apps feed.
include:
- remote: https://gitlab.com/prpl-foundation/prplOS/prplos/-/raw/prplos/.gitlab/sdk.yml
build:
extends: .build feed with SDK
variables:
CI_SDK_INSTALL_FEEDS: feed_target_mips
CI_SDK_BUILD_PACKAGES: safec3
Description of CI variables:
- CI_SDK_INSTALL_FEEDS - list of feeds which should be installed prior to building packages.
- CI_SDK_BUILD_PACKAGES - list of packages which should be compile tested.
- CI_SDK_BUILD_PARALLEL - max number of threads to use for make (defaults to
nprocif unset).
.generate SDK package build jobs
Generates sdk-package-jobs.yml with separate build jobs for every package so the builds of those packages
can run in parallel. It's supposed to be executed by the child pipeline .execute SDK package build jobs.
.execute SDK package build jobs
It's supposed to execute jobs generated in sdk-package-jobs.yml generated by .generate SDK package build jobs job.