# 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" }