Helen Li | c51db4c | 2018-06-14 22:05:04 | [diff] [blame] | 1 | # Copyright 2018 The Chromium Authors. All rights reserved. |
| 2 | # Use of this source code is governed by a BSD-style license that can be |
| 3 | # found in the LICENSE file. |
| 4 | |
| 5 | import("//net/features.gni") |
| 6 | import("//testing/libfuzzer/fuzzer_test.gni") |
| 7 | |
| 8 | static_library("http_server") { |
| 9 | public = [] |
| 10 | |
| 11 | # This target is being deprecated. Use //services/network/public/cpp/server |
| 12 | # instead. |
| 13 | visibility = [ |
Zhaoyang Li | ad83de4 | 2021-11-01 20:54:40 | [diff] [blame] | 14 | ":net_http_server_fuzzer_deps", |
Helen Li | c51db4c | 2018-06-14 22:05:04 | [diff] [blame] | 15 | ":tests", |
| 16 | "//chrome/browser/devtools", |
| 17 | "//chrome/test/chromedriver/*", |
| 18 | "//content/browser", |
Zhaoyang Li | ad83de4 | 2021-11-01 20:54:40 | [diff] [blame] | 19 | "//net:net_web_socket_encoder_fuzzer_deps", |
Helen Li | c51db4c | 2018-06-14 22:05:04 | [diff] [blame] | 20 | ] |
| 21 | |
| 22 | friend = [ |
| 23 | ":net_http_server_fuzzer", |
Shiho Noda | 59af2cc | 2021-09-07 04:11:16 | [diff] [blame] | 24 | "//net:net_web_socket_encoder_fuzzer", |
Helen Li | c51db4c | 2018-06-14 22:05:04 | [diff] [blame] | 25 | ":tests", |
| 26 | "//chrome/browser/devtools", |
| 27 | "//chrome/test/chromedriver/*", |
| 28 | "//content/browser", |
| 29 | ] |
| 30 | |
| 31 | if (enable_websockets) { |
| 32 | sources = [ |
| 33 | "http_connection.cc", |
| 34 | "http_connection.h", |
| 35 | "http_server.cc", |
| 36 | "http_server.h", |
| 37 | "http_server_request_info.cc", |
| 38 | "http_server_request_info.h", |
| 39 | "http_server_response_info.cc", |
| 40 | "http_server_response_info.h", |
| 41 | "web_socket.cc", |
| 42 | "web_socket.h", |
| 43 | "web_socket_encoder.cc", |
| 44 | "web_socket_encoder.h", |
| 45 | ] |
| 46 | configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| 47 | deps = [ |
| 48 | "//base", |
| 49 | "//net", |
| 50 | ] |
| 51 | } |
| 52 | } |
| 53 | |
| 54 | source_set("tests") { |
| 55 | testonly = true |
| 56 | if (enable_websockets) { |
| 57 | sources = [ |
| 58 | "http_connection_unittest.cc", |
| 59 | "http_server_response_info_unittest.cc", |
| 60 | "http_server_unittest.cc", |
| 61 | "web_socket_encoder_unittest.cc", |
| 62 | ] |
| 63 | deps = [ |
| 64 | ":http_server", |
| 65 | "//base", |
| 66 | "//net", |
| 67 | "//net:test_support", |
| 68 | "//testing/gtest", |
| 69 | ] |
| 70 | } |
| 71 | } |
| 72 | |
Zhaoyang Li | ad83de4 | 2021-11-01 20:54:40 | [diff] [blame] | 73 | if (enable_websockets && use_fuzzing_engine) { |
| 74 | # This is a separate target because //net/server:http_server |
| 75 | # wants to limit its visibility to a select number of target, but the |
| 76 | # "fuzzer_test" template expands on iOS to many targets that need to |
| 77 | # have the "deps" information propagated in order to support "fat" |
| 78 | # binaries. |
| 79 | source_set("net_http_server_fuzzer_deps") { |
| 80 | testonly = true |
| 81 | visibility = [ |
| 82 | ":net_http_server_fuzzer", |
| 83 | ":net_http_server_fuzzer_arch_executable", |
| 84 | ":net_http_server_fuzzer_arch_executable_sources", |
| 85 | ":run_net_http_server_fuzzer", |
| 86 | ] |
| 87 | public_deps = [ |
Helen Li | c51db4c | 2018-06-14 22:05:04 | [diff] [blame] | 88 | ":http_server", |
| 89 | "//base", |
| 90 | "//net", |
| 91 | "//net:net_fuzzer_test_support", |
| 92 | "//net:test_support", |
| 93 | ] |
Zhaoyang Li | ad83de4 | 2021-11-01 20:54:40 | [diff] [blame] | 94 | } |
| 95 | |
| 96 | fuzzer_test("net_http_server_fuzzer") { |
| 97 | sources = [ "http_server_fuzzer.cc" ] |
| 98 | deps = [ ":net_http_server_fuzzer_deps" ] |
Helen Li | c51db4c | 2018-06-14 22:05:04 | [diff] [blame] | 99 | dict = "//net/data/fuzzer_dictionaries/net_http_server_fuzzer.dict" |
| 100 | seed_corpus = "//net/data/fuzzer_data/http_server_requests/" |
| 101 | } |
| 102 | } |