# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
config("ced_config") {
include_dirs = [ "src" ]
}
config("ced_config_private") {
# This cannot be set directly on the "ced" and "ced_unittests" target because
# the target cflags property is added to the command-line before the cflags
# property from its config. For configs, the cflags property are set in the
# order public_configs, configs thus it is correctly set after the flag that
# enable the error.
if (is_clang) {
cflags = [ "-Wno-unused-function" ]
}
}
static_library("ced") {
sources = [
# find src -maxdepth 3 ! -type d | egrep '\.(h|cc)$' | grep -v test.cc |\
# LC_COLLATE=c sort | sed 's/^\(.*\)$/ "\1",/'
"src/compact_enc_det/compact_enc_det.cc",
"src/compact_enc_det/compact_enc_det_generated_tables.h",
"src/compact_enc_det/compact_enc_det_generated_tables2.h",
"src/compact_enc_det/compact_enc_det_hint_code.cc",
"src/compact_enc_det/compact_enc_det_hint_code.h",
"src/util/basictypes.h",
"src/util/case_insensitive_hash.h",
"src/util/commandlineflags.h",
"src/util/encodings/encodings.cc",
"src/util/encodings/encodings.h",
"src/util/encodings/encodings.pb.h",
"src/util/languages/languages.cc",
"src/util/languages/languages.h",
"src/util/languages/languages.pb.h",
"src/util/logging.h",
"src/util/port.h",
"src/util/string_util.h",
"src/util/varsetter.h",
]
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [
"//build/config/compiler:no_chromium_code",
":ced_config_private",
]
public_configs = [ ":ced_config" ]
if (is_win) {
defines = [ "COMPILER_MSVC" ]
cflags = [
"/wd4005", # Macro defined twice.
"/wd4006", # #undef expected an identifier.
"/wd4018", # '<': signed/unsigned mismatch
"/wd4309", # Truncation of constant value.
]
} else {
defines = [ "COMPILER_GCC" ]
}
defines += [ "HTML5_MODE" ]
}
test("ced_unittests") {
sources = [
"src/compact_enc_det/compact_enc_det_fuzz_test.cc",
"src/compact_enc_det/compact_enc_det_unittest.cc",
"src/compact_enc_det/detail_head_string.inc",
"src/util/encodings/encodings_unittest.cc",
]
configs += [ ":ced_config_private" ]
if (is_win) {
defines = [ "COMPILER_MSVC" ]
cflags = [
"/wd4310", # Truncation of constant value.
"/wd4267", # size_t -> int
]
} else {
defines = [ "COMPILER_GCC" ]
}
defines += [ "HTML5_MODE" ]
deps = [
":ced",
"//testing/gtest",
"//testing/gtest:gtest_main",
]
}
fuzzer_test("compact_enc_det_fuzzer") {
sources = [ "compact_enc_det_fuzzer.cc" ]
deps = [
":ced",
"//base/test:test_support",
]
seed_corpus = "compact_enc_det_corpus"
}