Skip to content

Add certification test plans for Ubuntu 26 (New)#2304

Open
stanley31huang wants to merge 5 commits intomainfrom
add_ubuntu26_tp
Open

Add certification test plans for Ubuntu 26 (New)#2304
stanley31huang wants to merge 5 commits intomainfrom
add_ubuntu26_tp

Conversation

@stanley31huang
Copy link
Collaborator

@stanley31huang stanley31huang commented Jan 26, 2026

WARNING: This modifies com.canonical.certification::sru-server

Description

This goal for this PR is create certification test plans for PC platform, IoT platform running server image and desktop image.

there are some key points for those changes in this PR:

  • We are developing component-level test plans to manage the scope for Ubuntu 26 more effectively. This also allows us to run targeted, minimal tests on different SKUs sharing the same platform.
  • We are leveraging the same test scope for both PC and IoT Desktop images. We are attempting to mirror this coverage on IoT Server images, but currently, several test cases are not applicable or available for that specific environment.

Resolved issues

Documentation

Tests

clairlin53 and others added 3 commits January 26, 2026 14:09
- adding ARM vfp tests into generic cpu-cert-automated test plan
- create a new media card test plan as some interfaces are no longer avaialable in recent IoT platform
adding IoT cert test plan for server/desktop image
@codecov
Copy link

codecov bot commented Jan 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 55.01%. Comparing base (38b29e2) to head (ad07a14).
⚠️ Report is 12 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2304      +/-   ##
==========================================
+ Coverage   54.88%   55.01%   +0.13%     
==========================================
  Files         412      413       +1     
  Lines       44246    44393     +147     
  Branches     8154     8183      +29     
==========================================
+ Hits        24284    24423     +139     
+ Misses      19132    19131       -1     
- Partials      830      839       +9     
Flag Coverage Δ
checkbox-ng 71.63% <ø> (ø)
checkbox-support 69.55% <ø> (ø)
provider-base 32.26% <ø> (+0.54%) ⬆️
provider-certification-client 57.14% <ø> (ø)
provider-certification-server 57.14% <ø> (ø)
provider-genio 96.90% <ø> (ø)
provider-gpgpu 93.14% <ø> (ø)
provider-iiotg 100.00% <ø> (ø)
provider-resource 39.57% <ø> (ø)
provider-sru 97.97% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

fix test plan check issue
Copy link
Collaborator

@Hook25 Hook25 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pure grammar/consistency pass for now

  1. I think you forgot to commit these:
unable to find nested part: com.canonical.certification::after-suspend-camera-automated
unable to find nested part: com.canonical.certification::after-suspend-fingerprint-cert-Automated
  1. Why are we still using regex inclusions? do we have any "blocker" to using only template ids?
  2. Why are there quite a few "empty" testplans around?
  3. Why is the list of exclusions so long on many even though the testplans are new?
  4. I have prepared a diff from the previous coverage. Please give it a look and see if all changes make sense, some are stautus changes (non-blocker -> blocker), some seem like addition or removals. Do comment on them.

Caveat, these dont include regex inclusions, as they arent supported by expand. If you want to play around with them use this

function diff_tp(){
  tp1=$1
  tp2=$2
  expand_tp1=$(checkbox-cli expand --format=json $tp1 | jq -r '.[] | (.["template-id"] // .id) + " "  + .["certification-status"]?' | sort)
  expand_tp2=$(checkbox-cli expand --format=json $tp2 | jq -r '.[] | (.["template-id"] // .id) + " "  + .["certification-status"]?' | sort)
  diff <(echo "$expand_tp1") <(echo "$expand_tp2")
}

Diffs: (< is 26.04, > is 24.04)

client-cert-desktop.diff.txt

client-iot-desktop.diff.txt

client-iot-server.diff.txt

Comment on lines +32 to +34
mediacard/storage-preinserted-.*
bootstrap_include:
removable_partition
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was empty before, do we intend changing it? fine by me, weird it was empty before

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a missing job under the automated part, we should add it in this test plan.

Comment on lines +19 to +20
include:

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this supposed to be empty? whats the purpose of an empty testplan?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, they are empty on purpose!
It’s a placeholder strategy for the 26.04 cycle.

If we link these Component Test Plans now (even while empty), we never have to touch the 'Big Test Plan' like IOT/Server/Desktop etc. again just to add a job. We can just update the Component Plan later, and it automatically reflects in the main plan. It saves us from having to review or might missing to add the Big Plan every single time we add a test case.

Comment on lines +23 to +24
include:

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are making this empty and shifting all under a new testplan?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The both of jobs (suspend-on-battery-power and suspend-on-AC-power) are related the suspend function test, it's more clearly to add both in the after suspend test plan.

Comment on lines +39 to 40
include:

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, they are empty on purpose!
It’s a placeholder strategy for the 26.04 cycle.

If we link these Component Test Plans now (even while empty), we never have to touch the 'Big Test Plan' like IOT/Server/Desktop etc. again just to add a job. We can just update the Component Plan later, and it automatically reflects in the main plan. It saves us from having to review or might missing to add the Big Plan every single time we add a test case.

_name: Touchpad tests after suspend (Manual)
_description:
Touchpad tests after suspend (Manual)
include:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor, whats going on with tabs here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually i has modified a lot for this, this one is lost, I will modify it

unit: test plan
_name: USB Type-C tests (Automated)
_description: USB Type-C tests (Automated)
include:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, they are empty on purpose!
It’s a placeholder strategy for the 26.04 cycle.

If we link these Component Test Plans now (even while empty), we never have to touch the 'Big Test Plan' like IOT/Server/Desktop etc. again just to add a job. We can just update the Component Plan later, and it automatically reflects in the main plan. It saves us from having to review or might missing to add the Big Plan every single time we add a test case.

@clairlin53
Copy link
Contributor

Pure grammar/consistency pass for now

  1. I think you forgot to commit these:
unable to find nested part: com.canonical.certification::after-suspend-camera-automated
unable to find nested part: com.canonical.certification::after-suspend-fingerprint-cert-Automated

Ans: I've updated, thanks for pointing out.

2. Why are we still using regex inclusions? do we have any "blocker" to using only template ids?

I just copied and pasted the original job definition. There is no blocker, but I suggest we do that cleanup in a follow-up PR.

3. Why are there quite a few "empty" testplans around?

Ans:
Yes, they are empty on purpose!
It’s a placeholder strategy for the 26.04 cycle.

If we link these Component Test Plans now (even while empty), we never have to touch the 'Big Test Plan' like IOT/Server/Desktop etc. again just to add a job. We can just update the Component Plan later, and it automatically reflects in the main plan. It saves us from having to review or might missing to add the Big Plan every single time we add a test case.

4. Why is the list of exclusions so long on many even though the testplans are new?

Ans: Need @stanley31huang or @rickwu666666 to answer the question.

5. I have prepared a diff from the previous coverage. Please give it a look and see if all changes make sense, some are stautus changes (non-blocker -> blocker), some seem like addition or removals. Do comment on them.

Ans: I've modified and updated in the google spreadsheets for reference.

Caveat, these dont include regex inclusions, as they arent supported by expand. If you want to play around with them use this

function diff_tp(){
  tp1=$1
  tp2=$2
  expand_tp1=$(checkbox-cli expand --format=json $tp1 | jq -r '.[] | (.["template-id"] // .id) + " "  + .["certification-status"]?' | sort)
  expand_tp2=$(checkbox-cli expand --format=json $tp2 | jq -r '.[] | (.["template-id"] // .id) + " "  + .["certification-status"]?' | sort)
  diff <(echo "$expand_tp1") <(echo "$expand_tp2")
}

Diffs: (< is 26.04, > is 24.04)

client-cert-desktop.diff.txt

client-iot-desktop.diff.txt

client-iot-server.diff.txt

I also renamed desktop to base per @pieqq's suggestion.

@rickwu666666
Copy link
Contributor

  1. Why is the list of exclusions so long on many even though the testplans are new?

I think these jobs don't suit the IoT project. ideally, we plan to manage these jobs via manifest.

@clairlin53 clairlin53 requested a review from Hook25 February 5, 2026 02:27
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.

4 participants