Welma test bench

Let’s take a moment to deep dive into the test bench implemented for Welma Yocto Linux.

A test bench is an environment designed to run tests (and in our case, automated tests). The concept is simple: have a set of reference equipment (our supported hardware targets) integrated into a test bank. On these targets, we automatically execute scenarios driven by our Continuous Integration (CI) pipeline.

The goal: validate Welma’s features, ensure stability, and detect regressions as soon as they appear.

Why a test bench matters for Yocto dev

How we implemented our test bench in Welma

We built our test bench using two complementary tools:

The process is simple and fully automated:

  1. Image compilation: At the end of a build, before a release, or during a merge request, the CI generates a software image.
  2. New test suite: Instructions go to the test environment.
  3. Test execution: Pluma downloads and deploys the new image on the target. It then runs the predefined test suite to validate functionalities.
  4. Result visualization: Results are displayed in GitLab dashboards, thanks to JUnit report format support in Pluma & Gitlab.

Each hardware target we want to test is paired with a companion Raspberry Pi. This Raspberry Pi hosts the GitLab Runner and Pluma, enabling smart test distribution. Each runner is configured with a specific GitLab tag that identifies the connected board or device. This way, the CI knows exactly which test suite trigger to which runner.

Once the image is deployed, Pluma executes a set of tests covering Welma’s key features. This test suite is included with the distribution but is fully extensible: you can add your own scenarios, whether low-level tests (custom drivers, serial or network interfaces, sensors, …) or application-level tests simulating user interactions.

The test bench infrastructure includes Ethernet and serial connectivity, as well as a programmable power supply to reboot targets on demand. Wi-Fi connectivity is also supported by Pluma.

Test bench CICD

The test bench is essential to guarantee the quality of any Yocto-based product.
In an environment where kernel, OS, and applications coexist, automation is the key to reducing risks and delivering with confidence. Within Welma offering, the test bench is a central element of our delivery process.