blob: 7af43d44ae7085fab0937e5a9db87b7b0e20ef36 [file] [log] [blame]
# Copyright 2022 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/components.gni")
import("//sdk/ctf/build/ctf.gni")
group("tests") {
testonly = true
deps = [
":focus-conformance-test",
":key-conformance-test",
":media-button-conformance-test",
":mouse-conformance-test",
":touch-conformance-test",
]
}
group("ctf-tests") {
testonly = true
deps = [
":focus-test-suite_archive",
":key-test-suite_archive",
":media-button-test-suite_archive",
":mouse-test-suite_archive",
":touch-test-suite_archive",
]
}
source_set("conformance-test-base") {
testonly = true
sources = [
"conformance-test-base.cc",
"conformance-test-base.h",
]
output_name = "conformance-test-base"
public_deps = [
"//sdk/fidl/fuchsia.testing.harness:fuchsia.testing.harness_cpp",
"//sdk/fidl/fuchsia.ui.test.context:fuchsia.ui.test.context_cpp",
"//sdk/lib/component/incoming/cpp",
"//sdk/lib/syslog/cpp",
"//src/ui/testing/util:fidl_cpp_helpers",
"//src/ui/testing/util:loop_fixture",
"//src/ui/testing/util:zxtest_helpers",
"//zircon/system/ulib/zxtest",
]
}
# Generate CTF tests required package format.
#
# Usage:
#
# ```
# ctf_components_packages("the-test-name") {
# test_subject = "prefix of the test, for example: touch"
# deps = [
# "deps for *.cc test body"
# ]
# }
# ```
#
# To run the test: fx test the-test-name
#
# This requires file name in format:
# - cc test code: $prefix-validator.cc
# - validator cml: $prefix-validator.cml
# - test root cml: #prefix-conformance-test.cml
#
# Topology:
#
# test package: *-conformance-test
# component: *-conformance-test-component (test root)
# ---------------------------------------------------------------------------
# Latest Code | Latest code and Build archives
# ---------------------------------------------------------------------------
# package: ui-context-factory | package: *-test-suites
# (real factory) | component: *-validator
# | bin: *-validator-bin (test codes)
# | component: ui-puppet-component
# | (test app)
# ↑
# fuchsia.ui.test.context.RealmFactory
template("ctf_components_packages") {
test_subject = invoker.test_subject
assert(defined(test_subject), "test_subject must be provided")
executable("${test_subject}-validator-bin") {
testonly = true
sources = [ "${test_subject}-validator.cc" ]
output_name = "${test_subject}-validator"
deps = invoker.deps
}
fuchsia_component("${test_subject}-validator") {
testonly = true
manifest = "meta/${test_subject}-validator.cml"
deps = [ ":${test_subject}-validator-bin" ]
}
ctf_fuchsia_package("${test_subject}-test-suite") {
package_name = "${test_subject}-test-suite"
testonly = true
deps = [
":${test_subject}-validator",
"//src/ui/testing/puppet:ui-puppet-component",
]
}
_test_component_target = "${test_subject}-conformance-test-component"
fuchsia_test_component("$_test_component_target") {
testonly = true
component_name = "${test_subject}-conformance-test"
manifest = "meta/${test_subject}-conformance-test.cml"
test_type = "ctf"
}
fuchsia_test_package(target_name) {
test_components = [ ":$_test_component_target" ]
subpackages = [
":${test_subject}-test-suite",
"//src/ui/testing/context:ui-context-factory",
]
test_specs = {
log_settings = {
max_severity = "ERROR"
}
environments = [
{
dimensions = {
# Ensure the device has Vulkan.
device_type = "AEMU"
}
},
]
}
}
}
ctf_components_packages("touch-conformance-test") {
test_subject = "touch"
deps = [
":conformance-test-base",
"//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_cpp",
"//sdk/fidl/fuchsia.ui.display.singleton:fuchsia.ui.display.singleton_cpp",
"//sdk/fidl/fuchsia.ui.input3:fuchsia.ui.input3_cpp",
"//sdk/fidl/fuchsia.ui.pointer:fuchsia.ui.pointer_cpp",
"//sdk/fidl/fuchsia.ui.test.conformance:fuchsia.ui.test.conformance_cpp",
"//sdk/fidl/fuchsia.ui.test.input:fuchsia.ui.test.input_cpp",
"//sdk/fidl/fuchsia.ui.test.scene:fuchsia.ui.test.scene_cpp",
"//sdk/lib/ui/scenic/cpp",
]
}
ctf_components_packages("mouse-conformance-test") {
test_subject = "mouse"
deps = [
":conformance-test-base",
"//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_cpp",
"//sdk/fidl/fuchsia.ui.display.singleton:fuchsia.ui.display.singleton_cpp",
"//sdk/fidl/fuchsia.ui.input3:fuchsia.ui.input3_cpp",
"//sdk/fidl/fuchsia.ui.test.conformance:fuchsia.ui.test.conformance_cpp",
"//sdk/fidl/fuchsia.ui.test.input:fuchsia.ui.test.input_cpp",
"//sdk/fidl/fuchsia.ui.test.scene:fuchsia.ui.test.scene_cpp",
"//sdk/lib/ui/scenic/cpp",
]
}
ctf_components_packages("key-conformance-test") {
test_subject = "key"
deps = [
":conformance-test-base",
"//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_cpp",
"//sdk/fidl/fuchsia.ui.display.singleton:fuchsia.ui.display.singleton_cpp",
"//sdk/fidl/fuchsia.ui.focus:fuchsia.ui.focus_cpp",
"//sdk/fidl/fuchsia.ui.input3:fuchsia.ui.input3_cpp",
"//sdk/fidl/fuchsia.ui.test.conformance:fuchsia.ui.test.conformance_cpp",
"//sdk/fidl/fuchsia.ui.test.input:fuchsia.ui.test.input_cpp",
"//sdk/fidl/fuchsia.ui.test.scene:fuchsia.ui.test.scene_cpp",
"//sdk/lib/ui/scenic/cpp",
"//src/lib/fsl",
]
}
ctf_components_packages("focus-conformance-test") {
test_subject = "focus"
deps = [
":conformance-test-base",
"//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_cpp",
"//sdk/fidl/fuchsia.ui.display.singleton:fuchsia.ui.display.singleton_cpp",
"//sdk/fidl/fuchsia.ui.focus:fuchsia.ui.focus_cpp",
"//sdk/fidl/fuchsia.ui.input3:fuchsia.ui.input3_cpp",
"//sdk/fidl/fuchsia.ui.test.conformance:fuchsia.ui.test.conformance_cpp",
"//sdk/fidl/fuchsia.ui.test.scene:fuchsia.ui.test.scene_cpp",
"//sdk/lib/ui/scenic/cpp",
"//src/lib/fsl",
]
}
ctf_components_packages("media-button-conformance-test") {
test_subject = "media-button"
deps = [
":conformance-test-base",
"//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_cpp",
"//sdk/fidl/fuchsia.ui.display.singleton:fuchsia.ui.display.singleton_cpp",
"//sdk/fidl/fuchsia.ui.focus:fuchsia.ui.focus_cpp",
"//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input_cpp",
"//sdk/fidl/fuchsia.ui.input3:fuchsia.ui.input3_cpp",
"//sdk/fidl/fuchsia.ui.policy:fuchsia.ui.policy_cpp",
"//sdk/fidl/fuchsia.ui.test.conformance:fuchsia.ui.test.conformance_cpp",
"//sdk/fidl/fuchsia.ui.test.scene:fuchsia.ui.test.scene_cpp",
"//sdk/lib/ui/scenic/cpp",
"//src/lib/fostr/fidl/fuchsia.ui.input",
"//src/lib/fsl",
]
}