| # Copyright 2019 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/packages/prebuilt_package.gni") |
| import("//build/testing/test_spec.gni") |
| |
| # Describes a prebuilt package of tests. |
| # |
| # Parameters |
| # |
| # archive (required) |
| # [string] Path to archive containing a package. |
| # |
| # package (optional) |
| # [string] Name of the package. |
| # |
| # component_name (required) |
| # [string] Component name to test. |
| # |
| # runner (required) |
| # [string] The runner used to execute the test(run|run_test_component). |
| # |
| # environments (optional, default: [ { dimensions = { device_type = "QEMU" } } ]) |
| # [list of scopes] Device environments in which the test should run. |
| # |
| # Environment scope is defined in //build/testing/test_spec.gni |
| # |
| # deps (optional) |
| # [list of labels]: List of labels that the test depends on. |
| # |
| template("prebuilt_test_package") { |
| assert(defined(invoker.archive), "archive must be defined.") |
| assert(defined(invoker.component_name), "component_name must be defined.") |
| assert(defined(invoker.runner), "runner must be defined.") |
| |
| package_name = target_name |
| if (defined(invoker.package)) { |
| package_name = invoker.package |
| } |
| package_deps = [] |
| |
| if (invoker.runner == "run") { |
| package_deps += [ "//garnet/packages/prod:run" ] |
| } else if (invoker.runner == "run_test_component") { |
| package_deps += [ "//garnet/packages/testing:run_test_component" ] |
| } else { |
| assert( |
| false, |
| "unexpected runner \"${invoker.runner}; must be one of \"run\" or \"run_test_component\"") |
| } |
| main_target_name = target_name |
| spec_target_name = "${target_name}_${invoker.component_name}_spec" |
| test_spec(spec_target_name) { |
| name = main_target_name |
| target = main_target_name |
| package_url = "fuchsia-pkg://fuchsia.com/${package_name}#meta/${invoker.component_name}.cmx" |
| command = [ |
| "${invoker.runner}", |
| package_url, |
| ] |
| |
| forward_variables_from(invoker, |
| [ |
| "deps", |
| "environments", |
| ]) |
| } |
| package_deps += [ ":$spec_target_name" ] |
| |
| prebuilt_package(target_name) { |
| package_name = package_name |
| testonly = true |
| archive = invoker.archive |
| deps = package_deps |
| } |
| } |