# Copyright 2020 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("//sdk/cts/build/cts.gni")

# This is a simple example and should not be copied directly.
#
# TODO(johnshamoon): Add documentation to describe what this example is doing
# and how a developer could use these templates to add their own CTS tests.
cts_source_set("my-cts-source-set") {
  sources = [ "hello_world_util.h" ]
  testonly = true
}

cts_executable("my-cts-test") {
  deps = [
    ":my-cts-source-set",
    "//zircon/public/lib/zxtest",
  ]
  sources = [ "hello_world_cts.cc" ]
  testonly = true
}

cts_fuchsia_component("my-cts-component") {
  deps = [ ":my-cts-test" ]
  manifest = "meta/my-cts-test.cmx"
  testonly = true
}

cts_fuchsia_test_package("my-cts-test-package") {
  test_components = [ ":my-cts-component" ]
}

group("tests") {
  testonly = true
  deps = [ ":my-cts-test-package" ]
}
