blob: 6e841af1f96368dc6f3c1d964c7ef4507987ba1c [file] [log] [blame]
# Copyright 2020 The Fuchsia Authors
#
# Use of this source code is governed by a MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT
import("//build/testing/zbi_test.gni")
import("//build/zbi/zbi_input.gni")
import("//zircon/kernel/lib/code-patching/code-patching.gni")
import("//zircon/kernel/phys/zbi_executable.gni")
code_patching_hermetic_alternative("multiply_by_two") {
testonly = true
visibility = [ ":*" ]
sources = [ "multiply_by_two.S" ]
deps = [ "//zircon/kernel/lib/arch:headers" ]
}
code_patching_hermetic_alternative("multiply_by_ten") {
testonly = true
visibility = [ ":*" ]
sources = [ "multiply_by_ten.S" ]
deps = [ "//zircon/kernel/lib/arch:headers" ]
}
code_patching_hermetic_stub("multiply_by_factor") {
case_id_header = "test.h"
testonly = true
visibility = [ ":*" ]
deps = [
":multiply_by_ten",
":multiply_by_two",
]
include_dirs = [ "." ]
}
code_patching_hermetic_embedding("embedding") {
testonly = true
deps = [ ":multiply_by_factor" ]
}
zbi_executable("zbi-code-patching-test.executable") {
testonly = true
sources = [
"add-one.S",
"test.cc",
]
deps = [
":embedding",
":multiply_by_factor",
"..:zbi-test-main",
"//zircon/kernel/lib/code-patching",
"//zircon/kernel/lib/ktl",
"//zircon/kernel/lib/libc",
"//zircon/system/ulib/zbitl",
]
include_dirs = [ "." ]
}
code_patches("zbi-code-patching-test.patches") {
testonly = true
deps = [ ":zbi-code-patching-test.executable" ]
}
zbi_input("zbi-code-patching-test.data") {
testonly = true
# TODO(68585): package code-patches.bin in a STORAGE_KERNEL item along
# the hermetic alternatives when available.
type = "ramdisk"
args = [ "--uncompressed" ]
sources = get_target_outputs(":zbi-code-patching-test.patches")
deps = [ ":zbi-code-patching-test.patches" ]
}
zbi_test("zbi-code-patching-test") {
args = []
deps = [
":zbi-code-patching-test.data",
":zbi-code-patching-test.executable",
"..:dummy.txt",
]
# TODO(mcgrathr): enable on hardware too
device_types = [
"AEMU",
"QEMU",
]
}
group("code-patching") {
testonly = true
deps = [ ":zbi-code-patching-test" ]
}