Add and use DisplayHotplugConnectModeDetectedAtomReporter, which logs
all valid modes of a hotplugged display.
Change-Id: Ie93487ad8e4936195e3d949ce46034c5ec4fda83
Add DisplayRefreshRatesChangedAtomReporter, which reports the changed
refresh rates of all the active displays managed by drm_hwcomposer.
Change-Id: I03a81c667c44160dc319a899a3bd9a8bc527a382
Force the cuttlefish container to rebuild, then fetch the new cuttlefish
tarball by rebuilding the android container in which the CI test jobs run.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
The testAndroidBaselineProfile2021Support fails because lavapipe does not
support
"textureCompressionASTC_LDR"
"textureCompressionETC2"
See: cts/tests/tests/graphics/jni/VP_ANDROID_baseline_cpu_only_2021.json
and mesa/src/gallium/frontends/lavapipe/lvp_device.c
Unless/until lavapipe adds this support, skip this test.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
If a shader cache directory is not specified, mesa attempts to make a
cache directory at root. But since cuttlefish root is read-only, this
creates errors which fail the CI jobs.
Specify a shader cache directory for mesa to use that is writable and
will not cause spurious errors in CI.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
When the CI pipeline was converted to Android 16, the mesa software
drivers (llvmpipe and lavapipe) were temporarily removed until mesa's
Android.mk build could be reconciled with the Soong build of mesa.
Keep the Soong blueprints for other devices, but use mesa's make files
to build llvmpipe and lavapipe. Use mesa drivers when running CI jobs.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Reviewed-by: Valentine Burley <valentine.burley@collabora.com>
Reviewed-by: Antonio Ospite <antonio.ospite@collabora.com>
The prefix doesn't provide a lot of value, and unnecessarily lengthens
the commit message subject lines.
Change-Id: I5e234510b2ad9822e95135e56a8a19b4b9329357
Currently VtsHalGraphicsComposer3_TargetTest is run only with a single
display. Use the configurable vkms driver to run vts with multiple
displays.
This job should help to catch errors that arise only when there are
multiple displays. It also allows the test
ConnectedDisplaysTest.IndependentConfigChange to run whereas it is
otherwise skipped for single display configurations.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Currently VtsHalGraphicsComposer3_TargetTest is run without a writeback
connector enabled. Use the configurable vkms driver to create a writeback
connector and run VtsHalGraphicsComposer3_TargetTest.
This job should help to catch errors that arise only for writeback
connectors.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Currently VtsHalGraphicsComposer3_TargetTest is run with a crosvm
display with a connected display. Use the configurable vkms driver to
run VtsHalGraphicsComposer3_TargetTest with a disconnected display.
This job should help to catch errors that arise only in headless mode.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Add reusable functions to help load, configure, and print vkms to make
it easier to add and maintain jobs that use vkms to run CI jobs.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Currently VtsHalGraphicsComposer3_TargetTest is run only once in a
single script. In anticipation of running vts with different display
configurations, add a reusable function to run vts, and use a different
script to actually run vts.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
The current list of tests to skip from VtsHalGraphicsComposer3_TargetTest
is from Android15, but the CI is running Android16, so update the list
of tests that are expected to skip from Android16.
This make the CI more accurate, because if a change causes a new test to
skip unexpectedly, the CI job will fail.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
The modem simulator is currently disabled because, in an earlier version
of cuttlefish, it was preventing drmhwc from launching. However, the
missing service causes a lot of noise in logcat as the ServiceManager
continuously looks for the IRadioModem service.
Since the cuttlefish modem simulator is now working with drmhwc on
Android16, enable the modem simulator and reduce the logcat and Activity
Manager noise.
Also, while here, remove the executable bit from launch-cvd.sh since it
is only sourced, not run directly.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Add a new test job to use the configurable vKMS driver to test hotplugs
from `aosp/platform_testing/tests/display/hcct/tests/hotplugs.cpp`
Skip the test `DetectSingleDisconnectHotplugs` which currently fails
because it expects drm-hwcomposer to send a disconnect event for the
primary display. When this test is updated on a public branch of
platform_testing, it will be added back to the CI job.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
The `ubuntu/x86_64_android` container is the base for running cts/vts
tests, but it is getting very large (~4GB) and takes a long time to build.
To make the base container smaller (~2.6GB), and to make it quicker to
rebuild specific components, carve out two new containers from the base
container:
1) `ubuntu/x86_64_android_tools` for any tools that can be downloaded;
2) `ubuntu/x86_64_android_binaries` for any binaries (excluding
cuttlefish) that need to be built within the aosp repo.
Also, remove the jobs that start with the prefix `use-*`. These jobs pull
containers (e.g. debian/x86_64_cuttlefish) to make files inside the
container (e.g. cuttlefish.tar.xz) available to other jobs in the pipeline
as artifacts. But these `use-*` jobs can take a long time to run
(anywhere from 3 to 20 minutes to use the cuttlefish container). Instead,
use skopeo with umoci to fetch the containers and access their files,
which is much quicker.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Instead of just removing unnecessary packages from the cuttlefish
container, purge them and their dependencies. This reduces the container
size by about 280M and should make it quicker to pull and inspect the
container.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Since the android container already initializes and syncs the aosp repo,
also build the vkms hotplug binaries so that they can be used later in the
CI pipeline.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
In Android 16, some CtsGraphicsTestCases test names have changed which
causes the module to fail. Update the test names.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Android 16 added a new test, GetSupportedRefreshRatesIsDivisorRate,
which will fail when CI is updated to Android 16.
Add the ability to skip a CTS test and skip this test for now.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Update the commands for launching cuttlefish, since they changed slightly
between Android 15 and Android 16.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Update the android container to include all of the packages, tools, and
tests that are up-to-date with Android 16.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Update the aospless container to work with the Android 16 repositories.
This ensures that aospless can still be used to build drm-hwcomposer
binaries for Android 16.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Build the cuttlefish device for Android 16. This keeps CI coverage
as complete and up-to-date as possible.
Since Android 16 deprecates builds with make, temporarily stop using mesa
libraries with the intention of adding a Soong build of mesa in the
future.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
In preparation for rebuilding all CI containers to use Android 16,
update CI/build variables to use Android 16 and Android SDK 36.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
When $FDO_CI_BASH_HELPERS was added, it included an ERR trap that is
triggered when a cts failure is found in the invocation summary. This
prevents the full cts logs from being saved in the job results.
Revise the cts failure check to avoid triggering the trap on error and
allow the full cts logs to be saved.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Now that all of the custom formatting functions are replaced with helper
functions from ci-templates, the custom formatting functions can be
removed.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Replace the custom formatting functions from setup-test-env.sh with the
new formatting functions available from ci-templates.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Replace the custom formatting functions from setup-test-env.sh with the
new formatting functions available from ci-templates.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
In preparation for introducing $FDO_CI_BASH_HELPERS, which adds an ERR
trap that is triggered even in subshells, simplify the VTS failure check
to avoid triggering the trap when no failures are found.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Replace the custom formatting functions from setup-test-env.sh with the
new formatting functions available from ci-templates.
Gitlab logs will still be formatted with collapsible sections, but now
drm-hwcomposer does not need to maintain its own custom versions of
these functions.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Currently the CI pipeline is pushing the drm-hwcomposer binaries into
the vendor partition. Instead put the drm-hwcomposer binary into a new
apex package and run it in cuttlefish.
This approach aligns better with developer workflow.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Currently cuttlefish is building the ranchu apex package. Instead
configure it to build the drm-hwcomposer apex package. This will make
it possible to hot-swap the apex package later in the CI pipeline.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Currently custom repos are fetched by commit sha. Instead fetch them by
release tag or branch name to be clear that the commit is not arbitrary.
Also update the mesa repository to the lastest release.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
When building the cuttlefish tarball, the entire cvd-host_package is
copied instead of the individual files. This adds an extra step later
when the tarball is unpacked because the files have to be copied to
the correct location.
Fix the minor file copying issue to make the code cleaner.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Add apexer and android.jar to the android container to support building
new apex packages in the cts/vts jobs.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Since the android container is being rebuilt, update the cuttlefish
packages that it uses from v1.0.1 -> v.1.5.0.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Currently the android container is using 24.10 just to be consistent
with the aospless container, but since 24.10 is reaching end of life,
rebuild the android container with Ubuntu 22.04 for long-term support.
Ubuntu 22.04 is a better base than 24.04 because the cuttlefish support
packages expect older package versions.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
Currently __ANDROID_API__ is defined by adding it directly to the
aospless cross-configuration file. But aospless is designed to use the
meson.build files in drm-hwcomposer, so put the flag in there instead.
This aligns better with the proper use of aospless.
Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>
The aospless container uses the Ubuntu interim release 24.10 as its base
because, originally, clang 19 packages were not available in the Ubuntu
long-term support release 24.04. But these packages were backported to
24.04 in February 2025 as part of the 24.04.2 update.
Change the aospless container base to 24.04 since it now provides all
necessary packages and will ensure long-term support.