blob: fb3d3ffb55e6136aa786cade853ee697b78ae145 [file] [log] [blame]
Helen Lic51db4c2018-06-14 22:05:041# 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
5import("//net/features.gni")
6import("//testing/libfuzzer/fuzzer_test.gni")
7
8static_library("http_server") {
9 public = []
10
11 # This target is being deprecated. Use //services/network/public/cpp/server
12 # instead.
13 visibility = [
Zhaoyang Liad83de42021-11-01 20:54:4014 ":net_http_server_fuzzer_deps",
Helen Lic51db4c2018-06-14 22:05:0415 ":tests",
16 "//chrome/browser/devtools",
17 "//chrome/test/chromedriver/*",
18 "//content/browser",
Zhaoyang Liad83de42021-11-01 20:54:4019 "//net:net_web_socket_encoder_fuzzer_deps",
Helen Lic51db4c2018-06-14 22:05:0420 ]
21
22 friend = [
23 ":net_http_server_fuzzer",
Shiho Noda59af2cc2021-09-07 04:11:1624 "//net:net_web_socket_encoder_fuzzer",
Helen Lic51db4c2018-06-14 22:05:0425 ":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
54source_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 Liad83de42021-11-01 20:54:4073if (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 Lic51db4c2018-06-14 22:05:0488 ":http_server",
89 "//base",
90 "//net",
91 "//net:net_fuzzer_test_support",
92 "//net:test_support",
93 ]
Zhaoyang Liad83de42021-11-01 20:54:4094 }
95
96 fuzzer_test("net_http_server_fuzzer") {
97 sources = [ "http_server_fuzzer.cc" ]
98 deps = [ ":net_http_server_fuzzer_deps" ]
Helen Lic51db4c2018-06-14 22:05:0499 dict = "//net/data/fuzzer_dictionaries/net_http_server_fuzzer.dict"
100 seed_corpus = "//net/data/fuzzer_data/http_server_requests/"
101 }
102}