| # Copyright 2017 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. |
| |
| # We follow these conventions for the organization of the sources, build rules, |
| # and packages here: |
| # |
| # 1. All the binaries used in tests are run through a basemgr invocation |
| # configured in modular_tests.json. It usually does not ever make sense to |
| # run a test component binary directly, especially not as a test. Therefore, |
| # all binaries are deployed in their own packages, so that they are not run |
| # automatically by roller scripts. Instead, only the run_modular_tests.sh |
| # script is present in /system/test/, which then invokes the test runner, |
| # which in turn invokes all the test component binaries in the right |
| # configuration. |
| # |
| # 2. The component binary as well as its package is named with a prefix that |
| # tells the test it belongs to, followed by "_test", optionally followed by a |
| # name component indicating its function if there are multiple components of |
| # the same type in a single test, followed a suffix indicating the component |
| # type. This way, all components belonging to the same test are |
| # lexicographically sorted together. |
| # |
| # 3. Common components shared between tests are named after their function |
| # followed by a suffix indicating the component type. |
| # |
| # 4. The suffix that indicates the component type (i.e. the primary service |
| # provided by the component) is: |
| # |
| # - _module -- Module |
| # - _agent -- Agent |
| # - _session_shell -- SessionShell |
| # - _base_shell -- BaseShell |
| # - _story_shell -- StoryShell |
| # - _service -- FIDL interfaces |
| # |
| # 5. The main sources of the components are named like the binaries they create. |
| # |
| # |
| # HOW TO ADD A NEW INTEGRATION TEST |
| # |
| # 1. Add a new subdirectory with rules for the test components (session shells, |
| # modules, agents). Define all test components as executable_package()s. |
| # |
| # 2. Add the newly defined packages for all test components to |
| # //peridot/packages/tests/modular. |
| # |
| # 3. Add an entry for the test to modular_tests.json. |
| |
| import("//build/package.gni") |
| import("//build/testing/environments.gni") |
| |
| group("tests") { |
| testonly = true |
| deps = [ |
| "benchmarks", |
| "clipboard", |
| "common", |
| "component_context", |
| "embed_shell", |
| "intents", |
| "last_focus_time", |
| "maxwell_integration", |
| "modular_config", |
| "module_context", |
| "parent_child", |
| "queue_persistence", |
| "session_shell", |
| "sessionctl", |
| "story_shell", |
| "story_shell_factory", |
| "suggestion", |
| "trigger", |
| ] |
| } |
| |
| package("modular_tests") { |
| testonly = true |
| |
| tests = [ |
| { |
| name = rebase_path("run_modular_tests.sh") |
| dest = "run_modular_tests.sh" |
| environments = basic_envs |
| }, |
| ] |
| |
| resources = [ |
| { |
| path = rebase_path("modular_tests.json") |
| dest = "modular_tests.json" |
| }, |
| ] |
| } |