| # 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", |
| ] |
| } |