# 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("//build/testing/bootfs_test.gni")

test("vdso") {
  output_name = "vdso-test"
  sources = [ "vdso.cc" ]
  deps = [
    "//sdk/lib/fdio",
    "//src/lib/elfldltl",
    "//zircon/system/ulib/fbl",
    "//zircon/system/ulib/zx",
    "//zircon/system/ulib/zxtest",
  ]
}

test("vdso-base") {
  output_name = "vdso-base-test"
  sources = [ "vdso-base.c" ]
  deps = [
    "//sdk/lib/fdio",
    "//src/zircon/lib/zircon",
    "//zircon/system/ulib/zxtest",
  ]
}

test("vdso-variant") {
  sources = [ "vdso-variant.c" ]
  deps = [
    "//sdk/lib/fdio",
    "//src/zircon/lib/zircon",
  ]
  data_deps = [ ":vdso-variant-helper" ]
}

executable("vdso-variant-helper") {
  testonly = true
  visibility = [ ":*" ]
  sources = [ "helper/vdso-variant-helper.c" ]
  deps = [
    "//sdk/lib/fdio",
    "//zircon/system/ulib/zxtest",
  ]
}

bootfs_test("vdso-variant-bootfs-test") {
  name = "vdso-variant"
  deps = [ ":vdso-variant" ]
}

bootfs_test("vdso-base-bootfs-test") {
  name = "vdso-base-test"
  deps = [ ":vdso-base" ]
}

bootfs_test("vdso-bootfs-test") {
  name = "vdso-test"
  deps = [ ":vdso" ]
}
