# Copyright 2021 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/components.gni")

group("tests") {
  testonly = true
  if (target_cpu == "x64") {
    deps = [
      ":test_android_distro",
      "benchmarks",
      "gvisor",
      "wayland",
    ]
  }
}

fuchsia_component("init") {
  manifest = "meta/init.cml"
}

fuchsia_component("sh") {
  manifest = "meta/sh.cml"
}

fuchsia_component("adbd") {
  manifest = "meta/adbd.cml"
}

resource("binder_smoke_test_bin") {
  sources = [
    "//prebuilt/starnix/tests/syscalls/linux-amd64/android/binder_smoke_test",
  ]
  outputs = [ "data/tests/binder_smoke_test" ]
}

fuchsia_test_component("binder_smoke_test") {
  manifest = "meta/binder_smoke_test.cml"
  deps = [ ":binder_smoke_test_bin" ]
}

resource("binder_test_script") {
  sources = [ "binderLibTestLauncher.sh" ]
  outputs = [ "data/tests/binderLibTestLauncher.sh" ]
}

fuchsia_test_component("binder_test") {
  manifest = "meta/binder_test.cml"
  deps = [ ":binder_test_script" ]
}

fuchsia_test_component("libutils_test") {
  manifest = "meta/libutils_test.cml"
}

fuchsia_test_component("java_hello_world") {
  manifest = "meta/java_hello_world.cml"
}

fuchsia_component("sh_test") {
  testonly = true
  check_references = false
  manifest = "meta/sh_test.cml"
}

fuchsia_component("boringssl_self_test64") {
  testonly = true
  check_references = false
  manifest = "meta/boringssl_self_test64.cml"
}

fuchsia_package("android_shell") {
  deps = [ ":sh" ]
}

fuchsia_test_package("test_android_distro") {
  deps = [
    ":adbd",
    ":init",
    ":sh",
  ]

  test_components = [
    ":boringssl_self_test64",
    ":java_hello_world",
    ":sh_test",
    ":binder_smoke_test",
    ":binder_test",
    ":libutils_test",
  ]

  # This package intentionally contains many non-Fuchia ELF binaries that
  # are not under /data/, and some of them are even unstripped, so disable
  # theses checks to build successfully.
  disable_elf_binaries_checks = true
}
