blob: f87f4ce8efc996327fd96f58c9122e2ae54aa757 [file] [log] [blame]
# 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.
# This is just a basic test that program loading and libc startup works.
# It's "hello world" without the ostentation.
if (toolchain.tool_dir == "") {
# Don't test random host compilers that might not actually work just
# because variants like gcc exist. If it's configured as the primary
# host compiler via $variants, then you'll know if it works or not.
# We can't just avoid the dependency below easily, because tool_dir
# is only decided inside the c_toolchain() instantiation itself.
group("noop.${toolchain.variant}") {
}
} else {
test("noop") {
sources = [
"noop-test.cc",
]
}
}
group("noop-tests.instrumented") {
testonly = true
deps = [
":noop",
]
# Generate a variant-suffixed noop test for each instrumented variant.
# Those all have their own libprefix so they can coexist in the
# filesystem with other variants. Other variants would need to be
# tested in separate filesystem namespaces.
# TODO(BLD-448): Test all variants when we have sandboxed packages
# and can put each variant in its own package.
foreach(selector, toolchain.variant_selectors) {
if (selector.tags + [ "instrumented" ] - [ "instrumented" ] !=
selector.tags) {
deps += [ ":noop.${selector.variant}" ]
}
}
}
group("noop-tests") {
testonly = true
deps = [
":noop",
]
foreach(selector, toolchain.variant_selectors) {
deps += [ ":noop.${selector.variant}" ]
}
}
default_stack_size_cases = [
{
# This uses the compiled-in default.
name = "default"
},
{
# This uses an arbitrary, non-default size. It needs to be an even
# multiple of page size, since specified sizes are always rounded up.
name = "phdr"
size = 1114112 # 0x110000
},
]
foreach(case, default_stack_size_cases) {
test("default-stack-size-${case.name}") {
sources = [
"default-stack-size-test.cc",
]
deps = [
"$zx/system/ulib/fdio",
"$zx/system/ulib/zircon-internal",
"$zx/system/ulib/zxtest",
]
if (defined(case.size)) {
defines = [ "STACK_TEST_EXPECTED_SIZE=${case.size}" ]
ldflags = [ "-Wl,-z,stack-size=${case.size}" ]
}
}
}
executable("debugdata-test-helper") {
testonly = true
sources = [
"debugdata-test-helper.cc",
]
deps = [
"$zx/system/ulib/zx",
]
}
test("debugdata") {
test_group = "c"
sources = [
"debugdata.cc",
]
data_deps = [
":debugdata-test-helper",
]
deps = [
"$zx/system/fidl/fuchsia-debugdata:llcpp",
"$zx/system/ulib/async",
"$zx/system/ulib/async:async-cpp",
"$zx/system/ulib/async-loop",
"$zx/system/ulib/async-loop:async-loop-cpp",
"$zx/system/ulib/async-loop:async-loop-default.static",
"$zx/system/ulib/fdio",
"$zx/system/ulib/fidl",
"$zx/system/ulib/fidl-async",
"$zx/system/ulib/fidl-async:fidl-async-cpp",
"$zx/system/ulib/fs",
"$zx/system/ulib/zircon-internal",
"$zx/system/ulib/zx",
"$zx/system/ulib/zxtest",
]
}
test("clock-gettime") {
test_group = "c"
sources = [
"clock-gettime.cc",
]
deps = [
"$zx/system/ulib/fdio",
"$zx/system/ulib/zx",
]
}
group("test") {
testonly = true
deps = [
":clock-gettime",
":debugdata",
":noop-tests.instrumented",
]
foreach(case, default_stack_size_cases) {
deps += [ ":default-stack-size-${case.name}" ]
}
}