Skip to content

ci: add testimage - #1900

Open
Jose Quaresma (quaresmajose) wants to merge 7 commits into
qualcomm-linux:masterfrom
quaresmajose:ptest
Open

Jose Quaresma (quaresmajose) wants to merge 7 commits into
qualcomm-linux:masterfrom
quaresmajose:ptest

Conversation

@quaresmajose

@quaresmajose Jose Quaresma (quaresmajose) commented Apr 8, 2026 •

Copy link
Copy Markdown
Member

The build system has the ability to run a series of automated tests for qemu images.
All the tests are actually commands run on the target system over ssh.
The tests themselves are written in Python, making use of the unittest module.
The class that enables this is testimage.bbclass (which handles loading the tests and starting the qemu image)

For now it runs the default tests definded upstream in oe-core, The "SKIPPED" tests are due to missing packages in the image. I would prefer to start with the default definition and then adapt it to our needs.

INFO     - RESULTS:
INFO     - RESULTS - date.DateTest.test_date: PASSED (4.00s)
INFO     - RESULTS - df.DfTest.test_df: PASSED (0.59s)
INFO     - RESULTS - oe_syslog.SyslogTest.test_syslog_running: PASSED (0.60s)
INFO     - RESULTS - oe_syslog.SyslogTestConfig.test_syslog_logger: PASSED (1.95s)
INFO     - RESULTS - oe_syslog.SyslogTestConfig.test_syslog_restart: PASSED (0.97s)
INFO     - RESULTS - pam.PamBasicTest.test_pam: PASSED (2.26s)
INFO     - RESULTS - parselogs.ParseLogsTest.test_get_context: PASSED (0.00s)
INFO     - RESULTS - parselogs.ParseLogsTest.test_parselogs: PASSED (2.77s)
INFO     - RESULTS - perl.PerlTest.test_perl_works: PASSED (0.57s)
INFO     - RESULTS - ping.PingTest.test_ping: PASSED (0.00s)
INFO     - RESULTS - python.PythonTest.test_python3: PASSED (0.60s)
INFO     - RESULTS - scp.ScpTest.test_scp_file: PASSED (1.12s)
INFO     - RESULTS - ssh.SSHTest.test_ssh: PASSED (0.56s)
INFO     - RESULTS - systemd.SystemdBasicTests.test_systemd_basic: PASSED (0.55s)
INFO     - RESULTS - systemd.SystemdBasicTests.test_systemd_failed: PASSED (1.12s)
INFO     - RESULTS - systemd.SystemdBasicTests.test_systemd_list: PASSED (1.24s)
INFO     - RESULTS - systemd.SystemdJournalTests.test_systemd_boot_time: PASSED (0.57s)
INFO     - RESULTS - systemd.SystemdJournalTests.test_systemd_journal: PASSED (0.56s)
INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_disable_enable: PASSED (2.99s)
INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_status: PASSED (0.57s)
INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_stop_start: PASSED (2.20s)
INFO     - RESULTS - apt.AptRepoTest.test_apt_install_from_repo: SKIPPED (0.00s)
INFO     - RESULTS - buildcpio.BuildCpioTest.test_cpio: SKIPPED (0.00s)
INFO     - RESULTS - buildgalculator.GalculatorTest.test_galculator: SKIPPED (0.00s)
INFO     - RESULTS - buildlzip.BuildLzipTest.test_lzip: SKIPPED (0.00s)
INFO     - RESULTS - connman.ConnmanTest.test_connmand_help: SKIPPED (0.00s)
INFO     - RESULTS - connman.ConnmanTest.test_connmand_running: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_help: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_history: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_info: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_search: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_version: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_exclude: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_install: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_install_dependency: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_install_from_disk: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_install_from_http: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_installroot: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_installroot_usrmerge: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_makecache: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_reinstall: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_repoinfo: SKIPPED (0.00s)
INFO     - RESULTS - gcc.GccCompileTest.test_gcc_compile: SKIPPED (0.00s)
INFO     - RESULTS - gcc.GccCompileTest.test_gpp2_compile: SKIPPED (0.00s)
INFO     - RESULTS - gcc.GccCompileTest.test_gpp_compile: SKIPPED (0.00s)
INFO     - RESULTS - gcc.GccCompileTest.test_make: SKIPPED (0.00s)
INFO     - RESULTS - gi.GObjectIntrospectionTest.test_python: SKIPPED (0.00s)
INFO     - RESULTS - go.CgoHelloworldTest.test_cgohelloworld: SKIPPED (0.00s)
INFO     - RESULTS - go.GoCompileTest.test_go_compile: SKIPPED (0.00s)
INFO     - RESULTS - go.GoCompileTest.test_go_module: SKIPPED (0.00s)
INFO     - RESULTS - go.GoHelloworldTest.test_gohelloworld: SKIPPED (0.00s)
INFO     - RESULTS - kernelmodule.KernelModuleTest.test_kernel_module: SKIPPED (0.00s)
INFO     - RESULTS - ldd.LddTest.test_ldd: SKIPPED (0.00s)
INFO     - RESULTS - logrotate.LogrotateTest.test_logrotate_newlog: SKIPPED (0.00s)
INFO     - RESULTS - logrotate.LogrotateTest.test_logrotate_wtmp: SKIPPED (0.00s)
INFO     - RESULTS - oe_syslog.SyslogTestConfig.test_syslog_startup_config: SKIPPED (0.00s)
INFO     - RESULTS - opkg.OpkgRepoTest.test_opkg_install_from_repo: SKIPPED (0.00s)
INFO     - RESULTS - ptest.PtestRunnerTest.test_ptestrunner_expectsuccess: SKIPPED (0.00s)
INFO     - RESULTS - rpm.RpmBasicTest.test_rpm_help: SKIPPED (0.00s)
INFO     - RESULTS - rpm.RpmBasicTest.test_rpm_query: SKIPPED (0.00s)
INFO     - RESULTS - rpm.RpmBasicTest.test_rpm_query_nonroot: SKIPPED (0.00s)
INFO     - RESULTS - rpm.RpmInstallRemoveTest.test_check_rpm_install_removal_log_file_size: SKIPPED (0.00s)
INFO     - RESULTS - rpm.RpmInstallRemoveTest.test_rpm_install: SKIPPED (0.00s)
INFO     - RESULTS - rpm.RpmInstallRemoveTest.test_rpm_remove: SKIPPED (0.00s)
INFO     - RESULTS - rust.RustCLibExampleTest.test_rust_c_lib_example: SKIPPED (0.00s)
INFO     - RESULTS - rust.RustCompileTest.test_cargo_compile: SKIPPED (0.00s)
INFO     - RESULTS - rust.RustCompileTest.test_rust_compile: SKIPPED (0.00s)
INFO     - RESULTS - stap.StapTest.test_stap: SKIPPED (0.00s)
INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_coredump_minidebuginfo: SKIPPED (0.00s)
INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_disable_enable_ro: SKIPPED (0.00s)
INFO     - RESULTS - weston.WestonTest.test_wayland_info: SKIPPED (0.00s)
INFO     - RESULTS - weston.WestonTest.test_weston_can_initialize_new_wayland_compositor: SKIPPED (0.00s)
INFO     - RESULTS - weston.WestonTest.test_weston_running: SKIPPED (0.00s)
INFO     - RESULTS - weston.WestonTest.test_weston_supports_xwayland: SKIPPED (0.00s)
INFO     - RESULTS - xorg.XorgTest.test_xorg_running: SKIPPED (0.00s)
INFO     - RESULTS - ptest.PtestRunnerTest.test_ptestrunner_expectfail: EXPECTEDFAIL (2254.14s)
INFO     - SUMMARY:
INFO     - core-image-base () - Ran 76 tests in 2280.013s
INFO     - core-image-base - OK - All required tests passed (successes=21, skipped=54, failures=0, errors=0)

Depends on #2688

@ricardosalveti

Copy link
Copy Markdown
Contributor

ptests won't work with sota, and it is even removed from distro features.

@quaresmajose

Copy link
Copy Markdown
Member Author

ptests won't work with sota, and it is even removed from distro features.

I forgot about that, I'll remove it from sota.

@github-actions

github-actions Bot commented Apr 8, 2026

Copy link
Copy Markdown

Test run workflow

Test jobs for commit eae42e9024cf8ad4c3269a261c94d0fb22c470fe

Test dragonboard-820c qcs615-adp-air qcs6490 qcs8300 qcs9100 qcs9100-rb8 qrb2210-rb1
boot ✅ pass ✅ pass ✅ pass ✅ pass ✅ pass ✅ pass ✅ pass

All jobs summary

Job ID Device State Health
172943 qcs9100-rb8 Finished Complete
172952 qcs9100 Finished Complete
172948 qrb2210-rb1 Finished Complete
172965 dragonboard-820c Finished Complete
172945 qcs8300 Finished Incomplete
172942 qcs9100 Finished Complete
172963 dragonboard-820c Finished Complete
172958 qcs6490 Finished Complete
172947 qcs8300 Finished Incomplete
172955 qcs8300 Finished Incomplete
172949 dragonboard-820c Finished Complete
172956 qcs8300 Finished Incomplete
172944 qcs615-adp-air Finished Complete
172946 qcs615-adp-air Finished Complete
172950 qcs6490 Finished Complete
172964 qcs615-adp-air Finished Complete
172960 qrb2210-rb1 Finished Complete
172954 qrb2210-rb1 Finished Complete
172962 dragonboard-820c Finished Complete
172959 qcs9100-rb8 Finished Complete
172966 qcs9100 Finished Complete
172961 qcs6490 Finished Complete
172953 qcs615-adp-air Finished Complete
172957 qcs6490 Finished Complete
172951 qrb2210-rb1 Finished Complete
172940 qcs9100 Finished Complete
172967 qcs9100-rb8 Finished Complete
172941 qcs9100-rb8 Finished Complete

@test-reporting-app

test-reporting-app Bot commented Apr 8, 2026 •

Copy link
Copy Markdown

Test Results

   68 files   -  13    319 suites   - 107   6h 36m 31s ⏱️ - 47m 14s
  153 tests  -  16    142 ✅  -   1   1 💤 ±0  10 ❌  - 15 
2 106 runs   - 655  2 064 ✅  - 634  25 💤  - 4  17 ❌  - 17 

For more details on these failures, see this check.

Results for commit 24d3413. ± Comparison against base commit c23d167.

This pull request removes 16 tests.
10_Logging_Journalctl_Validation ‑ Logging_Journalctl_Validation
11_Partition_PostBoot_Validation ‑ Partition_PostBoot_Validation
12_Boot_Systemd_KPI_Loop ‑ Boot_Systemd_KPI_Loop
5_OpenCV ‑ OpenCV
6_Ethernet ‑ Ethernet
6_irq ‑ irq
7_BT_ON_OFF ‑ BT_ON_OFF
7_Docker_Kernel_Config ‑ Docker_Kernel_Config
8_AudioRecord ‑ AudioRecord
8_EFI_Variable_Validation ‑ EFI_Variable_Validation
…
This pull request skips 1 and un-skips 1 tests.
8_DSP_AudioPD ‑ DSP_AudioPD
7_Ethernet ‑ Ethernet

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Apr 8, 2026

Copy link
Copy Markdown

Test run workflow

Test jobs for commit 8456571519bc81ae843635979eea289831218b49

Test dragonboard-820c qcs615-adp-air qcs6490 qcs8300 qcs9100 qcs9100-rb8 qrb2210-rb1
boot ✅ pass ✅ pass ✅ pass ✅ pass ✅ pass ✅ pass ✅ pass

All jobs summary

Job ID Device State Health
173077 qcs6490 Finished Complete
173065 qcs6490 Finished Complete
173076 qcs8300 Finished Incomplete
173070 qcs8300 Finished Incomplete
173078 qcs8300 Finished Incomplete
173071 qcs9100-rb8 Finished Complete
173064 qcs9100 Finished Complete
173089 qcs9100 Finished Complete
173066 dragonboard-820c Finished Complete
173074 qcs6490 Finished Complete
173063 qrb2210-rb1 Finished Complete
173072 qcs6490 Finished Complete
173082 qrb2210-rb1 Finished Complete
173088 qcs9100-rb8 Finished Complete
173087 qrb2210-rb1 Finished Complete
173067 qcs8300 Finished Incomplete
173073 qrb2210-rb1 Finished Complete
173075 qcs615-adp-air Finished Complete
173086 qcs9100 Finished Complete
173090 dragonboard-820c Running Unknown
173080 qcs9100-rb8 Finished Complete
173085 qcs9100-rb8 Finished Complete
173083 qcs615-adp-air Finished Complete
173084 dragonboard-820c Finished Complete
173079 dragonboard-820c Finished Complete
173069 qcs9100 Finished Complete
173068 qcs615-adp-air Finished Complete
173081 qcs615-adp-air Finished Incomplete

@ricardosalveti

Copy link
Copy Markdown
Contributor

I'm not sure we should add ptests by default in every image, maybe in only one variant? What is the image size implication here?

@koenkooi

Copy link
Copy Markdown
Contributor

As I said in #1903:

As I said before: we shouldn't be changing DISTRO settings, since that configuration would cease to be that DISTRO. Adding a nodistro-qcom.conf variant would be fine, changing nodistro without renaming is not.

@quaresmajose

Copy link
Copy Markdown
Member Author

I'm not sure we should add ptests by default in every image, maybe in only one variant? What is the image size implication here?

I'll measure that and add it to the commit.

@quaresmajose

Copy link
Copy Markdown
Member Author

As I said in #1903:

As I said before: we shouldn't be changing DISTRO settings, since that configuration would cease to be that DISTRO. Adding a nodistro-qcom.conf variant would be fine, changing nodistro without renaming is not.

So how do you think we should go about installing the tests on the target?

@quaresmajose

Copy link
Copy Markdown
Member Author

I'm not sure we should add ptests by default in every image, maybe in only one variant? What is the image size implication here?

I'll measure that and add it to the commit.

Here are the results for ci/qcom-armv8a.yml:ci/qcom-distro.yml

Before this PR:

31G build/tmp/deploy/images/qcom-armv8a

1.6G qcom-container-orchestration-image-qcom-armv8a.rootfs.ext4.gz
0.7G qcom-multimedia-image-qcom-armv8a.rootfs.ext4.gz
1.4G qcom-multimedia-proprietary-image-qcom-armv8a.rootfs.ext4.gz

After this PR:

48G  build/tmp/deploy/images/qcom-armv8a

2.4G qcom-container-orchestration-image-qcom-armv8a.rootfs.ext4.gz
1.5G qcom-multimedia-image-qcom-armv8a.rootfs.ext4.gz
2.1G qcom-multimedia-proprietary-image-qcom-armv8a.rootfs.ext4.gz

@ricardosalveti

Copy link
Copy Markdown
Contributor

I'm not sure we should add ptests by default in every image, maybe in only one variant? What is the image size implication here?

I'll measure that and add it to the commit.

Here are the results for ci/qcom-armv8a.yml:ci/qcom-distro.yml

Before this PR:

31G build/tmp/deploy/images/qcom-armv8a

1.6G qcom-container-orchestration-image-qcom-armv8a.rootfs.ext4.gz
0.7G qcom-multimedia-image-qcom-armv8a.rootfs.ext4.gz
1.4G qcom-multimedia-proprietary-image-qcom-armv8a.rootfs.ext4.gz

After this PR:

48G  build/tmp/deploy/images/qcom-armv8a

2.4G qcom-container-orchestration-image-qcom-armv8a.rootfs.ext4.gz
1.5G qcom-multimedia-image-qcom-armv8a.rootfs.ext4.gz
2.1G qcom-multimedia-proprietary-image-qcom-armv8a.rootfs.ext4.gz

This is a massive difference, we should discuss this more before pushing any changes here.

@quaresmajose

Copy link
Copy Markdown
Member Author

Yes, I agree.

@quaresmajose

Copy link
Copy Markdown
Member Author

So, what does the testimage actually run and test?

For now it runs the default tests definded upstream in oe-core, The "SKIPPED" tests are due to missing packages in the image. I would prefer to start with the default definition and then adapt it to our needs.

2026-09-01 17:43:56 - INFO     - RESULTS:
2026-09-01 17:43:56 - INFO     - RESULTS - date.DateTest.test_date: PASSED (4.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - df.DfTest.test_df: PASSED (0.59s)
2026-09-01 17:43:56 - INFO     - RESULTS - oe_syslog.SyslogTest.test_syslog_running: PASSED (0.60s)
2026-09-01 17:43:56 - INFO     - RESULTS - oe_syslog.SyslogTestConfig.test_syslog_logger: PASSED (1.95s)
2026-09-01 17:43:56 - INFO     - RESULTS - oe_syslog.SyslogTestConfig.test_syslog_restart: PASSED (0.97s)
2026-09-01 17:43:56 - INFO     - RESULTS - pam.PamBasicTest.test_pam: PASSED (2.26s)
2026-09-01 17:43:56 - INFO     - RESULTS - parselogs.ParseLogsTest.test_get_context: PASSED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - parselogs.ParseLogsTest.test_parselogs: PASSED (2.77s)
2026-09-01 17:43:56 - INFO     - RESULTS - perl.PerlTest.test_perl_works: PASSED (0.57s)
2026-09-01 17:43:56 - INFO     - RESULTS - ping.PingTest.test_ping: PASSED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - python.PythonTest.test_python3: PASSED (0.60s)
2026-09-01 17:43:56 - INFO     - RESULTS - scp.ScpTest.test_scp_file: PASSED (1.12s)
2026-09-01 17:43:56 - INFO     - RESULTS - ssh.SSHTest.test_ssh: PASSED (0.56s)
2026-09-01 17:43:56 - INFO     - RESULTS - systemd.SystemdBasicTests.test_systemd_basic: PASSED (0.55s)
2026-09-01 17:43:56 - INFO     - RESULTS - systemd.SystemdBasicTests.test_systemd_failed: PASSED (1.12s)
2026-09-01 17:43:56 - INFO     - RESULTS - systemd.SystemdBasicTests.test_systemd_list: PASSED (1.24s)
2026-09-01 17:43:56 - INFO     - RESULTS - systemd.SystemdJournalTests.test_systemd_boot_time: PASSED (0.57s)
2026-09-01 17:43:56 - INFO     - RESULTS - systemd.SystemdJournalTests.test_systemd_journal: PASSED (0.56s)
2026-09-01 17:43:56 - INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_disable_enable: PASSED (2.99s)
2026-09-01 17:43:56 - INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_status: PASSED (0.57s)
2026-09-01 17:43:56 - INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_stop_start: PASSED (2.20s)
2026-09-01 17:43:56 - INFO     - RESULTS - apt.AptRepoTest.test_apt_install_from_repo: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - buildcpio.BuildCpioTest.test_cpio: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - buildgalculator.GalculatorTest.test_galculator: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - buildlzip.BuildLzipTest.test_lzip: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - connman.ConnmanTest.test_connmand_help: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - connman.ConnmanTest.test_connmand_running: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_help: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_history: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_info: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_search: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_version: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_exclude: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_install: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_install_dependency: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_install_from_disk: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_install_from_http: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_installroot: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_installroot_usrmerge: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_makecache: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_reinstall: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_repoinfo: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - gcc.GccCompileTest.test_gcc_compile: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - gcc.GccCompileTest.test_gpp2_compile: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - gcc.GccCompileTest.test_gpp_compile: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - gcc.GccCompileTest.test_make: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - gi.GObjectIntrospectionTest.test_python: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - go.CgoHelloworldTest.test_cgohelloworld: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - go.GoCompileTest.test_go_compile: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - go.GoCompileTest.test_go_module: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - go.GoHelloworldTest.test_gohelloworld: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - kernelmodule.KernelModuleTest.test_kernel_module: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - ldd.LddTest.test_ldd: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - logrotate.LogrotateTest.test_logrotate_newlog: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - logrotate.LogrotateTest.test_logrotate_wtmp: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - oe_syslog.SyslogTestConfig.test_syslog_startup_config: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - opkg.OpkgRepoTest.test_opkg_install_from_repo: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - ptest.PtestRunnerTest.test_ptestrunner_expectsuccess: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - rpm.RpmBasicTest.test_rpm_help: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - rpm.RpmBasicTest.test_rpm_query: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - rpm.RpmBasicTest.test_rpm_query_nonroot: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - rpm.RpmInstallRemoveTest.test_check_rpm_install_removal_log_file_size: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - rpm.RpmInstallRemoveTest.test_rpm_install: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - rpm.RpmInstallRemoveTest.test_rpm_remove: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - rust.RustCLibExampleTest.test_rust_c_lib_example: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - rust.RustCompileTest.test_cargo_compile: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - rust.RustCompileTest.test_rust_compile: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - stap.StapTest.test_stap: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_coredump_minidebuginfo: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_disable_enable_ro: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - weston.WestonTest.test_wayland_info: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - weston.WestonTest.test_weston_can_initialize_new_wayland_compositor: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - weston.WestonTest.test_weston_running: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - weston.WestonTest.test_weston_supports_xwayland: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - xorg.XorgTest.test_xorg_running: SKIPPED (0.00s)
2026-09-01 17:43:56 - INFO     - RESULTS - ptest.PtestRunnerTest.test_ptestrunner_expectfail: EXPECTEDFAIL (2254.14s)
2026-09-01 17:43:56 - INFO     - SUMMARY:
2026-09-01 17:43:56 - INFO     - core-image-base () - Ran 76 tests in 2280.013s
2026-09-01 17:43:56 - INFO     - core-image-base - OK - All required tests passed (successes=21, skipped=54, failures=0, errors=0)

https://github.com/qualcomm-linux/meta-qcom/actions/runs/33532586391/job/99943460884?pr=1900#step:10:10455

Comment thread ci/genericarm64.yml Outdated
Comment thread ci/genericarm64.yml
Comment thread ci/base.lock.yml Outdated
header:
version: 14
includes:
- ci/genericarm64.yml

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Name it genericarm64-testimage or similar, since it is specific to this machine.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I updated to ci/genericarm64-testimage.yml but maybe it would be better to just be ci/genericarm64.yml, because otherwise it gets too big.

image

Comment thread ci/testimage.yml Outdated
Comment thread .github/workflows/build-yocto.yml
- testimage
distro:
- name: nodistro
yamlfile: ""

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should probably take 'profile' into account, and decide if to run on PR, nightly or weekly.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yes, I think the nightly is sufficient for now and will allow us to better assess the situation.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

'profile' has not yet been implemented.

Comment thread ci/testimage-run.yml Outdated
@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit 441f994

  • qcomdistro: multimedia image-prop
    Pass: 41 | Fail: 0 | Total: 41
  • qcomdistro: multimedia image
    Pass: 9 | Fail: 0 | Total: 9

@quaresmajose

Copy link
Copy Markdown
Member Author

I removed the PTEST; because of this, the time required will be significantly reduced. I'll update the execution time later.

Comment on lines +192 to +215
testimage-run:
needs: [testimage, github-cache-check, compile-env]
if: |
github.repository_owner == 'qualcomm-linux' &&
(inputs.skip_if_github_cached != true || needs.github-cache-check.outputs.cache_hit != 'true')
strategy:
fail-fast: false
matrix:
machine:
- genericarm64-testimage-run
distro:
- name: nodistro
yamlfile: ""
uses: ./.github/workflows/compile.yml
with:
run_on: arm64-metal
name: ${{ matrix.machine }}/${{ matrix.distro.name }}
world: false
machine: ${{matrix.machine}}
distro_yaml: ${{matrix.distro.yamlfile}}
distro_name: ${{matrix.distro.name}}
kernel_yaml: ''
kernel_dirname: ''
cache_dir: ${{ needs.compile-env.outputs.CACHE_DIR }}
@quaresmajose

Copy link
Copy Markdown
Member Author

I removed the PTEST; because of this, the time required will be significantly reduced. I'll update the execution time later.

The full time of the testimage-run job takes less then 15 minutes.
As this is done in parallel with the other jobs, no delay is introduced.

https://github.com/qualcomm-linux/meta-qcom/actions/runs/34616349986/job/103353948519?pr=1900

INFO     - RESULTS - date.DateTest.test_date: PASSED (4.04s)
INFO     - RESULTS - df.DfTest.test_df: PASSED (0.57s)
INFO     - RESULTS - oe_syslog.SyslogTest.test_syslog_running: PASSED (0.58s)
INFO     - RESULTS - oe_syslog.SyslogTestConfig.test_syslog_logger: PASSED (1.95s)
INFO     - RESULTS - oe_syslog.SyslogTestConfig.test_syslog_restart: PASSED (0.96s)
INFO     - RESULTS - pam.PamBasicTest.test_pam: PASSED (2.26s)
INFO     - RESULTS - parselogs.ParseLogsTest.test_get_context: PASSED (0.00s)
INFO     - RESULTS - parselogs.ParseLogsTest.test_parselogs: PASSED (2.73s)
INFO     - RESULTS - ping.PingTest.test_ping: PASSED (0.00s)
INFO     - RESULTS - scp.ScpTest.test_scp_file: PASSED (1.16s)
INFO     - RESULTS - ssh.SSHTest.test_ssh: PASSED (0.57s)
INFO     - RESULTS - systemd.SystemdBasicTests.test_systemd_basic: PASSED (0.56s)
INFO     - RESULTS - systemd.SystemdBasicTests.test_systemd_failed: PASSED (64.52s)
INFO     - RESULTS - systemd.SystemdBasicTests.test_systemd_list: PASSED (1.22s)
INFO     - RESULTS - systemd.SystemdJournalTests.test_systemd_boot_time: PASSED (0.57s)
INFO     - RESULTS - systemd.SystemdJournalTests.test_systemd_journal: PASSED (0.57s)
INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_disable_enable: PASSED (2.96s)
INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_status: PASSED (0.57s)
INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_stop_start: PASSED (2.20s)
INFO     - RESULTS - apt.AptRepoTest.test_apt_install_from_repo: SKIPPED (0.00s)
INFO     - RESULTS - buildcpio.BuildCpioTest.test_cpio: SKIPPED (0.00s)
INFO     - RESULTS - buildgalculator.GalculatorTest.test_galculator: SKIPPED (0.00s)
INFO     - RESULTS - buildlzip.BuildLzipTest.test_lzip: SKIPPED (0.00s)
INFO     - RESULTS - connman.ConnmanTest.test_connmand_help: SKIPPED (0.00s)
INFO     - RESULTS - connman.ConnmanTest.test_connmand_running: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_help: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_history: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_info: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_search: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfBasicTest.test_dnf_version: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_exclude: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_install: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_install_dependency: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_install_from_disk: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_install_from_http: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_installroot: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_installroot_usrmerge: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_makecache: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_reinstall: SKIPPED (0.00s)
INFO     - RESULTS - dnf.DnfRepoTest.test_dnf_repoinfo: SKIPPED (0.00s)
INFO     - RESULTS - gcc.GccCompileTest.test_gcc_compile: SKIPPED (0.00s)
INFO     - RESULTS - gcc.GccCompileTest.test_gpp2_compile: SKIPPED (0.00s)
INFO     - RESULTS - gcc.GccCompileTest.test_gpp_compile: SKIPPED (0.00s)
INFO     - RESULTS - gcc.GccCompileTest.test_make: SKIPPED (0.00s)
INFO     - RESULTS - gi.GObjectIntrospectionTest.test_python: SKIPPED (0.00s)
INFO     - RESULTS - go.CgoHelloworldTest.test_cgohelloworld: SKIPPED (0.00s)
INFO     - RESULTS - go.GoCompileTest.test_go_compile: SKIPPED (0.00s)
INFO     - RESULTS - go.GoCompileTest.test_go_module: SKIPPED (0.00s)
INFO     - RESULTS - go.GoHelloworldTest.test_gohelloworld: SKIPPED (0.00s)
INFO     - RESULTS - kernelmodule.KernelModuleTest.test_kernel_module: SKIPPED (0.00s)
INFO     - RESULTS - ldd.LddTest.test_ldd: SKIPPED (0.00s)
INFO     - RESULTS - logrotate.LogrotateTest.test_logrotate_newlog: SKIPPED (0.00s)
INFO     - RESULTS - logrotate.LogrotateTest.test_logrotate_wtmp: SKIPPED (0.00s)
INFO     - RESULTS - oe_syslog.SyslogTestConfig.test_syslog_startup_config: SKIPPED (0.00s)
INFO     - RESULTS - opkg.OpkgRepoTest.test_opkg_install_from_repo: SKIPPED (0.00s)
INFO     - RESULTS - perl.PerlTest.test_perl_works: SKIPPED (0.00s)
INFO     - RESULTS - ptest.PtestRunnerTest.test_ptestrunner_expectfail: SKIPPED (0.00s)
INFO     - RESULTS - ptest.PtestRunnerTest.test_ptestrunner_expectsuccess: SKIPPED (0.00s)
INFO     - RESULTS - python.PythonTest.test_python3: SKIPPED (0.00s)
INFO     - RESULTS - rpm.RpmBasicTest.test_rpm_help: SKIPPED (0.00s)
INFO     - RESULTS - rpm.RpmBasicTest.test_rpm_query: SKIPPED (0.00s)
INFO     - RESULTS - rpm.RpmBasicTest.test_rpm_query_nonroot: SKIPPED (0.00s)
INFO     - RESULTS - rpm.RpmInstallRemoveTest.test_check_rpm_install_removal_log_file_size: SKIPPED (0.00s)
INFO     - RESULTS - rpm.RpmInstallRemoveTest.test_rpm_install: SKIPPED (0.00s)
INFO     - RESULTS - rpm.RpmInstallRemoveTest.test_rpm_remove: SKIPPED (0.00s)
INFO     - RESULTS - rust.RustCLibExampleTest.test_rust_c_lib_example: SKIPPED (0.00s)
INFO     - RESULTS - rust.RustCompileTest.test_cargo_compile: SKIPPED (0.00s)
INFO     - RESULTS - rust.RustCompileTest.test_rust_compile: SKIPPED (0.00s)
INFO     - RESULTS - stap.StapTest.test_stap: SKIPPED (0.00s)
INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_coredump_minidebuginfo: SKIPPED (0.00s)
INFO     - RESULTS - systemd.SystemdServiceTests.test_systemd_disable_enable_ro: SKIPPED (0.00s)
INFO     - RESULTS - weston.WestonTest.test_wayland_info: SKIPPED (0.00s)
INFO     - RESULTS - weston.WestonTest.test_weston_can_initialize_new_wayland_compositor: SKIPPED (0.00s)
INFO     - RESULTS - weston.WestonTest.test_weston_running: SKIPPED (0.00s)
INFO     - RESULTS - weston.WestonTest.test_weston_supports_xwayland: SKIPPED (0.00s)
INFO     - RESULTS - xorg.XorgTest.test_xorg_running: SKIPPED (0.00s)

distro:
- name: nodistro
yamlfile: ""
uses: ./.github/workflows/compile.yml

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Fix proposed in #3170

distro:
- name: nodistro
yamlfile: ""
uses: ./.github/workflows/compile.yml
We have a special interest in the meta-yocto-bsp layer that supplies the
genericarm64 machine.

Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
Add kas fragment support for the genericarm64 machine which is provided in
the meta-yocto-bsp layer from the meta-yocto.

The genericarm64 machine definition in the Yocto Project is a standardized
64-bit ARM architecture target designed to boot on Arm SystemReady compliant
hardware. By utilizing UEFI for boot and mainline Linux configurations,
it eliminates the need for hardware-specific Board Support Packages (BSPs)
across compliant devices.

We still need to drop 'cmdline' and 'qcomflash' that come from ci/base.yml.

Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
There are scenarios where we want to choose the machine that will
execute the workflow.

We have 3 build machines available:

[1] amd64: default used
[2] arm64: used to build testimage
[3] arm64+kvm: used to run testimage

The [3] arm64+kvm has higher costs. So we use the [2] arm64 to build
everything first and after that, the [3] arm64+kvm to run the tests.

Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
Add kas fragment support to build oe-core testimage.

The testimage is provided in the class testimage.bbclass which handles
loading the tests and starting the qemu image. More information on how
to use this class can be found in [1] and [2].

To run the standard testimage tests, the dependencies in
CORE_IMAGE_EXTRA_INSTALL were added.

[1] https://wiki.yoctoproject.org/wiki/Image_tests
[2] https://docs.yoctoproject.org/test-manual/runtime-testing.html#performing-automated-runtime-testing

Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
Add ci job to build testimage on nodistro. The qcom-distro is not ready for
testimage and several adaptations need to be made.

The rationale behind this step is to produce the artifacts to be used in
the target image. This allows them to be used quickly when needed because
they can be rapidly restored from the sstate-cache.

Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
This kas fragment is a complement to b/ci/testimage.yml

Initially, the two were together, but this way we can have the runtime
configuration separate from the build configuration.
This, in turn, allows for a more streamlined build where only the native
components are needed to run the testimage.

More information on how to use the testimage class in [1][2][3] and [4].

[1] https://wiki.yoctoproject.org/wiki/Image_tests
[2] https://docs.yoctoproject.org/test-manual/runtime-testing.html#performing-automated-runtime-testing
[3] https://wiki.yoctoproject.org/wiki/Ptest
[4] https://docs.yoctoproject.org/test-manual/ptest.html

Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
Add testimage-run ci job to build and run testimage on nodistro.
The qcom-distro is not ready for testimage and several adaptations
need to be made.

This job is performed on a arm64-metal VM machine because it provides
KVM to allows for much more efficient image emulation.

This job uses artifacts produced in testimage ci job for the target
architecture, but the native part has to be produced since the host
is not the same as the one used in on the testimage ci job.

Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants