# Copyright 2019 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")
import("//src/sys/build/fuchsia_unittest_package.gni")

test("thread-initial-state") {
  output_name = "thread-initial-state-test"
  configs += [ "//build/unification/config:zircon-migrated" ]
  sources = [
    "${current_cpu}.S",
    "init-state.c",
  ]
  deps = [
    "//sdk/lib/fdio",
    "//src/zircon/lib/zircon",
    "//zircon/public/lib/zxtest",
  ]
}

fuchsia_unittest_package("thread-initial-state-test-pkg") {
  package_name = "thread-initial-state-test"
  deps = [ ":thread-initial-state" ]
}

group("tests") {
  testonly = true
  deps = [ ":thread-initial-state-test-pkg" ]
}
