# 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/test.gni")

config("config") {
  include_dirs = [ "include" ]
}

source_set("fxt") {
  sources = [
    "include/lib/fxt/fields.h",
    "include/lib/fxt/record_types.h",
    "include/lib/fxt/serializer.h",
    "include/lib/fxt/writer_internal.h",
  ]
  deps = [ "//zircon/system/ulib/zxc" ]
  public_deps = [
    # <fxt/writer.h> has #include <lib/zx/status.h>
    # <fxt/serializer.h> has #include <lib/zx/status.h>
    "//zircon/system/ulib/zxc",
  ]
  public_configs = [ ":config" ]
}

test("fxt_unittests") {
  testonly = true
  sources = [
    "fields_tests.cc",
    "serializer_test.cc",
  ]
  deps = [
    ":fxt",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
  ]
}

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