xref: /aosp_15_r20/external/cronet/net/server/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1# Copyright 2018 The Chromium Authors
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 = [
14    ":net_http_server_fuzzer_deps",
15    ":tests",
16    "//chrome/browser/devtools",
17    "//chrome/test/chromedriver/*",
18    "//content/browser",
19    "//net:net_web_socket_encoder_fuzzer_deps",
20  ]
21
22  friend = [
23    ":net_http_server_fuzzer",
24    "//net:net_web_socket_encoder_fuzzer",
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
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
73if (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_executable",
84      ":run_net_http_server_fuzzer",
85    ]
86    public_deps = [
87      ":http_server",
88      "//base",
89      "//net",
90      "//net:net_fuzzer_test_support",
91      "//net:test_support",
92    ]
93  }
94
95  fuzzer_test("net_http_server_fuzzer") {
96    sources = [ "http_server_fuzzer.cc" ]
97    deps = [ ":net_http_server_fuzzer_deps" ]
98    dict = "//net/data/fuzzer_dictionaries/net_http_server_fuzzer.dict"
99    seed_corpus = "//net/data/fuzzer_data/http_server_requests/"
100  }
101}
102