| # Copyright 2018 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") |
| |
| group("fuzzers") { |
| } |
| |
| # Build Skia fuzzers from OSS-Fuzz on Windows since Windows is not supported by |
| # OSS-Fuzz. |
| if (is_win && use_fuzzing_engine) { |
| 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" ] |
| check_includes = false |
| } |
| |
| 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" ] |
| } |
| } |