| # Copyright 2018 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| assert(is_chromeos) |
| |
| declare_args() { |
| cros_board = getenv("SDK_BOARD") |
| cros_sdk_version = getenv("SDK_VERSION") |
| } |
| |
| template("generate_vm_runner_script") { |
| _cache_path_prefix = |
| "//build/cros_cache/chrome-sdk/tarballs/${cros_board}+${cros_sdk_version}" |
| _vm_image_path = "${_cache_path_prefix}+chromiumos_qemu_image.tar.xz/" |
| _qemu_dir = "${_cache_path_prefix}+app-emulation/" |
| |
| action(target_name) { |
| forward_variables_from(invoker, |
| [ |
| "testonly", |
| "need_toolchain", |
| ]) |
| |
| script = "//build/chromeos/create_vm_test_script.py" |
| |
| outputs = [ |
| invoker.generated_script, |
| ] |
| |
| data = [ |
| # We use android test-runner's results libs to construct gtest output |
| # json. |
| "//build/android/pylib/__init__.py", |
| "//build/android/pylib/base/", |
| "//build/android/pylib/results/", |
| invoker.generated_script, |
| "//build/chromeos/", |
| "//build/cros_cache/chrome-sdk/misc/", |
| |
| # The LKGM file controls what version of the VM image to download. Add it |
| # as data here so that changes to it will trigger analyze. |
| "//chromeos/CHROMEOS_LKGM", |
| "//third_party/chromite/", |
| _vm_image_path, |
| _qemu_dir, |
| ] |
| if (defined(need_toolchain) && need_toolchain) { |
| data += [ "${_cache_path_prefix}+target_toolchain/" ] |
| } |
| |
| # Required arguments used at build time by the runner script generator. |
| args = [ |
| "--script-output-path", |
| rebase_path(invoker.generated_script, root_build_dir), |
| "--cros-cache", |
| rebase_path("//build/cros_cache/", root_build_dir), |
| "--board", |
| cros_board, |
| ] |
| |
| # When --test-exe is specified, run_vm_test will push the exe to the VM and |
| # execute it. Otherwise it wraps a host-side command and just takes care |
| # launching & tearing-down the VM. |
| if (defined(invoker.test_exe)) { |
| args += [ |
| "--test-exe", |
| rebase_path(invoker.test_exe, root_build_dir), |
| "--output-directory", |
| rebase_path(root_out_dir, root_build_dir), |
| ] |
| if (defined(invoker.runtime_deps_file)) { |
| args += [ |
| "--runtime-deps-path", |
| rebase_path(invoker.runtime_deps_file, root_build_dir), |
| ] |
| } |
| } |
| } |
| } |