Skip to content

config: rework all coverage-enabled jobs #1244

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

a-wai
Copy link
Contributor

@a-wai a-wai commented Jul 9, 2025

Our only planned user for code coverage analysis is the ChromeOS kernel team, so this PR fully reworks the coverage-enabled builds and test jobs.

To sum things up, the current, generic x86 kernel build is replaced by 4 distinct builds:

  • 2 for Intel & AMD ChromeBooks (x86)
  • 2 for Qualcomm & Mediatek ChromeBooks (arm64)

Those builds use the following config fragments on top of the usual ones:

  • coverage for enabling GCOV support in the kernel
  • kselftest so we can run the corresponding tests on those kernels
  • crypto so those kernels can also execute the ltp-crypto job

All LTP & kselftest jobs currently executed on the ChromeOS kernel are now also scheduled for those new builds, replacing the previous LTP scheduler entries (those were using the generic x86 build which is phased out in this PR).

@a-wai a-wai requested review from nuclearcat and laura-nao July 9, 2025 15:44
@a-wai
Copy link
Contributor Author

a-wai commented Jul 9, 2025

Created as draft for now as it requires more testing

@a-wai a-wai force-pushed the rework-coverage-jobs branch 2 times, most recently from 8ea7e4d to d3c0454 Compare July 10, 2025 07:34
a-wai added 4 commits July 10, 2025 12:09
Those jobs were useful as a first step towards enabling code coverage,
however reflecting more on this use-case, we came to the conclusion that
our only target so far is the ChromeOS kernel. We should therefore get
rid of the current jobs and add more relevant ones as a follow-up.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
In order to provide meaningful code coverage results for the ChromeOS
kernel tree, we should create new builds with all the relevant fragments
so we can run various tests on those.

Those builds are created for each SoC vendor and will only be triggered
for the `chromiumos` tree. They include the `coverage` fragment of
course, but also `kselftest` and `crypto` allowing both `kselftest` and
LTP jobs (including `ltp-crypto`) to be triggered by those builds.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
This requires changing the LTP jobs' definition to allow running on
kernels for which the `kselftest` fragment has been enabled. AFAIK this
restriction has been ported from the legacy KernelCI config and was
likely only needed back then to avoid scheduling too many instances of
LTP jobs. It is therefore unnecessary on Maestro which allows for more
fine-grained scheduling.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
@a-wai a-wai force-pushed the rework-coverage-jobs branch from d3c0454 to 19c34c3 Compare July 10, 2025 10:09
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant