blob: 55ec1e30d0baf7a61e14c27989b09f2f8bf8525b [file] [log] [blame]
# Copyright (c) 2018 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.
import("//testing/libfuzzer/fuzzer_test.gni")
group("fuzzers") {
}
# Build Skia fuzzers from OSS-Fuzz on Windows since Windows is not supported by
# OSS-Fuzz.
if (is_win && use_libfuzzer) {
source_set("skia_fuzzer_sources") {
testonly = true
sources = [
"//skia/tools/fuzzers/fuzzer_environment.cc",
"//third_party/skia/fuzz/Fuzz.cpp",
"//third_party/skia/fuzz/FuzzCommon.cpp",
]
# Use public_deps and public_configs so each fuzzer_test doesn't need to
# explicitly depend on "//skia" and "//skia:skia_library_config".
public_deps = [ "//skia" ]
public_configs = [ "//skia:skia_library_config" ]
deps = [ "//base/test:test_support" ]
}
static_library("skia_encoder_fuzzer_lib") {
sources = [ "//third_party/skia/fuzz/FuzzEncoders.cpp" ]
configs += [ "//skia:skia_library_config" ]
deps = [ "//skia" ]
}
config("skia_test_fonts_includes_config") {
include_dirs = [
"//third_party/skia/tools/fonts",
"//third_party/skia/tools/",
]
}
static_library("skia_test_fonts") {
sources = [
"//third_party/skia/tools/fonts/TestFontMgr.cpp",
"//third_party/skia/tools/fonts/TestSVGTypeface.cpp",
"//third_party/skia/tools/fonts/TestTypeface.cpp",
]
configs += [ "//skia:skia_library_config" ]
public_configs = [ ":skia_test_fonts_includes_config" ]
deps = [ "//skia" ]
}
# TODO(metzman): Enable the other fuzzers that cannot yet build in Chromium.
fuzzer_test("skia_region_deserialize_fuzzer") {
sources = [ "//third_party/skia/fuzz/oss_fuzz/FuzzRegionDeserialize.cpp" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [ ":skia_fuzzer_sources" ]
}
fuzzer_test("skia_image_filter_deserialize_fuzzer") {
sources =
[ "//third_party/skia/fuzz/oss_fuzz/FuzzImageFilterDeserialize.cpp" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_fuzzer_sources",
":skia_test_fonts",
]
}
fuzzer_test("skia_region_set_path_fuzzer") {
sources = [ "//third_party/skia/fuzz/oss_fuzz/FuzzRegionSetPath.cpp" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [ ":skia_fuzzer_sources" ]
}
fuzzer_test("skia_textblob_deserialize_fuzzer") {
sources = [ "//third_party/skia/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_fuzzer_sources",
":skia_test_fonts",
]
}
fuzzer_test("skia_path_deserialize_fuzzer") {
sources = [ "//third_party/skia/fuzz/oss_fuzz/FuzzPathDeserialize.cpp" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [ ":skia_fuzzer_sources" ]
}
fuzzer_test("skia_image_decode_fuzzer") {
sources = [ "//third_party/skia/fuzz/oss_fuzz/FuzzImage.cpp" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [ ":skia_fuzzer_sources" ]
}
fuzzer_test("skia_png_encoder_fuzzer") {
sources = [ "//third_party/skia/fuzz/oss_fuzz/FuzzPNGEncoder.cpp" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_encoder_fuzzer_lib",
":skia_fuzzer_sources",
]
}
fuzzer_test("skia_jpeg_encoder_fuzzer") {
sources = [ "//third_party/skia/fuzz/oss_fuzz/FuzzJPEGEncoder.cpp" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_encoder_fuzzer_lib",
":skia_fuzzer_sources",
]
}
fuzzer_test("skia_webp_encoder_fuzzer") {
sources = [ "//third_party/skia/fuzz/oss_fuzz/FuzzWEBPEncoder.cpp" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [
":skia_encoder_fuzzer_lib",
":skia_fuzzer_sources",
]
}
fuzzer_test("skia_skjson_fuzzer") {
sources = [ "//third_party/skia/fuzz/oss_fuzz/FuzzJSON.cpp" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [ ":skia_fuzzer_sources" ]
}
fuzzer_test("skia_image_decode_incremental_fuzzer") {
sources = [ "//third_party/skia/fuzz/oss_fuzz/FuzzIncrementalImage.cpp" ]
defines = [ "IS_FUZZING_WITH_LIBFUZZER" ]
deps = [ ":skia_fuzzer_sources" ]
}
}