blob: 40eac5a04d0de3ee814a0652044661eac431f767 [file] [log] [blame]
# 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")
import("//build/cpp/cpp_fuzzer.gni")
import("//build/cpp/sdk_source_set.gni")
import("//build/fuzz.gni")
import("//build/test.gni")
sdk_source_set("utf-utils") {
category = "partner"
sdk_name = "utf-utils"
build_as_static = true
include_base = "//sdk"
sources = [
"internal/arm-neon.h",
"internal/generic-simd.h",
"internal/scalar.cc",
"internal/scalar.h",
"internal/x86-avx2.h",
"internal/x86-ssse3.h",
"utf-utils.cc",
"utf-utils.h",
]
sdk_headers_for_internal_use = [
"internal/arm-neon.h",
"internal/generic-simd.h",
"internal/scalar.h",
"internal/x86-avx2.h",
"internal/x86-ssse3.h",
]
public_deps = [ "//sdk/lib/stdcompat" ]
if (is_fuchsia) {
public_deps += [ "//zircon/system/ulib/zx" ]
}
public_configs = [ "//sdk/config" ]
}
executable("unit-tests-bin") {
testonly = true
sources = [ "tests/unit-tests.cc" ]
deps = [
":utf-utils",
"//zircon/system/ulib/zxtest",
]
configs += [ ":enable-vector-extensions" ]
}
fuchsia_unittest_package("utf-utils-unit-tests") {
deps = [ ":unit-tests-bin" ]
}
cpp_fuzzer("simple-compare-fuzzer") {
sources = [ "tests/simple-compare-fuzzer.cc" ]
deps = [ ":utf-utils" ]
}
fuchsia_fuzzer_component("simple-compare-fuzzer-component") {
manifest = "meta/simple-compare-fuzzer.cml"
deps = [ ":simple-compare-fuzzer" ]
}
if (is_fuchsia) {
fuchsia_fuzzer_package("utf-utils-fuzzers") {
cpp_fuzzer_components = [ ":simple-compare-fuzzer-component" ]
}
} else {
group("utf-utils-fuzzers") {
testonly = true
deps = [ ":simple-compare-fuzzer" ]
}
}
# Enable SSSE3 and AVX2 instructions for tests that use dynamic dispatch to test vector extensions.
config("enable-vector-extensions") {
if (current_cpu == "x64") {
cflags = [
"-mssse3",
"-mavx2",
]
}
}
group("tests") {
testonly = true
deps = [
":utf-utils-fuzzers",
":utf-utils-unit-tests",
]
}