# Copyright 2022 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")

executable("bin") {
  testonly = true
  output_name = "sync_manager"
  sources = [ "main.cc" ]
  deps = [
    "lib:sync_service",
    "//sdk/lib/sys/cpp",
    "//sdk/lib/syslog/cpp",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]
}

fuchsia_component("sync-manager") {
  testonly = true
  manifest = "meta/sync-manager.cml"
  deps = [ ":bin" ]
}

fuchsia_component("sync-test") {
  testonly = true
  manifest = "meta/sync-test.cml"
  deps = [ "lib:sync_test_bin" ]
}

fuchsia_test_package("sync-tests") {
  test_components = [ ":sync-test" ]
}

group("tests") {
  testonly = true
  deps = [ ":sync-tests" ]
}
