summaryrefslogtreecommitdiffstats
path: root/testing/libfuzzer/BUILD.gn
blob: 2b2db0bf5fb3391f3d8b962abd67456caed33e42 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# LibFuzzer is a LLVM tool for coverage-guided fuzz testing.
# See http://www.chromium.org/developers/testing/libfuzzer
#
# To enable libfuzzer, 'use_libfuzzer' GN option should be set to true.

import("//testing/test.gni")

static_library("libfuzzer_main") {
  # libfuzzer should be compiled without coverage (infinite loop in trace_cmp).
  configs -= [ "//build/config/sanitizers:default_sanitizer_coverage_flags" ]

  sources = [
    "../../third_party/llvm/lib/Fuzzer/FuzzerCrossOver.cpp",
    "../../third_party/llvm/lib/Fuzzer/FuzzerDriver.cpp",
    "../../third_party/llvm/lib/Fuzzer/FuzzerFlags.def",
    "../../third_party/llvm/lib/Fuzzer/FuzzerIO.cpp",
    "../../third_party/llvm/lib/Fuzzer/FuzzerInterface.cpp",
    "../../third_party/llvm/lib/Fuzzer/FuzzerLoop.cpp",
    "../../third_party/llvm/lib/Fuzzer/FuzzerMain.cpp",
    "../../third_party/llvm/lib/Fuzzer/FuzzerMutate.cpp",
    "../../third_party/llvm/lib/Fuzzer/FuzzerSHA1.cpp",
    "../../third_party/llvm/lib/Fuzzer/FuzzerSanitizerOptions.cpp",
    "../../third_party/llvm/lib/Fuzzer/FuzzerTraceState.cpp",
    "../../third_party/llvm/lib/Fuzzer/FuzzerUtil.cpp",
  ]
}

test("url_parse_fuzzer") {
  sources = [
    "url_parse_fuzzer.cc",
  ]
  deps = [
    ":libfuzzer_main",
    "//url:url",
  ]
}