Table of Contents:
Apertis runs both automated and manual tests on their images to ensure the quality. The manual tests are used when it is very difficult to implement an automated tests due to the interactions needed and the nature of the checks. Examples can be testing video or sound output, or interaction with mobiles.
To help QA this guides provides reference to adjust configuration used in several according to the setup.
Flatpak tests
While testing flatpak it is required to add repositories or install/uninstall applications. It is
important to note that this activities can be done in the user context (--user
) or system context,
but for the last one admin privileges are required.
Add Flathub repo:
flatpak remote-add --user --no-sign-verify --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Add Apertis Flatpak repo:
flatpak remote-add --user apertis https://images.apertis.org/flatpak/repo/apertis.flatpakrepo
Install an application:
flatpak install --user apertis org.apertis.hmi.totem
Video setup
Some boards like iMX6 Sabrelite have several video output available, in which case can convenient to change the default one.
As an example, if the board has LVDS and HDMI output and to make sure the HDMI output is used by the compositor:
$ cat /etc/xdg/weston/agl-compositor.ini
[shell-client]
command=/usr/bin/maynard
[core]
require-input=false
[output]
name=LVDS-1
mode=off
Audio setup
Boards usually come with different audio outputs. In order to configure the desired one, first list the ones available. For the examples bellow, the iMX6 Sabrelite has been used.
$ pactl list short sinks
41 control.endpoint.phone PipeWire float32le 2ch 48000Hz SUSPENDED
42 control.endpoint.new_email PipeWire float32le 2ch 48000Hz SUSPENDED
43 control.endpoint.gps PipeWire float32le 2ch 48000Hz SUSPENDED
44 control.endpoint.traffic_info PipeWire float32le 2ch 48000Hz SUSPENDED
45 control.endpoint.ringtone PipeWire float32le 2ch 48000Hz SUSPENDED
46 control.endpoint.multimedia PipeWire float32le 2ch 48000Hz SUSPENDED
74 alsa_output.platform-120000.hdmi.stereo-fallback PipeWire s24-32le 2ch 48000Hz SUSPENDED
75 alsa_output.platform-sound.stereo-fallback PipeWire s16le 2ch 48000Hz SUSPENDED
After that you it is possible to set the default sink and port by:
$ pactl set-default-sink alsa_output.platform-sound.stereo-fallback
$ pactl set-sink-port alsa_output.platform-sound.stereo-fallback analog-output-headphones
Also, make sure the sink is unmute:
$ pactl set-sink-mute alsa_output.platform-sound.stereo-fallback false
In a similar way, it is possible to set the HDMI as default sink:
$ pactl set-default-sink alsa_output.platform-120000.hdmi.stereo-fallback
U-boot
One tricky component to test is u-boot, as it cannot be easily tested in LAVA, as it is tight to the LAVA lab setup. For this reason, when upgrading u-boot a strict manual test is required to ensure the the functionality it provides works as expected.
U-boot is responsible for the early boot process and preparing the environment to load Linux kernel. Also in the OSTree context, it is responsible of checking the bootcount and provide the rollback functionality if the bootcount is exceeded.
To properly test u-boot the following steps should be covered:
- Test APT image on all reference boards to ensure Linux can be booted
- Test OSTree image on all reference boards, to ensure Linux can be booted
- Test OSTree image rollback on all reference boards, to ensure Linux can be rolled back
The basic test on both APT and OStree image is to make sure that the system boots without issues by following the steps in Sanity Test.
Testing the OSTree rollback mechanism is a bit more complex. It requires to test two aspects:
- Bootcount increment
- Rollback on bootcount limit exceeded
The easiest way to test this is to use the testcase AUM Rollback Bootcount which covers a rollback scenario.