load("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime")
load(":targets.bzl", "define_arm_tests")


oncall("executorch")

runtime.python_library(
    name = "conftest",
    srcs = ["conftest.py"],
    deps = [
        "//executorch/exir:lib",
        "//executorch/exir/backend:compile_spec_schema",
        "fbsource//third-party/pypi/pytest:pytest",
    ]
)

runtime.python_library(
    name = "runner_utils",
    srcs = ["runner_utils.py"],
    deps = [
        ":conftest",
        "//executorch/backends/arm:arm_compile_spec",
        "//executorch/backends/arm:ethosu",
        "//executorch/backends/arm/tosa:compile_spec",
        "//executorch/backends/arm:vgf",
        "//executorch/backends/arm/tosa:specification",
        "//executorch/exir:lib",
        "//executorch/exir/backend:compile_spec_schema",
    ]
)

runtime.python_library(
    name = "common",
    srcs = ["common.py"],
    deps = [
        ":runner_utils",
        "//executorch/backends/arm/tosa:tosa",
        "fbsource//third-party/pypi/pytest:pytest",
    ]
)

runtime.python_library(
    name = "arm_tester_serialize",
    srcs = ["tester/serialize.py"],
    deps = [
        "//executorch/backends/xnnpack/test/tester:tester",
        "//executorch/devtools/backend_debug:delegation_info",
    ]
)

runtime.python_library(
    name = "arm_tester_lib",
    srcs = glob(["tester/*.py"], exclude = ["tester/serialize.py"]),
    deps = [
        ":common",
        "//executorch/backends/xnnpack/test/tester:tester",
        "//executorch/backends/arm:ethosu",
        "//executorch/backends/arm/quantizer:lib",
        "//executorch/backends/arm/tosa:mapping",
        "//executorch/backends/arm:vgf",
        "//executorch/devtools/backend_debug:delegation_info",
        "//executorch/exir/backend:operator_support",
        "fbsource//third-party/pypi/tabulate:tabulate",
    ]
)


runtime.python_library(
    name = "arm_tester",
    deps = [
        "//executorch/backends/arm/test:arm_tester_lib",
        "//executorch/backends/arm/test:arm_tester_serialize",
    ]
)

define_arm_tests()
