0

Add CI tester for running wayland tests on mutter

Configs to add a CI builder and an optional try builder for running
tests on ozone/wayland using the mutter compositor.

Once the tests are stable on mutter, it will replace the weston-based
builders.

Design doc: https://docs.google.com/document/d/16p8xuNKwAAuN70C9zTV_MXFE5d1WTcciVHZyG6hDsDo/edit?usp=sharing

Results from latest local test run: https://luci-milo.appspot.com/ui/inv/u-orko-2025-02-06-18-46-00-ee244c43de965506/test-results

Bug: 391129941
Change-Id: I378e13b41465a5620bc96bade4504e8066321874
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6217938
Reviewed-by: Ben Pastene <bpastene@chromium.org>
Commit-Queue: Ben Pastene <bpastene@chromium.org>
Auto-Submit: Orko Garai <orko@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1432821}
This commit is contained in:
Orko Garai
2025-03-14 10:08:01 -07:00
committed by Chromium LUCI CQ
parent 9e94e5e99a
commit 513958bf70
25 changed files with 871 additions and 14 deletions

@ -6,4 +6,6 @@ ci/Linux Tests (Wayland)
ci/Linux Tests (dbg)(1)
ci/Network Service Linux
ci/linux-bfcache-rel
ci/linux-extended-tracing-rel
ci/linux-extended-tracing-rel
ci/linux-wayland-mutter-rel-tests
try/linux-wayland-mutter-rel

@ -11,6 +11,7 @@
"proprietary_codecs": true,
"target_cpu": "x64",
"target_os": "linux",
"use_bundled_mutter": true,
"use_bundled_weston": true,
"use_reclient": false,
"use_remoteexec": true,

@ -65,6 +65,38 @@
"project": "chromium"
}
}
},
{
"builder_id": {
"bucket": "ci",
"builder": "linux-wayland-mutter-rel-tests",
"project": "chromium"
},
"builder_spec": {
"build_gs_bucket": "chromium-linux-archive",
"builder_group": "chromium.linux",
"execution_mode": "TEST",
"legacy_chromium_config": {
"apply_configs": [
"mb"
],
"build_config": "Release",
"config": "chromium",
"target_bits": 64,
"target_platform": "linux"
},
"legacy_gclient_config": {
"apply_configs": [
"use_clang_coverage"
],
"config": "chromium"
},
"parent": {
"bucket": "ci",
"builder": "Linux Builder (Wayland)",
"project": "chromium"
}
}
}
]
},
@ -80,9 +112,18 @@
"bucket": "ci",
"builder": "Linux Tests (Wayland)",
"project": "chromium"
},
{
"bucket": "ci",
"builder": "linux-wayland-mutter-rel-tests",
"project": "chromium"
}
],
"mirroring_builder_group_and_names": [
{
"builder": "linux-wayland-mutter-rel",
"group": "tryserver.chromium.linux"
},
{
"builder": "linux-wayland-rel",
"group": "tryserver.chromium.linux"

@ -1690,5 +1690,31 @@
"test_id_prefix": "ninja://third_party/zlib:zlib_unittests/"
}
]
},
"linux-wayland-mutter-rel-tests": {
"gtest_tests": [
{
"args": [
"--no-xvfb",
"--use-mutter",
"--ozone-platform=wayland",
"--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.interactive_ui_tests_mutter.filter"
],
"isolate_profile_data": true,
"merge": {
"script": "//testing/merge_scripts/standard_gtest_merge.py"
},
"name": "interactive_ui_tests",
"swarming": {
"dimensions": {
"os": "Ubuntu-24.04"
},
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 5
},
"test": "interactive_ui_tests",
"test_id_prefix": "ninja://chrome/test:interactive_ui_tests/"
}
]
}
}

@ -0,0 +1,94 @@
{
"$build/chromium_tests_builder_config": {
"builder_config": {
"builder_db": {
"entries": [
{
"builder_id": {
"bucket": "ci",
"builder": "Linux Builder (Wayland)",
"project": "chromium"
},
"builder_spec": {
"build_gs_bucket": "chromium-linux-archive",
"builder_group": "chromium.linux",
"execution_mode": "COMPILE_AND_TEST",
"legacy_chromium_config": {
"apply_configs": [
"mb"
],
"build_config": "Release",
"config": "chromium",
"target_bits": 64,
"target_platform": "linux"
},
"legacy_gclient_config": {
"apply_configs": [
"checkout_mutter",
"use_clang_coverage"
],
"config": "chromium"
}
}
},
{
"builder_id": {
"bucket": "ci",
"builder": "linux-wayland-mutter-rel-tests",
"project": "chromium"
},
"builder_spec": {
"build_gs_bucket": "chromium-linux-archive",
"builder_group": "chromium.linux",
"execution_mode": "TEST",
"legacy_chromium_config": {
"apply_configs": [
"mb"
],
"build_config": "Release",
"config": "chromium",
"target_bits": 64,
"target_platform": "linux"
},
"legacy_gclient_config": {
"apply_configs": [
"use_clang_coverage"
],
"config": "chromium"
},
"parent": {
"bucket": "ci",
"builder": "Linux Builder (Wayland)",
"project": "chromium"
}
}
}
]
},
"builder_ids": [
{
"bucket": "ci",
"builder": "linux-wayland-mutter-rel-tests",
"project": "chromium"
}
],
"mirroring_builder_group_and_names": [
{
"builder": "linux-wayland-mutter-rel",
"group": "tryserver.chromium.linux"
}
],
"retry_failed_shards": true,
"targets_spec_directory": "src/infra/config/generated/builders/ci/linux-wayland-mutter-rel-tests/targets"
}
},
"$recipe_engine/resultdb/test_presentation": {
"column_keys": [],
"grouping_keys": [
"status",
"v.test_suite"
]
},
"builder_group": "chromium.linux",
"recipe": "chromium"
}

@ -0,0 +1,28 @@
{
"linux-wayland-mutter-rel-tests": {
"gtest_tests": [
{
"args": [
"--no-xvfb",
"--use-mutter",
"--ozone-platform=wayland",
"--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.interactive_ui_tests_mutter.filter"
],
"isolate_profile_data": true,
"merge": {
"script": "//testing/merge_scripts/standard_gtest_merge.py"
},
"name": "interactive_ui_tests",
"swarming": {
"dimensions": {
"os": "Ubuntu-24.04"
},
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 5
},
"test": "interactive_ui_tests",
"test_id_prefix": "ninja://chrome/test:interactive_ui_tests/"
}
]
}
}

@ -854,6 +854,7 @@
"linux-trees-in-viz-rel": "try/linux-trees-in-viz-rel/gn-args.json",
"linux-v4l2-codec-rel": "try/linux-v4l2-codec-rel/gn-args.json",
"linux-viz-rel": "try/linux-viz-rel/gn-args.json",
"linux-wayland-mutter-rel": "try/linux-wayland-mutter-rel/gn-args.json",
"linux-wayland-rel": "try/linux-wayland-rel/gn-args.json",
"linux-webkit-asan-rel": "try/linux-webkit-asan-rel/gn-args.json",
"linux-webkit-msan-rel": "try/linux-webkit-msan-rel/gn-args.json",

@ -0,0 +1,23 @@
{
"gn_args": {
"coverage_instrumentation_input_file": "//.code-coverage/files_to_instrument.txt",
"dcheck_always_on": true,
"ffmpeg_branding": "Chrome",
"is_component_build": false,
"is_debug": false,
"ozone_auto_platforms": false,
"ozone_platform": "wayland",
"ozone_platform_headless": true,
"ozone_platform_wayland": true,
"proprietary_codecs": true,
"symbol_level": 0,
"target_cpu": "x64",
"target_os": "linux",
"use_bundled_mutter": true,
"use_bundled_weston": true,
"use_clang_coverage": true,
"use_reclient": false,
"use_remoteexec": true,
"use_siso": true
}
}

@ -0,0 +1,117 @@
{
"$build/chromium_tests_builder_config": {
"builder_config": {
"additional_exclusions": [
"infra/config/generated/builders/try/linux-wayland-mutter-rel/gn-args.json"
],
"builder_db": {
"entries": [
{
"builder_id": {
"bucket": "ci",
"builder": "Linux Builder (Wayland)",
"project": "chromium"
},
"builder_spec": {
"build_gs_bucket": "chromium-linux-archive",
"builder_group": "chromium.linux",
"execution_mode": "COMPILE_AND_TEST",
"legacy_chromium_config": {
"apply_configs": [
"mb"
],
"build_config": "Release",
"config": "chromium",
"target_bits": 64,
"target_platform": "linux"
},
"legacy_gclient_config": {
"apply_configs": [
"checkout_mutter",
"use_clang_coverage"
],
"config": "chromium"
}
}
},
{
"builder_id": {
"bucket": "ci",
"builder": "linux-wayland-mutter-rel-tests",
"project": "chromium"
},
"builder_spec": {
"build_gs_bucket": "chromium-linux-archive",
"builder_group": "chromium.linux",
"execution_mode": "TEST",
"legacy_chromium_config": {
"apply_configs": [
"mb"
],
"build_config": "Release",
"config": "chromium",
"target_bits": 64,
"target_platform": "linux"
},
"legacy_gclient_config": {
"apply_configs": [
"use_clang_coverage"
],
"config": "chromium"
},
"parent": {
"bucket": "ci",
"builder": "Linux Builder (Wayland)",
"project": "chromium"
}
}
}
]
},
"builder_ids": [
{
"bucket": "ci",
"builder": "Linux Builder (Wayland)",
"project": "chromium"
}
],
"builder_ids_in_scope_for_testing": [
{
"bucket": "ci",
"builder": "linux-wayland-mutter-rel-tests",
"project": "chromium"
}
],
"targets_spec_directory": "src/infra/config/generated/builders/try/linux-wayland-mutter-rel/targets"
}
},
"$build/code_coverage": {
"coverage_test_types": [
"unit",
"overall"
],
"use_clang_coverage": true
},
"$build/siso": {
"configs": [
"builder",
"remote-link"
],
"enable_cloud_monitoring": true,
"enable_cloud_profiler": true,
"enable_cloud_trace": true,
"experiments": [],
"metrics_project": "chromium-reclient-metrics",
"output_local_strategy": "minimum",
"project": "rbe-chromium-untrusted"
},
"$recipe_engine/resultdb/test_presentation": {
"column_keys": [],
"grouping_keys": [
"status",
"v.test_suite"
]
},
"builder_group": "tryserver.chromium.linux",
"recipe": "chromium_trybot"
}

@ -0,0 +1,33 @@
{
"Linux Builder (Wayland)": {
"additional_compile_targets": [
"chrome"
]
},
"linux-wayland-mutter-rel-tests": {
"gtest_tests": [
{
"args": [
"--no-xvfb",
"--use-mutter",
"--ozone-platform=wayland",
"--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.interactive_ui_tests_mutter.filter"
],
"isolate_profile_data": true,
"merge": {
"script": "//testing/merge_scripts/standard_gtest_merge.py"
},
"name": "interactive_ui_tests",
"swarming": {
"dimensions": {
"os": "Ubuntu-24.04"
},
"service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
"shards": 5
},
"test": "interactive_ui_tests",
"test_id_prefix": "ninja://chrome/test:interactive_ui_tests/"
}
]
}
}

@ -13,6 +13,7 @@
"symbol_level": 0,
"target_cpu": "x64",
"target_os": "linux",
"use_bundled_mutter": true,
"use_bundled_weston": true,
"use_clang_coverage": true,
"use_reclient": false,

@ -10891,6 +10891,27 @@
}
]
},
"linux-wayland-mutter-rel-tests": {
"contact_team_email": "chrome-linux-engprod@google.com",
"problem_specs": [
{
"name": "Unhealthy",
"period_days": 7,
"score": 5,
"thresholds": {
"_default": "_default"
}
},
{
"name": "Low Value",
"period_days": 90,
"score": 1,
"thresholds": {
"_default": "_default"
}
}
]
},
"linux-win-cross-clang-tot-rel": {
"contact_team_email": "lexan@google.com",
"problem_specs": [

@ -5663,6 +5663,11 @@ config_groups {
includable_only: true
disable_reuse_footers: "Include-Ci-Only-Tests"
}
builders {
name: "chromium/try/linux-wayland-mutter-rel"
includable_only: true
disable_reuse_footers: "Include-Ci-Only-Tests"
}
builders {
name: "chromium/try/linux-wayland-rel"
disable_reuse_footers: "Include-Ci-Only-Tests"

@ -19500,7 +19500,7 @@ buckets {
use_invocation_timestamp: true
}
}
description_html: "This builder is mirrored by any of the following try builders:<br/><ul><li><a href=\"https://ci.chromium.org/p/chromium/builders/try/linux-wayland-rel\">linux-wayland-rel</a></li></ul><br/>Builder owner: <a href=mailto:chrome-linux-engprod@google.com>chrome-linux-engprod@google.com</a>"
description_html: "This builder is mirrored by any of the following try builders:<br/><ul><li><a href=\"https://ci.chromium.org/p/chromium/builders/try/linux-wayland-mutter-rel\">linux-wayland-mutter-rel</a></li><li><a href=\"https://ci.chromium.org/p/chromium/builders/try/linux-wayland-rel\">linux-wayland-rel</a></li></ul><br/>Builder owner: <a href=mailto:chrome-linux-engprod@google.com>chrome-linux-engprod@google.com</a>"
shadow_builder_adjustments {
service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
pool: "luci.chromium.try"
@ -60964,6 +60964,116 @@ buckets {
predicates: "string(build.output.properties.is_cached) == \"false\""
}
}
builders {
name: "linux-wayland-mutter-rel-tests"
swarming_host: "chromium-swarm.appspot.com"
dimensions: "builderless:1"
dimensions: "cores:8"
dimensions: "cpu:x86-64"
dimensions: "free_space:standard"
dimensions: "os:Ubuntu-22.04"
dimensions: "pool:luci.chromium.ci"
dimensions: "ssd:0"
exe {
cipd_package: "infra/chromium/bootstrapper/${platform}"
cipd_version: "latest"
cmd: "bootstrapper"
}
properties:
'{'
' "$bootstrap/exe": {'
' "exe": {'
' "cipd_package": "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",'
' "cipd_version": "refs/heads/main",'
' "cmd": ['
' "luciexe"'
' ]'
' }'
' },'
' "$bootstrap/properties": {'
' "properties_file": "infra/config/generated/builders/ci/linux-wayland-mutter-rel-tests/properties.json",'
' "top_level_project": {'
' "ref": "refs/heads/main",'
' "repo": {'
' "host": "chromium.googlesource.com",'
' "project": "chromium/src"'
' }'
' }'
' },'
' "builder_group": "chromium.linux",'
' "led_builder_is_bootstrapped": true,'
' "recipe": "chromium"'
'}'
execution_timeout_secs: 10800
build_numbers: YES
service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
experiments {
key: "chromium.use_per_builder_build_dir_name"
value: 100
}
experiments {
key: "luci.recipes.use_python3"
value: 100
}
resultdb {
enable: true
bq_exports {
project: "chrome-luci-data"
dataset: "chromium"
table: "ci_test_results"
test_results {}
}
bq_exports {
project: "chrome-luci-data"
dataset: "chromium"
table: "gpu_ci_test_results"
test_results {
predicate {
test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
}
}
}
bq_exports {
project: "chrome-luci-data"
dataset: "chromium"
table: "blink_web_tests_ci_test_results"
test_results {
predicate {
test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
}
}
}
history_options {
use_invocation_timestamp: true
}
}
description_html: "Runs Wayland tests on Mutter. See the <a href=\"https://chromium.googlesource.com/chromium/src/+/main/docs/ozone_overview.md#wayland\">ozone wayland doc</a> for details.<br/>This builder is mirrored by any of the following try builders:<br/><ul><li><a href=\"https://ci.chromium.org/p/chromium/builders/try/linux-wayland-mutter-rel\">linux-wayland-mutter-rel</a></li></ul><br/>Builder owner: <a href=mailto:chrome-linux-engprod@google.com>chrome-linux-engprod@google.com</a>"
shadow_builder_adjustments {
service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
pool: "luci.chromium.try"
dimensions: "free_space:"
dimensions: "pool:luci.chromium.try"
}
contact_team_email: "chrome-linux-engprod@google.com"
custom_metric_definitions {
name: "/chrome/infra/browser/builds/cached_count"
predicates: "has(build.output.properties.is_cached)"
predicates: "string(build.output.properties.is_cached) == \"true\""
}
custom_metric_definitions {
name: "/chrome/infra/browser/builds/ran_tests_retry_shard_count"
predicates: "has(build.output.properties.ran_tests_retry_shard)"
}
custom_metric_definitions {
name: "/chrome/infra/browser/builds/ran_tests_without_patch_count"
predicates: "has(build.output.properties.ran_tests_without_patch)"
}
custom_metric_definitions {
name: "/chrome/infra/browser/builds/uncached_count"
predicates: "has(build.output.properties.is_cached)"
predicates: "string(build.output.properties.is_cached) == \"false\""
}
}
builders {
name: "linux-win-cross-clang-tot-rel"
swarming_host: "chromium-swarm.appspot.com"
@ -117627,6 +117737,118 @@ buckets {
predicates: "string(build.output.properties.is_cached) == \"false\""
}
}
builders {
name: "linux-wayland-mutter-rel"
swarming_host: "chromium-swarm.appspot.com"
dimensions: "builderless:1"
dimensions: "cores:8"
dimensions: "cpu:x86-64"
dimensions: "free_space:standard"
dimensions: "os:Ubuntu-22.04"
dimensions: "pool:luci.chromium.try"
dimensions: "ssd:1"
exe {
cipd_package: "infra/chromium/bootstrapper/${platform}"
cipd_version: "latest"
cmd: "bootstrapper"
}
properties:
'{'
' "$bootstrap/exe": {'
' "exe": {'
' "cipd_package": "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",'
' "cipd_version": "refs/heads/main",'
' "cmd": ['
' "luciexe"'
' ]'
' }'
' },'
' "$bootstrap/properties": {'
' "properties_file": "infra/config/generated/builders/try/linux-wayland-mutter-rel/properties.json",'
' "top_level_project": {'
' "ref": "refs/heads/main",'
' "repo": {'
' "host": "chromium.googlesource.com",'
' "project": "chromium/src"'
' }'
' }'
' },'
' "builder_group": "tryserver.chromium.linux",'
' "led_builder_is_bootstrapped": true,'
' "recipe": "chromium_trybot"'
'}'
execution_timeout_secs: 14400
expiration_secs: 7200
grace_period {
seconds: 120
}
build_numbers: YES
service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
experiments {
key: "chromium.use_per_builder_build_dir_name"
value: 100
}
experiments {
key: "luci.buildbucket.canary_software"
value: 5
}
experiments {
key: "luci.recipes.use_python3"
value: 100
}
resultdb {
enable: true
bq_exports {
project: "chrome-luci-data"
dataset: "chromium"
table: "try_test_results"
test_results {}
}
bq_exports {
project: "chrome-luci-data"
dataset: "chromium"
table: "gpu_try_test_results"
test_results {
predicate {
test_id_regexp: "ninja://(chrome|content)/test:telemetry_gpu_integration_test[^/]*/.+"
}
}
}
bq_exports {
project: "chrome-luci-data"
dataset: "chromium"
table: "blink_web_tests_try_test_results"
test_results {
predicate {
test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)|(ninja://[^/]*headless_shell_wpt/.+)"
}
}
}
history_options {
use_invocation_timestamp: true
}
}
description_html: "This builder mirrors the following CI builders:<br/><ul><li><a href=\"https://ci.chromium.org/p/chromium/builders/ci/Linux Builder (Wayland)\">Linux Builder (Wayland)</a></li><li><a href=\"https://ci.chromium.org/p/chromium/builders/ci/linux-wayland-mutter-rel-tests\">linux-wayland-mutter-rel-tests</a></li></ul><br/>Builder owner: <a href=mailto:chrome-linux-engprod@google.com>chrome-linux-engprod@google.com</a>"
contact_team_email: "chrome-linux-engprod@google.com"
custom_metric_definitions {
name: "/chrome/infra/browser/builds/cached_count"
predicates: "has(build.output.properties.is_cached)"
predicates: "string(build.output.properties.is_cached) == \"true\""
}
custom_metric_definitions {
name: "/chrome/infra/browser/builds/ran_tests_retry_shard_count"
predicates: "has(build.output.properties.ran_tests_retry_shard)"
}
custom_metric_definitions {
name: "/chrome/infra/browser/builds/ran_tests_without_patch_count"
predicates: "has(build.output.properties.ran_tests_without_patch)"
}
custom_metric_definitions {
name: "/chrome/infra/browser/builds/uncached_count"
predicates: "has(build.output.properties.is_cached)"
predicates: "string(build.output.properties.is_cached) == \"false\""
}
}
builders {
name: "linux-wayland-rel"
swarming_host: "chromium-swarm.appspot.com"

@ -1748,6 +1748,11 @@ consoles {
category: "chromium.gpu|Android"
short_name: "P2"
}
builders {
name: "buildbucket/luci.chromium.ci/linux-wayland-mutter-rel-tests"
category: "chromium.fyi|linux"
short_name: "tst-mt"
}
builders {
name: "buildbucket/luci.chromium.ci/android-desktop-arm64-compile-dbg"
category: "chromium.android.desktop|builder|arm64"
@ -14735,6 +14740,11 @@ consoles {
category: "linux"
short_name: "rr"
}
builders {
name: "buildbucket/luci.chromium.ci/linux-wayland-mutter-rel-tests"
category: "linux"
short_name: "tst-mt"
}
builders {
name: "buildbucket/luci.chromium.ci/linux-blink-wpt-3pcd-fyi-rel"
category: "linux|blink"
@ -25984,6 +25994,9 @@ consoles {
builders {
name: "buildbucket/luci.chromium.try/linux-viz-rel"
}
builders {
name: "buildbucket/luci.chromium.try/linux-wayland-mutter-rel"
}
builders {
name: "buildbucket/luci.chromium.try/linux-wayland-rel"
}
@ -27460,6 +27473,9 @@ consoles {
builders {
name: "buildbucket/luci.chromium.try/linux-viz-rel"
}
builders {
name: "buildbucket/luci.chromium.try/linux-wayland-mutter-rel"
}
builders {
name: "buildbucket/luci.chromium.try/linux-wayland-rel"
}

@ -3811,6 +3811,19 @@ notifiers {
repository: "https://chromium.googlesource.com/chromium/src"
}
}
notifiers {
notifications {
on_occurrence: FAILURE
failed_step_regexp: "\\b(bot_update|compile|gclient runhooks|generate_build_files|runhooks|update|\\w*nocompile_test)\\b"
email {
recipients: "thomasanderson@chromium.org"
}
}
builders {
bucket: "ci"
name: "linux-wayland-mutter-rel-tests"
}
}
notifiers {
notifications {
on_change: true

@ -5393,6 +5393,15 @@ job {
builder: "linux-v4l2-codec-rel"
}
}
job {
id: "linux-wayland-mutter-rel-tests"
realm: "ci"
buildbucket {
server: "cr-buildbucket.appspot.com"
bucket: "ci"
builder: "linux-wayland-mutter-rel-tests"
}
}
job {
id: "linux-win-cross-clang-tot-rel"
realm: "ci"

@ -267,6 +267,7 @@ realms {
values: "linux-oi-rel"
values: "linux-updater-tester-dbg"
values: "linux-updater-tester-rel"
values: "linux-wayland-mutter-rel-tests"
values: "mac-fieldtrial-tester"
values: "mac-skia-alt-arm64-rel-tests"
values: "mac11-arm64-enterprise-companion-tester-dbg"

@ -857,6 +857,7 @@ gn_args.config(
"ozone_platform_wayland": True,
"ozone_platform": "wayland",
"use_bundled_weston": True,
"use_bundled_mutter": True,
},
)

@ -11,6 +11,7 @@ load("//lib/builders.star", "builders", "gardener_rotations", "os", "siso")
load("//lib/ci.star", "ci")
load("//lib/consoles.star", "consoles")
load("//lib/gn_args.star", "gn_args")
load("//lib/html.star", "linkify")
load("//lib/targets.star", "targets")
ci.defaults.set(
@ -740,6 +741,82 @@ ci.thin_tester(
contact_team_email = "chrome-linux-engprod@google.com",
)
ci.thin_tester(
# TODO(crbug.com/401284929): Put common config with "Linux Tests (Wayland)" in shared bundle.
name = "linux-wayland-mutter-rel-tests",
# TODO(crbug.com/401284929): Uncomment when enabling gardener_rotations and tree_closing.
# branch_selector = branches.selector.LINUX_BRANCHES,
description_html =
"Runs Wayland tests on Mutter. See the {} for details.".format(
linkify(
"https://chromium.googlesource.com/chromium/src/+/main/docs/ozone_overview.md#wayland",
"ozone wayland doc",
),
),
triggered_by = ["ci/Linux Builder (Wayland)"],
builder_spec = builder_config.builder_spec(
execution_mode = builder_config.execution_mode.TEST,
gclient_config = builder_config.gclient_config(
config = "chromium",
apply_configs = [
"use_clang_coverage",
],
),
chromium_config = builder_config.chromium_config(
config = "chromium",
apply_configs = [
"mb",
],
build_config = builder_config.build_config.RELEASE,
target_bits = 64,
target_platform = builder_config.target_platform.LINUX,
),
build_gs_bucket = "chromium-linux-archive",
),
targets = targets.bundle(
targets = [
"chromium_gtests_for_linux_wayland_mutter",
],
mixins = [
targets.mixin(
args = [
"--no-xvfb",
"--use-mutter",
"--ozone-platform=wayland",
],
),
"linux-noble",
"isolate_profile_data",
],
per_test_modifications = {
"interactive_ui_tests": targets.mixin(
# https://crbug.com/1192997
args = [
"--test-launcher-filter-file=../../testing/buildbot/filters/ozone-linux.interactive_ui_tests_mutter.filter",
],
swarming = targets.swarming(
shards = 5,
),
),
},
),
############################################################################
# TODO(crbug.com/401284929) Remove this section once mutter tests are stable
############################################################################
gardener_rotations = args.ignore_default(None),
tree_closing = False,
console_view_entry = consoles.console_view_entry(
console_view = "chromium.fyi",
category = "linux",
short_name = "tst-mt",
),
main_console_view = None,
############################################################################
cq_mirrors_console_view = "mirrors",
contact_team_email = "chrome-linux-engprod@google.com",
)
# For documentation, see //services/network/README.md.
ci.builder(
name = "Network Service Linux",

@ -563,6 +563,44 @@ try_.builder(
use_clang_coverage = True,
)
try_.builder(
name = "linux-wayland-mutter-rel",
# TODO(crbug.com/401284929): Uncomment when adding to CQ.
# branch_selector = branches.selector.LINUX_BRANCHES,
mirrors = [
"ci/Linux Builder (Wayland)",
"linux-wayland-mutter-rel-tests",
],
gn_args = gn_args.config(
configs = [
"ci/Linux Builder (Wayland)",
"release_try_builder",
"use_clang_coverage",
"partial_code_coverage_instrumentation",
],
),
ssd = True,
# TODO(crbug.com/329118490): Re-enable flake endorser.
check_for_flakiness = False,
check_for_flakiness_with_resultdb = False,
contact_team_email = "chrome-linux-engprod@google.com",
coverage_test_types = ["unit", "overall"],
# TODO(crbug.com/401284929): Uncomment to add this try builder to CQ once tests are stable on mutter.
# tryjob = try_.job(
# location_filters = [
# "chrome/browser/.+(ui|browser)test.+",
# "chrome/browser/ui/views/.+test.+",
# "chrome/browser/ui/views/tabs/.+",
# "testing/xvfb\\.py",
# "third_party/wayland/.+",
# "third_party/wayland-protocols/.+",
# "ui/ozone/platform/wayland/.+",
# "ui/views/widget/.+test.+",
# ],
# ),
use_clang_coverage = True,
)
try_.builder(
name = "linux-viz-rel",
mirrors = ["ci/Linux Viz"],

@ -1630,6 +1630,13 @@ targets.bundle(
],
)
targets.bundle(
name = "chromium_gtests_for_linux_wayland_mutter",
targets = [
"interactive_ui_tests",
],
)
targets.bundle(
name = "chromium_ios_scripts",
targets = [

@ -394,6 +394,7 @@ source_set("interactive_ui_tests_filters") {
"//testing/buildbot/filters/mac.mac11-arm64-rel.interactive_ui_tests.filter",
"//testing/buildbot/filters/mac.mac-rel-cft.interactive_ui_tests.filter",
"//testing/buildbot/filters/ozone-linux.interactive_ui_tests.filter",
"//testing/buildbot/filters/ozone-linux.interactive_ui_tests_mutter.filter",
"//testing/buildbot/filters/ozone-linux.interactive_ui_tests_wayland.filter",
"//testing/buildbot/filters/pixel_tests.filter",
"//testing/buildbot/filters/win.win-rel-cft.interactive_ui_tests.filter",

@ -0,0 +1,78 @@
############################################################
# Tests that were failing on weston and still fail on mutter
############################################################
# TODO(crbug.com/40759171): implement the feature for Wayland.
-GlobalCommandsApiTest.GlobalCommand
# TODO(crbug.com/373738727): Extremely flaky on the bot, locally only sometimes times out.
-BookmarkBarViewTest4.ContextMenus
# Failing interactive ui tests
-BookmarkBarViewTest29.DNDToEmptyMenu
-BookmarkBarViewTest7.DNDToDifferentMenu
-BookmarkBarViewTest8.DNDBackToOriginatingMenu
-BrowserFocusTest.BackgroundBrowserDontStealFocus
-ChromeVisibilityObserverInteractiveTest.VisibilityTest
-DesktopWidgetTestInteractive.DesktopNativeWidgetWithModalTransientChild
-DesktopWindowTreeHostPlatformImplTest.CaptureEventForwarding
-DesktopWindowTreeHostPlatformImplTest.Deactivate
-DesktopWindowTreeHostPlatformImplTest.InputMethodFocus
-ExtensionApiTest.WindowOpenFocus
-MediaDialogViewBrowserTest.PictureInPicture
-NotificationsTestWithFakeMediaStream.ShouldQueueDuringScreenPresent
-PasswordBubbleInteractiveUiTest.AutoSigninNoFocus
-PopupBlockerBrowserTest.ModalPopUnder
-StartupBrowserCreatorTest.LastUsedProfileActivated
-WebAppProfileSwitcherBrowserTest.SwitchWebAppProfileActivateWindowOnly
-WidgetInputMethodInteractiveTest.Activation
-WidgetInputMethodInteractiveTest.OneWindow
-WidgetInputMethodInteractiveTest.TwoWindows
# Extremely flaky.
-BookmarkBarViewTest18.BookmarkBarViewTest18_SiblingMenu
# TODO(crbug.com/40758956): flaky fullscreen notification test
-NotificationsTest.TestShouldDisplayMultiFullscreen
# TODO(crbug.com/40175111): Flaky.
-BrowserActionInteractiveTest.TestOpenPopup
# TODO(crbug.com/40923067): Enable when feature isn't buggy any more. (Used to pass with Weston 9,
# but doesn't pass with Weston 12. Flaky on mutter as well.)
-FullscreenControlViewTest.MouseAndTouchInteraction_NoInterference
-FullscreenControlViewTest.MouseExitFullscreen_TimeoutAndRetrigger
# These cannot work because they rely on receiving key events during a DnD session, which isn't
# possible on Linux Wayland.
-TabDragging/DetachToBrowserTabDragControllerTest.KeyPressShouldEndDragTest/*
-TabDragging/DetachToBrowserTabDragControllerTest.Revert*
# TODO(crbug.com/40800718): Enable once the xdg desktop portal backed implementation is in place.
-EyeDropperViewAuraInteractiveTest.*
########################################################
# Tests that have regressed in mutter compared to weston
########################################################
# TODO(crbug.com/391903220) Now flaky on mutter
-GlicBorderViewUiTest.BorderResize
-ExtensionsMenuMainPageViewInteractiveTest.ContextMenuButtonOpensContextMenu
-AnimationTimingTestSuiteInstantiation/PictureInPictureBrowserFrameViewTest.TestAnimationTiming/WithoutContentSettingView_WithoutBackToTabButton
-AnimationTimingTestSuiteInstantiation/PictureInPictureBrowserFrameViewTest.TestAnimationTiming/WithoutContentSettingView_WithBackToTabButton
-PictureInPictureBrowserFrameViewTest.RespectsUserLocationChangesAfterChildDialogCloses
-BrowserFocusTest.ClickingMovesFocus
-BrowserViewTest.FullscreenClearsFocus
-ToastControllerInteractiveTest.HidesWhenOmniboxPopupShows
-All/TypedNavigationUpgradeThrottleBrowserTest.PasteUrlWithoutASchemeAndHitEnter_GoodHttps/1
# Pointer lock tests are unstable and some crash on exit
-FullscreenControllerInteractiveTest.*PointerLock*
# TODO(crbug.com/391907155) These tab drag tests are failing.
-TabDragging/DetachToBrowserTabDragControllerTest.DragAllToSeparateWindow/*
-TabDragging/DetachToBrowserTabDragControllerTest.DragAllToSeparateWindowThenDrop/*
-TabDragging/DetachToBrowserTabDragControllerTest.DragCollapsedGroupHeaderToSeparateWindow/*
-TabDragging/DetachToBrowserTabDragControllerTest.DragToSeparateWindow/*
-TabDragging/DetachToBrowserTabDragControllerTest.DragToSeparateWindowAttemptToSpawnDoubleNestedRunLoop/*
-TabDragging/DetachToBrowserTabDragControllerTest.DragToSeparateWindowDuringDragEnd/*
-TabDragging/DetachToBrowserTabDragControllerTest.DragWindowIntoGroup/*

@ -611,18 +611,6 @@ def _weston_config_file_path():
def _run_with_mutter(cmd, env, stdoutfile, cwd):
# Ensure mutter is checked out first.
if not os.path.isdir(
os.path.join(os.path.dirname(__file__), '..', 'third_party', 'mutter',
'src')):
print(
'In order to run tests using mutter, its sources need to be checked out'
' explicitly and built.\n'
'Add \'"checkout_mutter": True\' in the "custom_vars" section of your'
' .gclient file, and run gclient sync.\n'
'Then build the test executable or mutter and run this script again.',
file=sys.stderr)
return 1
with dbus_session(env):
mutter_proc = None
@ -631,6 +619,19 @@ def _run_with_mutter(cmd, env, stdoutfile, cwd):
compositor_found, cmd = _run_with_wayland_common(mutter_executable, cmd,
env)
if not compositor_found:
# Ensure mutter is checked out if the compositor is not found.
if not os.path.isdir(
os.path.join(os.path.dirname(__file__), '..', 'third_party',
'mutter', 'src')):
print(
'In order to run tests using mutter, its sources need to be '
'checked outexplicitly and built.\n'
'Add \'"checkout_mutter": True\' in the "custom_vars" section '
'of your .gclient file, and run gclient sync.\n'
'Then build the test executable or mutter and run this script '
'again.',
file=sys.stderr)
return 1
return test_env.run_executable(cmd, env, stdoutfile, cwd)
# Use headless wayland backend with a virtual monitor of appropriate size.