| # 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/kernel_package.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 = [ "." ] |
| } |
| |
| zbi_executable("zbi-code-patching-test.executable") { |
| testonly = true |
| sources = [ |
| "add-one.S", |
| "test.cc", |
| ] |
| |
| deps = [ |
| ":multiply_by_factor", |
| "..:zbi-test-main", |
| "//zircon/kernel/lib/code-patching", |
| "//zircon/kernel/lib/ktl", |
| "//zircon/kernel/lib/libc", |
| "//zircon/kernel/phys:allocation", |
| "//zircon/kernel/phys:zbi-memory", |
| "//zircon/kernel/phys:zbitl-allocation", |
| "//zircon/kernel/phys/lib/memalloc", |
| "//zircon/system/ulib/fbl", |
| "//zircon/system/ulib/zbitl", |
| ] |
| |
| include_dirs = [ "." ] |
| } |
| |
| code_patches("code-patches") { |
| testonly = true |
| deps = [ ":zbi-code-patching-test.executable" ] |
| } |
| |
| # We use a kernel package to transport code-patches.bin and the patch |
| # alternatives, as that is how they will be transported in production. |
| kernel_package("code-patches-test") { |
| testonly = true |
| deps = [ |
| ":code-patches", |
| ":multiply_by_ten", |
| ":multiply_by_two", |
| ] |
| } |
| |
| zbi_test("zbi-code-patching-test") { |
| args = [] |
| deps = [ |
| ":code-patches-test", |
| ":zbi-code-patching-test.executable", |
| ] |
| |
| # TODO(mcgrathr): enable on hardware too |
| device_types = [ |
| "AEMU", |
| "QEMU", |
| ] |
| } |
| |
| group("code-patching") { |
| testonly = true |
| deps = [ ":zbi-code-patching-test" ] |
| } |