# Copyright 2018 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.

if (is_fuchsia) {
  import("//build/fuchsia/sdk.gni")
}

config("gtest_private_config") {
  visibility = [ ":*" ]
  include_dirs = [ "src/googletest" ]
}

config("gtest_config") {
  include_dirs = [ "src/googletest/include" ]
}

static_library("gtest") {
  testonly = true
  public = [
    "src/googletest/include/gtest/gtest-spi.h",
    "src/googletest/include/gtest/gtest.h",
  ]
  sources = [
    "src/googletest/include/gtest/gtest-death-test.h",
    "src/googletest/include/gtest/gtest-message.h",
    "src/googletest/include/gtest/gtest-param-test.h",
    "src/googletest/include/gtest/gtest-printers.h",
    "src/googletest/include/gtest/gtest-test-part.h",
    "src/googletest/include/gtest/gtest-typed-test.h",
    "src/googletest/include/gtest/gtest_pred_impl.h",
    "src/googletest/include/gtest/gtest_prod.h",
    "src/googletest/include/gtest/internal/custom/gtest-port.h",
    "src/googletest/include/gtest/internal/custom/gtest-printers.h",
    "src/googletest/include/gtest/internal/custom/gtest.h",
    "src/googletest/include/gtest/internal/gtest-death-test-internal.h",
    "src/googletest/include/gtest/internal/gtest-filepath.h",
    "src/googletest/include/gtest/internal/gtest-internal.h",
    "src/googletest/include/gtest/internal/gtest-linked_ptr.h",
    "src/googletest/include/gtest/internal/gtest-param-util-generated.h",
    "src/googletest/include/gtest/internal/gtest-param-util.h",
    "src/googletest/include/gtest/internal/gtest-port-arch.h",
    "src/googletest/include/gtest/internal/gtest-port.h",
    "src/googletest/include/gtest/internal/gtest-string.h",
    "src/googletest/include/gtest/internal/gtest-tuple.h",
    "src/googletest/include/gtest/internal/gtest-type-util.h",
    "src/googletest/src/gtest-all.cc",
    "src/googletest/src/gtest-death-test.cc",
    "src/googletest/src/gtest-filepath.cc",
    "src/googletest/src/gtest-internal-inl.h",
    "src/googletest/src/gtest-matchers.cc",
    "src/googletest/src/gtest-port.cc",
    "src/googletest/src/gtest-printers.cc",
    "src/googletest/src/gtest-test-part.cc",
    "src/googletest/src/gtest-typed-test.cc",
    "src/googletest/src/gtest.cc",
  ]
  sources -= [ "src/googletest/src/gtest-all.cc" ]
  public_configs = [ ":gtest_config" ]
  configs += [ ":gtest_private_config" ]

  # Avoid failure when subtracting if not already present.
  configs += [ "//build/config:no_rtti" ]
  configs -= [ "//build/config:no_rtti" ]

  if (is_fuchsia) {
    if (using_fuchsia_sdk) {
      deps = [
        "$fuchsia_sdk_root/pkg:fdio",
        "$fuchsia_sdk_root/pkg:zx",
      ]
    } else {
      deps = [
        "//sdk/lib/fdio",
        "//zircon/system/ulib/zx",
      ]
    }
  }

  metadata = {
    # Used by the fuchsia_test_component_manifest() template.
    test_component_manifest_cml = [
      {
        include = [ "//src/sys/test_runners/gtest/default.shard.cml" ]
      },
    ]
  }
}

# Library that defines the FRIEND_TEST macro.
source_set("gtest_prod") {
  testonly = false
  public = [ "src/googletest/include/gtest/gtest_prod.h" ]
  public_configs = [ ":gtest_config" ]
}

static_library("gtest_main") {
  # In-tree tests should prefer //src/lib/fxl/test:gtest_main which includes
  # Fuchsia-specific setup.
  visibility = [
    ":*",
    "//src/developer/forensics/feedback/tests:feedback_integration_test_exe",
    "//third_party/protobuf:*",
    "$cobalt_root/*",  # TODO(fxbug.dev/95381): DO NOT DELETE, added manually
                       # for cobalt repo, and must be re-added upon running
                       # `sync_with_fuchsia`.
  ]
  testonly = true
  sources = [ "src/googletest/src/gtest_main.cc" ]
  public_deps = [ ":gtest" ]
}

executable("gtest_all_test") {
  testonly = true
  sources = [
    "src/googletest/test/gtest-death-test_test.cc",
    "src/googletest/test/gtest-filepath_test.cc",
    "src/googletest/test/gtest-linked_ptr_test.cc",
    "src/googletest/test/gtest-message_test.cc",
    "src/googletest/test/gtest-options_test.cc",
    "src/googletest/test/gtest-port_test.cc",
    "src/googletest/test/gtest-printers_test.cc",
    "src/googletest/test/gtest-test-part_test.cc",
    "src/googletest/test/gtest-typed-test2_test.cc",
    "src/googletest/test/gtest-typed-test_test.cc",
    "src/googletest/test/gtest-typed-test_test.h",
    "src/googletest/test/gtest_main_unittest.cc",
    "src/googletest/test/gtest_pred_impl_unittest.cc",
    "src/googletest/test/gtest_prod_test.cc",
    "src/googletest/test/gtest_unittest.cc",
    "src/googletest/test/production.cc",
    "src/googletest/test/production.h",
  ]
  configs += [ ":gtest_private_config" ]
  deps = [
    ":gtest",
    ":gtest_main",
  ]
}

executable("gtest_environment_test") {
  testonly = true
  sources = [ "src/googletest/test/gtest_environment_test.cc" ]
  configs += [ ":gtest_private_config" ]
  deps = [ ":gtest" ]
}

executable("gtest_listener_test") {
  testonly = true
  sources = [ "src/googletest/test/gtest-listener_test.cc" ]
  deps = [ ":gtest" ]
}

executable("gtest_no_test") {
  testonly = true
  sources = [ "src/googletest/test/gtest_no_test_unittest.cc" ]
  deps = [ ":gtest" ]
}

executable("gtest_param_test") {
  testonly = true
  sources = [
    "src/googletest/test/gtest-param-test2_test.cc",
    "src/googletest/test/gtest-param-test_test.cc",
    "src/googletest/test/gtest-param-test_test.h",
  ]
  configs += [ ":gtest_private_config" ]
  deps = [ ":gtest" ]
}

executable("gtest_premature_exit_test") {
  testonly = true
  sources = [ "src/googletest/test/gtest_premature_exit_test.cc" ]
  deps = [ ":gtest" ]
}

executable("gtest_repeat_test") {
  testonly = true
  sources = [ "src/googletest/test/gtest_repeat_test.cc" ]
  configs += [ ":gtest_private_config" ]
  deps = [ ":gtest" ]
}

executable("gtest_sole_header_test") {
  testonly = true
  sources = [ "src/googletest/test/gtest_sole_header_test.cc" ]
  deps = [
    ":gtest",
    ":gtest_main",
  ]
}

executable("gtest_stress_test") {
  testonly = true
  sources = [ "src/googletest/test/gtest_stress_test.cc" ]
  configs += [ ":gtest_private_config" ]
  deps = [ ":gtest" ]
}

executable("gtest_unittest_api_test") {
  testonly = true
  sources = [ "src/googletest/test/gtest-unittest-api_test.cc" ]
  deps = [ ":gtest" ]
}

group("gtest_all_tests") {
  testonly = true
  deps = [
    ":gtest_all_test",
    ":gtest_environment_test",
    ":gtest_listener_test",
    ":gtest_no_test",
    ":gtest_param_test",
    ":gtest_premature_exit_test",
    ":gtest_repeat_test",
    ":gtest_sole_header_test",
    ":gtest_stress_test",
    ":gtest_unittest_api_test",
  ]
}

config("gmock_private_config") {
  visibility = [ ":*" ]
  include_dirs = [ "src/googlemock" ]
}

config("gmock_config") {
  include_dirs = [ "src/googlemock/include" ]
}

static_library("gmock") {
  testonly = true
  public = [ "src/googlemock/include/gmock/gmock.h" ]
  sources = [
    "src/googlemock/include/gmock/gmock-actions.h",
    "src/googlemock/include/gmock/gmock-cardinalities.h",
    "src/googlemock/include/gmock/gmock-generated-actions.h",
    "src/googlemock/include/gmock/gmock-generated-function-mockers.h",
    "src/googlemock/include/gmock/gmock-generated-matchers.h",
    "src/googlemock/include/gmock/gmock-generated-nice-strict.h",
    "src/googlemock/include/gmock/gmock-matchers.h",
    "src/googlemock/include/gmock/gmock-more-actions.h",
    "src/googlemock/include/gmock/gmock-more-matchers.h",
    "src/googlemock/include/gmock/gmock-spec-builders.h",
    "src/googlemock/include/gmock/internal/custom/gmock-generated-actions.h",
    "src/googlemock/include/gmock/internal/custom/gmock-matchers.h",
    "src/googlemock/include/gmock/internal/custom/gmock-port.h",
    "src/googlemock/include/gmock/internal/gmock-generated-internal-utils.h",
    "src/googlemock/include/gmock/internal/gmock-internal-utils.h",
    "src/googlemock/include/gmock/internal/gmock-port.h",
    "src/googlemock/src/gmock-all.cc",
    "src/googlemock/src/gmock-cardinalities.cc",
    "src/googlemock/src/gmock-internal-utils.cc",
    "src/googlemock/src/gmock-matchers.cc",
    "src/googlemock/src/gmock-spec-builders.cc",
    "src/googlemock/src/gmock.cc",
  ]
  sources -= [ "src/googlemock/src/gmock-all.cc" ]
  public_configs = [ ":gmock_config" ]
  configs += [ ":gmock_private_config" ]
  deps = [ ":gtest" ]
}

static_library("gmock_main") {
  testonly = true
  sources = [ "src/googlemock/src/gmock_main.cc" ]
  public_deps = [
    ":gmock",
    ":gtest",
  ]
}

executable("gmock_all_test") {
  testonly = true
  sources = [
    "src/googlemock/test/gmock-actions_test.cc",
    "src/googlemock/test/gmock-cardinalities_test.cc",
    "src/googlemock/test/gmock-generated-actions_test.cc",
    "src/googlemock/test/gmock-generated-function-mockers_test.cc",
    "src/googlemock/test/gmock-generated-internal-utils_test.cc",
    "src/googlemock/test/gmock-generated-matchers_test.cc",
    "src/googlemock/test/gmock-internal-utils_test.cc",
    "src/googlemock/test/gmock-matchers_test.cc",
    "src/googlemock/test/gmock-more-actions_test.cc",
    "src/googlemock/test/gmock-nice-strict_test.cc",
    "src/googlemock/test/gmock-port_test.cc",
    "src/googlemock/test/gmock-spec-builders_test.cc",
    "src/googlemock/test/gmock_test.cc",
  ]
  configs += [
    ":gmock_private_config",
    ":gtest_private_config",
  ]
  deps = [
    ":gmock",
    ":gmock_main",
    ":gtest",
  ]
}

executable("gmock_link_test") {
  testonly = true
  sources = [
    "src/googlemock/test/gmock_link2_test.cc",
    "src/googlemock/test/gmock_link_test.cc",
    "src/googlemock/test/gmock_link_test.h",
  ]
  configs += [ ":gmock_private_config" ]
  deps = [
    ":gmock",
    ":gmock_main",
    ":gtest",
  ]
}

executable("gmock_stress_test") {
  testonly = true
  sources = [ "src/googlemock/test/gmock_stress_test.cc" ]
  configs += [ ":gmock_private_config" ]
  deps = [
    ":gmock",
    ":gtest",
  ]
}

group("gmock_all_tests") {
  testonly = true
  deps = [
    ":gmock_all_test",
    ":gmock_link_test",
    ":gmock_stress_test",
  ]
}
