# Copyright 2014 The Chromium 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("../mojo_edk.gni")

mojo_edk_source_set("test_support") {
  testonly = true
  sources = [
    "multiprocess_test_helper.cc",
    "multiprocess_test_helper.h",
    "scoped_ipc_support.cc",
    "scoped_ipc_support.h",
    "test_utils.cc",
    "test_utils.h",
  ]

  deps = [
    "//base",
    "//base/test:test_support",
    "//testing/gtest",
  ]

  mojo_edk_deps = [
    "mojo/edk/system",
    "mojo/edk/util",
  ]

  mojo_sdk_public_deps = [ "mojo/public/cpp/system" ]
}

mojo_edk_source_set("run_all_unittests") {
  testonly = true
  sources = [
    "run_all_unittests.cc",
  ]

  deps = [
    ":test_support_impl",
    "//base",
    "//base/test:test_support",
    "//testing/gtest",
  ]

  mojo_edk_deps = [ "mojo/edk/system" ]
}

mojo_edk_source_set("run_all_perftests") {
  testonly = true
  deps = [
    ":test_support_impl",
    "//base",
    "//base/test:test_support",
  ]

  mojo_edk_deps = [ "mojo/edk/system" ]

  sources = [
    "run_all_perftests.cc",
  ]
}

mojo_edk_source_set("test_support_impl") {
  testonly = true
  deps = [
    "//base",
    "//base/test:test_support",
  ]

  mojo_sdk_deps = [ "mojo/public/cpp/test_support" ]

  mojo_sdk_public_deps = [ "mojo/public/cpp/system" ]

  sources = [
    "test_support_impl.cc",
  ]

  visibility = [
    ":run_all_unittests",
    ":run_all_perftests",
  ]
}
