| # 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/config/fuchsia/zircon.gni") |
| import("//build/go/go_library.gni") |
| import("//build/testing/host_test_data.gni") |
| |
| # Currently, we only support working with the QEMU simulator on Linux. |
| if (is_linux) { |
| # The infrastructure does not provide a way for host tests to access |
| # qemu, so we need to archive our own copy of qemu from the source |
| # tree. |
| action("archive") { |
| testonly = true |
| visibility = [ ":*" ] |
| |
| archive_path = "$root_out_dir/test_data/qemu/qemu.tar.gz" |
| outputs = [ archive_path ] |
| |
| depfile = "${archive_path}.d" |
| |
| script = "archive.py" |
| |
| args = [ |
| "--src", |
| rebase_path("//prebuilt/third_party/qemu/${host_platform}"), |
| "--dst", |
| rebase_path(archive_path, root_build_dir), |
| "--depfile", |
| rebase_path(depfile, root_build_dir), |
| ] |
| } |
| |
| host_test_data("kernel") { |
| visibility = [ ":*" ] |
| |
| if (target_cpu == "arm64") { |
| kernel_binary = "qemu-boot-shim.bin" |
| deps = [ "//zircon/kernel/target/arm64/boot-shim:qemu" ] |
| } else if (target_cpu == "x64") { |
| kernel_binary = "multiboot.bin" |
| deps = [ "//zircon/kernel/target/pc/multiboot" ] |
| } else { |
| assert(false, "CPU not supported") |
| } |
| |
| sources = [ "$root_build_dir/$kernel_binary" ] |
| outputs = [ "$root_out_dir/test_data/qemu/$kernel_binary" ] |
| } |
| |
| target_cpu_txt = "$root_out_dir/test_data/qemu/target_cpu.txt" |
| generated_file("target_cpu_txt") { |
| testonly = true |
| contents = target_cpu |
| outputs = [ target_cpu_txt ] |
| } |
| |
| host_test_data("test_data") { |
| sources = [ target_cpu_txt ] + get_target_outputs(":archive") |
| deps = [ |
| ":archive", |
| ":kernel", |
| ":target_cpu_txt", |
| ] |
| } |
| |
| go_library("qemu") { |
| testonly = true |
| non_go_deps = [ |
| ":archive", |
| ":kernel", |
| ":test_data", |
| ] |
| sources = [ "qemu.go" ] |
| } |
| } |