1# Copyright (c) 2020 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("//testing/libfuzzer/fuzzer_test.gni")
6import("//third_party/protobuf/proto_library.gni")
7
8# Since //net and //net/third_party/quiche have a circular dependency on each
9# other, exporting dependencies from the :quiche target directly does not work.
10# Thus, all public dependencies for QUICHE should go into the target below,
11# which is in turn propagated to all of //net source sets.
12source_set("quiche_public_deps") {
13  visibility = [ "//net:net_public_deps" ]
14
15  public_deps = [ "//third_party/abseil-cpp:absl" ]
16}
17
18source_set("quiche") {
19  sources = [
20    "src/quic/core/quic_error_codes.cc",
21    "src/quic/core/quic_error_codes.h",
22  ]
23
24  if (!is_nacl) {
25    sources += [
26      "src/common/platform/api/quiche_export.h",
27      "src/common/platform/api/quiche_logging.h",
28      "src/common/platform/api/quiche_str_cat.h",
29      "src/common/platform/api/quiche_string_piece.h",
30      "src/common/platform/api/quiche_text_utils.h",
31      "src/common/platform/api/quiche_time_utils.h",
32      "src/common/platform/api/quiche_unordered_containers.h",
33      "src/common/quiche_data_reader.cc",
34      "src/common/quiche_data_reader.h",
35      "src/common/quiche_data_writer.cc",
36      "src/common/quiche_data_writer.h",
37      "src/common/quiche_endian.h",
38      "src/common/simple_linked_hash_map.h",
39      "src/http2/decoder/decode_buffer.cc",
40      "src/http2/decoder/decode_buffer.h",
41      "src/http2/decoder/decode_http2_structures.cc",
42      "src/http2/decoder/decode_http2_structures.h",
43      "src/http2/decoder/decode_status.cc",
44      "src/http2/decoder/decode_status.h",
45      "src/http2/decoder/frame_decoder_state.cc",
46      "src/http2/decoder/frame_decoder_state.h",
47      "src/http2/decoder/http2_frame_decoder.cc",
48      "src/http2/decoder/http2_frame_decoder.h",
49      "src/http2/decoder/http2_frame_decoder_listener.cc",
50      "src/http2/decoder/http2_frame_decoder_listener.h",
51      "src/http2/decoder/http2_structure_decoder.cc",
52      "src/http2/decoder/http2_structure_decoder.h",
53      "src/http2/decoder/payload_decoders/altsvc_payload_decoder.cc",
54      "src/http2/decoder/payload_decoders/altsvc_payload_decoder.h",
55      "src/http2/decoder/payload_decoders/continuation_payload_decoder.cc",
56      "src/http2/decoder/payload_decoders/continuation_payload_decoder.h",
57      "src/http2/decoder/payload_decoders/data_payload_decoder.cc",
58      "src/http2/decoder/payload_decoders/data_payload_decoder.h",
59      "src/http2/decoder/payload_decoders/goaway_payload_decoder.cc",
60      "src/http2/decoder/payload_decoders/goaway_payload_decoder.h",
61      "src/http2/decoder/payload_decoders/headers_payload_decoder.cc",
62      "src/http2/decoder/payload_decoders/headers_payload_decoder.h",
63      "src/http2/decoder/payload_decoders/ping_payload_decoder.cc",
64      "src/http2/decoder/payload_decoders/ping_payload_decoder.h",
65      "src/http2/decoder/payload_decoders/priority_payload_decoder.cc",
66      "src/http2/decoder/payload_decoders/priority_payload_decoder.h",
67      "src/http2/decoder/payload_decoders/push_promise_payload_decoder.cc",
68      "src/http2/decoder/payload_decoders/push_promise_payload_decoder.h",
69      "src/http2/decoder/payload_decoders/rst_stream_payload_decoder.cc",
70      "src/http2/decoder/payload_decoders/rst_stream_payload_decoder.h",
71      "src/http2/decoder/payload_decoders/settings_payload_decoder.cc",
72      "src/http2/decoder/payload_decoders/settings_payload_decoder.h",
73      "src/http2/decoder/payload_decoders/unknown_payload_decoder.cc",
74      "src/http2/decoder/payload_decoders/unknown_payload_decoder.h",
75      "src/http2/decoder/payload_decoders/window_update_payload_decoder.cc",
76      "src/http2/decoder/payload_decoders/window_update_payload_decoder.h",
77      "src/http2/hpack/decoder/hpack_block_decoder.cc",
78      "src/http2/hpack/decoder/hpack_block_decoder.h",
79      "src/http2/hpack/decoder/hpack_decoder.cc",
80      "src/http2/hpack/decoder/hpack_decoder.h",
81      "src/http2/hpack/decoder/hpack_decoder_listener.cc",
82      "src/http2/hpack/decoder/hpack_decoder_listener.h",
83      "src/http2/hpack/decoder/hpack_decoder_state.cc",
84      "src/http2/hpack/decoder/hpack_decoder_state.h",
85      "src/http2/hpack/decoder/hpack_decoder_string_buffer.cc",
86      "src/http2/hpack/decoder/hpack_decoder_string_buffer.h",
87      "src/http2/hpack/decoder/hpack_decoder_tables.cc",
88      "src/http2/hpack/decoder/hpack_decoder_tables.h",
89      "src/http2/hpack/decoder/hpack_decoding_error.cc",
90      "src/http2/hpack/decoder/hpack_decoding_error.h",
91      "src/http2/hpack/decoder/hpack_entry_decoder.cc",
92      "src/http2/hpack/decoder/hpack_entry_decoder.h",
93      "src/http2/hpack/decoder/hpack_entry_decoder_listener.cc",
94      "src/http2/hpack/decoder/hpack_entry_decoder_listener.h",
95      "src/http2/hpack/decoder/hpack_entry_type_decoder.cc",
96      "src/http2/hpack/decoder/hpack_entry_type_decoder.h",
97      "src/http2/hpack/decoder/hpack_string_decoder.cc",
98      "src/http2/hpack/decoder/hpack_string_decoder.h",
99      "src/http2/hpack/decoder/hpack_string_decoder_listener.cc",
100      "src/http2/hpack/decoder/hpack_string_decoder_listener.h",
101      "src/http2/hpack/decoder/hpack_whole_entry_buffer.cc",
102      "src/http2/hpack/decoder/hpack_whole_entry_buffer.h",
103      "src/http2/hpack/decoder/hpack_whole_entry_listener.cc",
104      "src/http2/hpack/decoder/hpack_whole_entry_listener.h",
105      "src/http2/hpack/hpack_static_table_entries.inc",
106      "src/http2/hpack/hpack_string.cc",
107      "src/http2/hpack/hpack_string.h",
108      "src/http2/hpack/http2_hpack_constants.cc",
109      "src/http2/hpack/http2_hpack_constants.h",
110      "src/http2/hpack/huffman/hpack_huffman_decoder.cc",
111      "src/http2/hpack/huffman/hpack_huffman_decoder.h",
112      "src/http2/hpack/huffman/hpack_huffman_encoder.cc",
113      "src/http2/hpack/huffman/hpack_huffman_encoder.h",
114      "src/http2/hpack/huffman/huffman_spec_tables.cc",
115      "src/http2/hpack/huffman/huffman_spec_tables.h",
116      "src/http2/hpack/varint/hpack_varint_decoder.cc",
117      "src/http2/hpack/varint/hpack_varint_decoder.h",
118      "src/http2/hpack/varint/hpack_varint_encoder.cc",
119      "src/http2/hpack/varint/hpack_varint_encoder.h",
120      "src/http2/http2_constants.cc",
121      "src/http2/http2_constants.h",
122      "src/http2/http2_structures.cc",
123      "src/http2/http2_structures.h",
124      "src/http2/platform/api/http2_bug_tracker.h",
125      "src/http2/platform/api/http2_containers.h",
126      "src/http2/platform/api/http2_estimate_memory_usage.h",
127      "src/http2/platform/api/http2_flag_utils.h",
128      "src/http2/platform/api/http2_flags.h",
129      "src/http2/platform/api/http2_logging.h",
130      "src/http2/platform/api/http2_macros.h",
131      "src/http2/platform/api/http2_string_utils.h",
132      "src/quic/core/congestion_control/bandwidth_sampler.cc",
133      "src/quic/core/congestion_control/bandwidth_sampler.h",
134      "src/quic/core/congestion_control/bbr2_drain.cc",
135      "src/quic/core/congestion_control/bbr2_drain.h",
136      "src/quic/core/congestion_control/bbr2_misc.cc",
137      "src/quic/core/congestion_control/bbr2_misc.h",
138      "src/quic/core/congestion_control/bbr2_probe_bw.cc",
139      "src/quic/core/congestion_control/bbr2_probe_bw.h",
140      "src/quic/core/congestion_control/bbr2_probe_rtt.cc",
141      "src/quic/core/congestion_control/bbr2_probe_rtt.h",
142      "src/quic/core/congestion_control/bbr2_sender.cc",
143      "src/quic/core/congestion_control/bbr2_sender.h",
144      "src/quic/core/congestion_control/bbr2_startup.cc",
145      "src/quic/core/congestion_control/bbr2_startup.h",
146      "src/quic/core/congestion_control/bbr_sender.cc",
147      "src/quic/core/congestion_control/bbr_sender.h",
148      "src/quic/core/congestion_control/cubic_bytes.cc",
149      "src/quic/core/congestion_control/cubic_bytes.h",
150      "src/quic/core/congestion_control/general_loss_algorithm.cc",
151      "src/quic/core/congestion_control/general_loss_algorithm.h",
152      "src/quic/core/congestion_control/hybrid_slow_start.cc",
153      "src/quic/core/congestion_control/hybrid_slow_start.h",
154      "src/quic/core/congestion_control/loss_detection_interface.h",
155      "src/quic/core/congestion_control/pacing_sender.cc",
156      "src/quic/core/congestion_control/pacing_sender.h",
157      "src/quic/core/congestion_control/prr_sender.cc",
158      "src/quic/core/congestion_control/prr_sender.h",
159      "src/quic/core/congestion_control/rtt_stats.cc",
160      "src/quic/core/congestion_control/rtt_stats.h",
161      "src/quic/core/congestion_control/send_algorithm_interface.cc",
162      "src/quic/core/congestion_control/send_algorithm_interface.h",
163      "src/quic/core/congestion_control/tcp_cubic_sender_bytes.cc",
164      "src/quic/core/congestion_control/tcp_cubic_sender_bytes.h",
165      "src/quic/core/congestion_control/uber_loss_algorithm.cc",
166      "src/quic/core/congestion_control/uber_loss_algorithm.h",
167      "src/quic/core/congestion_control/windowed_filter.h",
168      "src/quic/core/crypto/aead_base_decrypter.cc",
169      "src/quic/core/crypto/aead_base_decrypter.h",
170      "src/quic/core/crypto/aead_base_encrypter.cc",
171      "src/quic/core/crypto/aead_base_encrypter.h",
172      "src/quic/core/crypto/aes_128_gcm_12_decrypter.cc",
173      "src/quic/core/crypto/aes_128_gcm_12_decrypter.h",
174      "src/quic/core/crypto/aes_128_gcm_12_encrypter.cc",
175      "src/quic/core/crypto/aes_128_gcm_12_encrypter.h",
176      "src/quic/core/crypto/aes_128_gcm_decrypter.cc",
177      "src/quic/core/crypto/aes_128_gcm_decrypter.h",
178      "src/quic/core/crypto/aes_128_gcm_encrypter.cc",
179      "src/quic/core/crypto/aes_128_gcm_encrypter.h",
180      "src/quic/core/crypto/aes_256_gcm_decrypter.cc",
181      "src/quic/core/crypto/aes_256_gcm_decrypter.h",
182      "src/quic/core/crypto/aes_256_gcm_encrypter.cc",
183      "src/quic/core/crypto/aes_256_gcm_encrypter.h",
184      "src/quic/core/crypto/aes_base_decrypter.cc",
185      "src/quic/core/crypto/aes_base_decrypter.h",
186      "src/quic/core/crypto/aes_base_encrypter.cc",
187      "src/quic/core/crypto/aes_base_encrypter.h",
188      "src/quic/core/crypto/boring_utils.h",
189      "src/quic/core/crypto/cert_compressor.cc",
190      "src/quic/core/crypto/cert_compressor.h",
191      "src/quic/core/crypto/certificate_view.cc",
192      "src/quic/core/crypto/certificate_view.h",
193      "src/quic/core/crypto/chacha20_poly1305_decrypter.cc",
194      "src/quic/core/crypto/chacha20_poly1305_decrypter.h",
195      "src/quic/core/crypto/chacha20_poly1305_encrypter.cc",
196      "src/quic/core/crypto/chacha20_poly1305_encrypter.h",
197      "src/quic/core/crypto/chacha20_poly1305_tls_decrypter.cc",
198      "src/quic/core/crypto/chacha20_poly1305_tls_decrypter.h",
199      "src/quic/core/crypto/chacha20_poly1305_tls_encrypter.cc",
200      "src/quic/core/crypto/chacha20_poly1305_tls_encrypter.h",
201      "src/quic/core/crypto/chacha_base_decrypter.cc",
202      "src/quic/core/crypto/chacha_base_decrypter.h",
203      "src/quic/core/crypto/chacha_base_encrypter.cc",
204      "src/quic/core/crypto/chacha_base_encrypter.h",
205      "src/quic/core/crypto/channel_id.cc",
206      "src/quic/core/crypto/channel_id.h",
207      "src/quic/core/crypto/common_cert_set.cc",
208      "src/quic/core/crypto/common_cert_set.h",
209      "src/quic/core/crypto/crypto_framer.cc",
210      "src/quic/core/crypto/crypto_framer.h",
211      "src/quic/core/crypto/crypto_handshake.cc",
212      "src/quic/core/crypto/crypto_handshake.h",
213      "src/quic/core/crypto/crypto_handshake_message.cc",
214      "src/quic/core/crypto/crypto_handshake_message.h",
215      "src/quic/core/crypto/crypto_message_parser.h",
216      "src/quic/core/crypto/crypto_protocol.h",
217      "src/quic/core/crypto/crypto_secret_boxer.cc",
218      "src/quic/core/crypto/crypto_secret_boxer.h",
219      "src/quic/core/crypto/crypto_utils.cc",
220      "src/quic/core/crypto/crypto_utils.h",
221      "src/quic/core/crypto/curve25519_key_exchange.cc",
222      "src/quic/core/crypto/curve25519_key_exchange.h",
223      "src/quic/core/crypto/key_exchange.cc",
224      "src/quic/core/crypto/key_exchange.h",
225      "src/quic/core/crypto/null_decrypter.cc",
226      "src/quic/core/crypto/null_decrypter.h",
227      "src/quic/core/crypto/null_encrypter.cc",
228      "src/quic/core/crypto/null_encrypter.h",
229      "src/quic/core/crypto/p256_key_exchange.cc",
230      "src/quic/core/crypto/p256_key_exchange.h",
231      "src/quic/core/crypto/proof_source.cc",
232      "src/quic/core/crypto/proof_source.h",
233      "src/quic/core/crypto/proof_verifier.h",
234      "src/quic/core/crypto/quic_compressed_certs_cache.cc",
235      "src/quic/core/crypto/quic_compressed_certs_cache.h",
236      "src/quic/core/crypto/quic_crypter.cc",
237      "src/quic/core/crypto/quic_crypter.h",
238      "src/quic/core/crypto/quic_crypto_client_config.cc",
239      "src/quic/core/crypto/quic_crypto_client_config.h",
240      "src/quic/core/crypto/quic_crypto_proof.cc",
241      "src/quic/core/crypto/quic_crypto_proof.h",
242      "src/quic/core/crypto/quic_crypto_server_config.cc",
243      "src/quic/core/crypto/quic_crypto_server_config.h",
244      "src/quic/core/crypto/quic_decrypter.cc",
245      "src/quic/core/crypto/quic_decrypter.h",
246      "src/quic/core/crypto/quic_encrypter.cc",
247      "src/quic/core/crypto/quic_encrypter.h",
248      "src/quic/core/crypto/quic_hkdf.cc",
249      "src/quic/core/crypto/quic_hkdf.h",
250      "src/quic/core/crypto/quic_random.cc",
251      "src/quic/core/crypto/quic_random.h",
252      "src/quic/core/crypto/server_proof_verifier.h",
253      "src/quic/core/crypto/tls_client_connection.cc",
254      "src/quic/core/crypto/tls_client_connection.h",
255      "src/quic/core/crypto/tls_connection.cc",
256      "src/quic/core/crypto/tls_connection.h",
257      "src/quic/core/crypto/tls_server_connection.cc",
258      "src/quic/core/crypto/tls_server_connection.h",
259      "src/quic/core/crypto/transport_parameters.cc",
260      "src/quic/core/crypto/transport_parameters.h",
261      "src/quic/core/frames/quic_ack_frame.cc",
262      "src/quic/core/frames/quic_ack_frame.h",
263      "src/quic/core/frames/quic_ack_frequency_frame.cc",
264      "src/quic/core/frames/quic_ack_frequency_frame.h",
265      "src/quic/core/frames/quic_blocked_frame.cc",
266      "src/quic/core/frames/quic_blocked_frame.h",
267      "src/quic/core/frames/quic_connection_close_frame.cc",
268      "src/quic/core/frames/quic_connection_close_frame.h",
269      "src/quic/core/frames/quic_crypto_frame.cc",
270      "src/quic/core/frames/quic_crypto_frame.h",
271      "src/quic/core/frames/quic_frame.cc",
272      "src/quic/core/frames/quic_frame.h",
273      "src/quic/core/frames/quic_goaway_frame.cc",
274      "src/quic/core/frames/quic_goaway_frame.h",
275      "src/quic/core/frames/quic_handshake_done_frame.cc",
276      "src/quic/core/frames/quic_handshake_done_frame.h",
277      "src/quic/core/frames/quic_inlined_frame.h",
278      "src/quic/core/frames/quic_max_streams_frame.cc",
279      "src/quic/core/frames/quic_max_streams_frame.h",
280      "src/quic/core/frames/quic_message_frame.cc",
281      "src/quic/core/frames/quic_message_frame.h",
282      "src/quic/core/frames/quic_mtu_discovery_frame.h",
283      "src/quic/core/frames/quic_new_connection_id_frame.cc",
284      "src/quic/core/frames/quic_new_connection_id_frame.h",
285      "src/quic/core/frames/quic_new_token_frame.cc",
286      "src/quic/core/frames/quic_new_token_frame.h",
287      "src/quic/core/frames/quic_padding_frame.cc",
288      "src/quic/core/frames/quic_padding_frame.h",
289      "src/quic/core/frames/quic_path_challenge_frame.cc",
290      "src/quic/core/frames/quic_path_challenge_frame.h",
291      "src/quic/core/frames/quic_path_response_frame.cc",
292      "src/quic/core/frames/quic_path_response_frame.h",
293      "src/quic/core/frames/quic_ping_frame.cc",
294      "src/quic/core/frames/quic_ping_frame.h",
295      "src/quic/core/frames/quic_retire_connection_id_frame.cc",
296      "src/quic/core/frames/quic_retire_connection_id_frame.h",
297      "src/quic/core/frames/quic_rst_stream_frame.cc",
298      "src/quic/core/frames/quic_rst_stream_frame.h",
299      "src/quic/core/frames/quic_stop_sending_frame.cc",
300      "src/quic/core/frames/quic_stop_sending_frame.h",
301      "src/quic/core/frames/quic_stop_waiting_frame.cc",
302      "src/quic/core/frames/quic_stop_waiting_frame.h",
303      "src/quic/core/frames/quic_stream_frame.cc",
304      "src/quic/core/frames/quic_stream_frame.h",
305      "src/quic/core/frames/quic_streams_blocked_frame.cc",
306      "src/quic/core/frames/quic_streams_blocked_frame.h",
307      "src/quic/core/frames/quic_window_update_frame.cc",
308      "src/quic/core/frames/quic_window_update_frame.h",
309      "src/quic/core/handshaker_delegate_interface.h",
310      "src/quic/core/http/http_constants.h",
311      "src/quic/core/http/http_decoder.cc",
312      "src/quic/core/http/http_decoder.h",
313      "src/quic/core/http/http_encoder.cc",
314      "src/quic/core/http/http_encoder.h",
315      "src/quic/core/http/http_frames.h",
316      "src/quic/core/http/quic_client_promised_info.cc",
317      "src/quic/core/http/quic_client_promised_info.h",
318      "src/quic/core/http/quic_client_push_promise_index.cc",
319      "src/quic/core/http/quic_client_push_promise_index.h",
320      "src/quic/core/http/quic_header_list.cc",
321      "src/quic/core/http/quic_header_list.h",
322      "src/quic/core/http/quic_headers_stream.cc",
323      "src/quic/core/http/quic_headers_stream.h",
324      "src/quic/core/http/quic_receive_control_stream.cc",
325      "src/quic/core/http/quic_receive_control_stream.h",
326      "src/quic/core/http/quic_send_control_stream.cc",
327      "src/quic/core/http/quic_send_control_stream.h",
328      "src/quic/core/http/quic_server_session_base.cc",
329      "src/quic/core/http/quic_server_session_base.h",
330      "src/quic/core/http/quic_spdy_client_session_base.cc",
331      "src/quic/core/http/quic_spdy_client_session_base.h",
332      "src/quic/core/http/quic_spdy_session.cc",
333      "src/quic/core/http/quic_spdy_session.h",
334      "src/quic/core/http/quic_spdy_stream.cc",
335      "src/quic/core/http/quic_spdy_stream.h",
336      "src/quic/core/http/quic_spdy_stream_body_manager.cc",
337      "src/quic/core/http/quic_spdy_stream_body_manager.h",
338      "src/quic/core/http/spdy_server_push_utils.cc",
339      "src/quic/core/http/spdy_server_push_utils.h",
340      "src/quic/core/http/spdy_utils.cc",
341      "src/quic/core/http/spdy_utils.h",
342      "src/quic/core/legacy_quic_stream_id_manager.cc",
343      "src/quic/core/legacy_quic_stream_id_manager.h",
344      "src/quic/core/packet_number_indexed_queue.h",
345      "src/quic/core/proto/cached_network_parameters_proto.h",
346      "src/quic/core/proto/crypto_server_config_proto.h",
347      "src/quic/core/proto/source_address_token_proto.h",
348      "src/quic/core/qpack/qpack_blocking_manager.cc",
349      "src/quic/core/qpack/qpack_blocking_manager.h",
350      "src/quic/core/qpack/qpack_decoded_headers_accumulator.cc",
351      "src/quic/core/qpack/qpack_decoded_headers_accumulator.h",
352      "src/quic/core/qpack/qpack_decoder.cc",
353      "src/quic/core/qpack/qpack_decoder.h",
354      "src/quic/core/qpack/qpack_decoder_stream_receiver.cc",
355      "src/quic/core/qpack/qpack_decoder_stream_receiver.h",
356      "src/quic/core/qpack/qpack_decoder_stream_sender.cc",
357      "src/quic/core/qpack/qpack_decoder_stream_sender.h",
358      "src/quic/core/qpack/qpack_encoder.cc",
359      "src/quic/core/qpack/qpack_encoder.h",
360      "src/quic/core/qpack/qpack_encoder_stream_receiver.cc",
361      "src/quic/core/qpack/qpack_encoder_stream_receiver.h",
362      "src/quic/core/qpack/qpack_encoder_stream_sender.cc",
363      "src/quic/core/qpack/qpack_encoder_stream_sender.h",
364      "src/quic/core/qpack/qpack_header_table.cc",
365      "src/quic/core/qpack/qpack_header_table.h",
366      "src/quic/core/qpack/qpack_index_conversions.cc",
367      "src/quic/core/qpack/qpack_index_conversions.h",
368      "src/quic/core/qpack/qpack_instruction_decoder.cc",
369      "src/quic/core/qpack/qpack_instruction_decoder.h",
370      "src/quic/core/qpack/qpack_instruction_encoder.cc",
371      "src/quic/core/qpack/qpack_instruction_encoder.h",
372      "src/quic/core/qpack/qpack_instructions.cc",
373      "src/quic/core/qpack/qpack_instructions.h",
374      "src/quic/core/qpack/qpack_progressive_decoder.cc",
375      "src/quic/core/qpack/qpack_progressive_decoder.h",
376      "src/quic/core/qpack/qpack_receive_stream.cc",
377      "src/quic/core/qpack/qpack_receive_stream.h",
378      "src/quic/core/qpack/qpack_required_insert_count.cc",
379      "src/quic/core/qpack/qpack_required_insert_count.h",
380      "src/quic/core/qpack/qpack_send_stream.cc",
381      "src/quic/core/qpack/qpack_send_stream.h",
382      "src/quic/core/qpack/qpack_static_table.cc",
383      "src/quic/core/qpack/qpack_static_table.h",
384      "src/quic/core/qpack/qpack_stream_receiver.h",
385      "src/quic/core/qpack/qpack_stream_sender_delegate.h",
386      "src/quic/core/qpack/value_splitting_header_list.cc",
387      "src/quic/core/qpack/value_splitting_header_list.h",
388      "src/quic/core/quic_ack_listener_interface.cc",
389      "src/quic/core/quic_ack_listener_interface.h",
390      "src/quic/core/quic_alarm.cc",
391      "src/quic/core/quic_alarm.h",
392      "src/quic/core/quic_alarm_factory.h",
393      "src/quic/core/quic_arena_scoped_ptr.h",
394      "src/quic/core/quic_bandwidth.cc",
395      "src/quic/core/quic_bandwidth.h",
396      "src/quic/core/quic_blocked_writer_interface.h",
397      "src/quic/core/quic_buffer_allocator.cc",
398      "src/quic/core/quic_buffer_allocator.h",
399      "src/quic/core/quic_circular_deque.h",
400      "src/quic/core/quic_clock.cc",
401      "src/quic/core/quic_clock.h",
402      "src/quic/core/quic_coalesced_packet.cc",
403      "src/quic/core/quic_coalesced_packet.h",
404      "src/quic/core/quic_config.cc",
405      "src/quic/core/quic_config.h",
406      "src/quic/core/quic_connection.cc",
407      "src/quic/core/quic_connection.h",
408      "src/quic/core/quic_connection_id.cc",
409      "src/quic/core/quic_connection_id.h",
410      "src/quic/core/quic_connection_stats.cc",
411      "src/quic/core/quic_connection_stats.h",
412      "src/quic/core/quic_constants.cc",
413      "src/quic/core/quic_constants.h",
414      "src/quic/core/quic_control_frame_manager.cc",
415      "src/quic/core/quic_control_frame_manager.h",
416      "src/quic/core/quic_crypto_client_handshaker.cc",
417      "src/quic/core/quic_crypto_client_handshaker.h",
418      "src/quic/core/quic_crypto_client_stream.cc",
419      "src/quic/core/quic_crypto_client_stream.h",
420      "src/quic/core/quic_crypto_handshaker.cc",
421      "src/quic/core/quic_crypto_handshaker.h",
422      "src/quic/core/quic_crypto_server_stream.cc",
423      "src/quic/core/quic_crypto_server_stream.h",
424      "src/quic/core/quic_crypto_server_stream_base.cc",
425      "src/quic/core/quic_crypto_server_stream_base.h",
426      "src/quic/core/quic_crypto_stream.cc",
427      "src/quic/core/quic_crypto_stream.h",
428      "src/quic/core/quic_data_reader.cc",
429      "src/quic/core/quic_data_reader.h",
430      "src/quic/core/quic_data_writer.cc",
431      "src/quic/core/quic_data_writer.h",
432      "src/quic/core/quic_datagram_queue.cc",
433      "src/quic/core/quic_datagram_queue.h",
434      "src/quic/core/quic_flow_controller.cc",
435      "src/quic/core/quic_flow_controller.h",
436      "src/quic/core/quic_framer.cc",
437      "src/quic/core/quic_framer.h",
438      "src/quic/core/quic_idle_network_detector.cc",
439      "src/quic/core/quic_idle_network_detector.h",
440      "src/quic/core/quic_interval.h",
441      "src/quic/core/quic_interval_deque.h",
442      "src/quic/core/quic_interval_set.h",
443      "src/quic/core/quic_legacy_version_encapsulator.cc",
444      "src/quic/core/quic_legacy_version_encapsulator.h",
445      "src/quic/core/quic_lru_cache.h",
446      "src/quic/core/quic_mtu_discovery.cc",
447      "src/quic/core/quic_mtu_discovery.h",
448      "src/quic/core/quic_network_blackhole_detector.cc",
449      "src/quic/core/quic_network_blackhole_detector.h",
450      "src/quic/core/quic_one_block_arena.h",
451      "src/quic/core/quic_packet_creator.cc",
452      "src/quic/core/quic_packet_creator.h",
453      "src/quic/core/quic_packet_number.cc",
454      "src/quic/core/quic_packet_number.h",
455      "src/quic/core/quic_packet_writer.h",
456      "src/quic/core/quic_packets.cc",
457      "src/quic/core/quic_packets.h",
458      "src/quic/core/quic_protocol_flags_list.h",
459      "src/quic/core/quic_received_packet_manager.cc",
460      "src/quic/core/quic_received_packet_manager.h",
461      "src/quic/core/quic_sent_packet_manager.cc",
462      "src/quic/core/quic_sent_packet_manager.h",
463      "src/quic/core/quic_server_id.cc",
464      "src/quic/core/quic_server_id.h",
465      "src/quic/core/quic_session.cc",
466      "src/quic/core/quic_session.h",
467      "src/quic/core/quic_simple_buffer_allocator.cc",
468      "src/quic/core/quic_simple_buffer_allocator.h",
469      "src/quic/core/quic_socket_address_coder.cc",
470      "src/quic/core/quic_socket_address_coder.h",
471      "src/quic/core/quic_stream.cc",
472      "src/quic/core/quic_stream.h",
473      "src/quic/core/quic_stream_frame_data_producer.h",
474      "src/quic/core/quic_stream_id_manager.cc",
475      "src/quic/core/quic_stream_id_manager.h",
476      "src/quic/core/quic_stream_send_buffer.cc",
477      "src/quic/core/quic_stream_send_buffer.h",
478      "src/quic/core/quic_stream_sequencer.cc",
479      "src/quic/core/quic_stream_sequencer.h",
480      "src/quic/core/quic_stream_sequencer_buffer.cc",
481      "src/quic/core/quic_stream_sequencer_buffer.h",
482      "src/quic/core/quic_sustained_bandwidth_recorder.cc",
483      "src/quic/core/quic_sustained_bandwidth_recorder.h",
484      "src/quic/core/quic_tag.cc",
485      "src/quic/core/quic_tag.h",
486      "src/quic/core/quic_time.cc",
487      "src/quic/core/quic_time.h",
488      "src/quic/core/quic_time_accumulator.h",
489      "src/quic/core/quic_transmission_info.cc",
490      "src/quic/core/quic_transmission_info.h",
491      "src/quic/core/quic_types.cc",
492      "src/quic/core/quic_types.h",
493      "src/quic/core/quic_unacked_packet_map.cc",
494      "src/quic/core/quic_unacked_packet_map.h",
495      "src/quic/core/quic_utils.cc",
496      "src/quic/core/quic_utils.h",
497      "src/quic/core/quic_version_manager.cc",
498      "src/quic/core/quic_version_manager.h",
499      "src/quic/core/quic_versions.cc",
500      "src/quic/core/quic_versions.h",
501      "src/quic/core/quic_write_blocked_list.cc",
502      "src/quic/core/quic_write_blocked_list.h",
503      "src/quic/core/session_notifier_interface.h",
504      "src/quic/core/stream_delegate_interface.h",
505      "src/quic/core/tls_client_handshaker.cc",
506      "src/quic/core/tls_client_handshaker.h",
507      "src/quic/core/tls_handshaker.cc",
508      "src/quic/core/tls_handshaker.h",
509      "src/quic/core/tls_server_handshaker.cc",
510      "src/quic/core/tls_server_handshaker.h",
511      "src/quic/core/uber_quic_stream_id_manager.cc",
512      "src/quic/core/uber_quic_stream_id_manager.h",
513      "src/quic/core/uber_received_packet_manager.cc",
514      "src/quic/core/uber_received_packet_manager.h",
515      "src/quic/platform/api/quic_bug_tracker.h",
516      "src/quic/platform/api/quic_cert_utils.h",
517      "src/quic/platform/api/quic_client_stats.h",
518      "src/quic/platform/api/quic_containers.h",
519      "src/quic/platform/api/quic_error_code_wrappers.h",
520      "src/quic/platform/api/quic_estimate_memory_usage.h",
521      "src/quic/platform/api/quic_export.h",
522      "src/quic/platform/api/quic_exported_stats.h",
523      "src/quic/platform/api/quic_file_utils.cc",
524      "src/quic/platform/api/quic_file_utils.h",
525      "src/quic/platform/api/quic_flag_utils.h",
526      "src/quic/platform/api/quic_flags.h",
527      "src/quic/platform/api/quic_hostname_utils.cc",
528      "src/quic/platform/api/quic_hostname_utils.h",
529      "src/quic/platform/api/quic_iovec.h",
530      "src/quic/platform/api/quic_ip_address.cc",
531      "src/quic/platform/api/quic_ip_address.h",
532      "src/quic/platform/api/quic_ip_address_family.h",
533      "src/quic/platform/api/quic_logging.h",
534      "src/quic/platform/api/quic_map_util.h",
535      "src/quic/platform/api/quic_mem_slice.h",
536      "src/quic/platform/api/quic_mem_slice_span.h",
537      "src/quic/platform/api/quic_mem_slice_storage.h",
538      "src/quic/platform/api/quic_mutex.cc",
539      "src/quic/platform/api/quic_mutex.h",
540      "src/quic/platform/api/quic_pcc_sender.h",
541      "src/quic/platform/api/quic_prefetch.h",
542      "src/quic/platform/api/quic_ptr_util.h",
543      "src/quic/platform/api/quic_reference_counted.h",
544      "src/quic/platform/api/quic_server_stats.h",
545      "src/quic/platform/api/quic_sleep.h",
546      "src/quic/platform/api/quic_socket_address.cc",
547      "src/quic/platform/api/quic_socket_address.h",
548      "src/quic/platform/api/quic_stack_trace.h",
549      "src/quic/platform/api/quic_string_utils.h",
550      "src/quic/platform/api/quic_thread.h",
551      "src/quic/platform/api/quic_uint128.h",
552      "src/quic/quic_transport/quic_transport_client_session.cc",
553      "src/quic/quic_transport/quic_transport_client_session.h",
554      "src/quic/quic_transport/quic_transport_protocol.h",
555      "src/quic/quic_transport/quic_transport_server_session.cc",
556      "src/quic/quic_transport/quic_transport_server_session.h",
557      "src/quic/quic_transport/quic_transport_session_interface.h",
558      "src/quic/quic_transport/quic_transport_stream.cc",
559      "src/quic/quic_transport/quic_transport_stream.h",
560      "src/quic/quic_transport/web_transport_fingerprint_proof_verifier.cc",
561      "src/quic/quic_transport/web_transport_fingerprint_proof_verifier.h",
562      "src/spdy/core/fifo_write_scheduler.h",
563      "src/spdy/core/hpack/hpack_constants.cc",
564      "src/spdy/core/hpack/hpack_constants.h",
565      "src/spdy/core/hpack/hpack_decoder_adapter.cc",
566      "src/spdy/core/hpack/hpack_decoder_adapter.h",
567      "src/spdy/core/hpack/hpack_encoder.cc",
568      "src/spdy/core/hpack/hpack_encoder.h",
569      "src/spdy/core/hpack/hpack_entry.cc",
570      "src/spdy/core/hpack/hpack_entry.h",
571      "src/spdy/core/hpack/hpack_header_table.cc",
572      "src/spdy/core/hpack/hpack_header_table.h",
573      "src/spdy/core/hpack/hpack_huffman_table.cc",
574      "src/spdy/core/hpack/hpack_huffman_table.h",
575      "src/spdy/core/hpack/hpack_output_stream.cc",
576      "src/spdy/core/hpack/hpack_output_stream.h",
577      "src/spdy/core/hpack/hpack_static_table.cc",
578      "src/spdy/core/hpack/hpack_static_table.h",
579      "src/spdy/core/http2_frame_decoder_adapter.cc",
580      "src/spdy/core/http2_frame_decoder_adapter.h",
581      "src/spdy/core/http2_priority_write_scheduler.h",
582      "src/spdy/core/lifo_write_scheduler.h",
583      "src/spdy/core/priority_write_scheduler.h",
584      "src/spdy/core/recording_headers_handler.cc",
585      "src/spdy/core/recording_headers_handler.h",
586      "src/spdy/core/spdy_alt_svc_wire_format.cc",
587      "src/spdy/core/spdy_alt_svc_wire_format.h",
588      "src/spdy/core/spdy_bitmasks.h",
589      "src/spdy/core/spdy_frame_builder.cc",
590      "src/spdy/core/spdy_frame_builder.h",
591      "src/spdy/core/spdy_frame_reader.cc",
592      "src/spdy/core/spdy_frame_reader.h",
593      "src/spdy/core/spdy_framer.cc",
594      "src/spdy/core/spdy_framer.h",
595      "src/spdy/core/spdy_header_block.cc",
596      "src/spdy/core/spdy_header_block.h",
597      "src/spdy/core/spdy_header_storage.cc",
598      "src/spdy/core/spdy_header_storage.h",
599      "src/spdy/core/spdy_headers_handler_interface.h",
600      "src/spdy/core/spdy_intrusive_list.h",
601      "src/spdy/core/spdy_pinnable_buffer_piece.cc",
602      "src/spdy/core/spdy_pinnable_buffer_piece.h",
603      "src/spdy/core/spdy_prefixed_buffer_reader.cc",
604      "src/spdy/core/spdy_prefixed_buffer_reader.h",
605      "src/spdy/core/spdy_protocol.cc",
606      "src/spdy/core/spdy_protocol.h",
607      "src/spdy/core/spdy_simple_arena.cc",
608      "src/spdy/core/spdy_simple_arena.h",
609      "src/spdy/core/write_scheduler.h",
610      "src/spdy/core/zero_copy_output_buffer.h",
611      "src/spdy/platform/api/spdy_bug_tracker.h",
612      "src/spdy/platform/api/spdy_containers.h",
613      "src/spdy/platform/api/spdy_estimate_memory_usage.h",
614      "src/spdy/platform/api/spdy_flags.h",
615      "src/spdy/platform/api/spdy_logging.h",
616      "src/spdy/platform/api/spdy_macros.h",
617      "src/spdy/platform/api/spdy_mem_slice.h",
618      "src/spdy/platform/api/spdy_string_utils.h",
619    ]
620  }
621
622  deps = [ "//net:net_deps" ]
623  public_deps = [ "//net:net_public_deps" ]
624}
625
626proto_library("net_quic_proto") {
627  visibility = [ "//net:net_public_deps" ]
628
629  sources = [
630    "src/quic/core/proto/cached_network_parameters.proto",
631    "src/quic/core/proto/crypto_server_config.proto",
632    "src/quic/core/proto/source_address_token.proto",
633  ]
634  cc_generator_options = "dllexport_decl=NET_EXPORT_PRIVATE:"
635  cc_include = "net/base/net_export.h"
636  component_build_force_source_set = true
637
638  deps = [ "//net:net_export_header" ]
639
640  defines = [ "NET_IMPLEMENTATION" ]
641
642  extra_configs = [ "//build/config/compiler:wexit_time_destructors" ]
643}
644
645proto_library("net_quic_test_tools_proto") {
646  visibility = [ "//net:net_public_deps" ]
647
648  sources = [ "src/quic/test_tools/send_algorithm_test_result.proto" ]
649  cc_generator_options = "dllexport_decl=NET_EXPORT_PRIVATE:"
650  cc_include = "net/base/net_export.h"
651  component_build_force_source_set = true
652
653  deps = [ "//net:net_export_header" ]
654
655  defines = [ "NET_IMPLEMENTATION" ]
656
657  extra_configs = [ "//build/config/compiler:wexit_time_destructors" ]
658}
659
660if (is_linux || is_chromeos) {
661  source_set("epoll_server_core") {
662    sources = [
663      "src/epoll_server/platform/api/epoll_bug.h",
664      "src/epoll_server/platform/api/epoll_export.h",
665      "src/epoll_server/platform/api/epoll_logging.h",
666      "src/epoll_server/platform/api/epoll_ptr_util.h",
667      "src/epoll_server/platform/api/epoll_thread.h",
668      "src/epoll_server/platform/api/epoll_time.h",
669      "src/epoll_server/simple_epoll_server.cc",
670      "src/epoll_server/simple_epoll_server.h",
671    ]
672    deps = [
673      "//base",
674      "//net",
675    ]
676  }
677
678  source_set("epoll_quic_tools_core") {
679    sources = [
680      "src/quic/core/quic_default_packet_writer.cc",
681      "src/quic/core/quic_default_packet_writer.h",
682      "src/quic/core/quic_epoll_alarm_factory.cc",
683      "src/quic/core/quic_epoll_alarm_factory.h",
684      "src/quic/core/quic_epoll_connection_helper.cc",
685      "src/quic/core/quic_epoll_connection_helper.h",
686      "src/quic/core/quic_packet_reader.cc",
687      "src/quic/core/quic_packet_reader.h",
688      "src/quic/core/quic_udp_socket.h",
689      "src/quic/core/quic_udp_socket_posix.cc",
690      "src/quic/platform/api/quic_epoll.h",
691      "src/quic/platform/api/quic_stream_buffer_allocator.h",
692      "src/quic/platform/api/quic_udp_socket_platform_api.h",
693      "src/quic/tools/quic_client.cc",
694      "src/quic/tools/quic_client.h",
695      "src/quic/tools/quic_client_epoll_network_helper.cc",
696      "src/quic/tools/quic_client_epoll_network_helper.h",
697      "src/quic/tools/quic_server.cc",
698      "src/quic/tools/quic_server.h",
699    ]
700    deps = [
701      "//base",
702      "//net",
703      "//net:epoll_server",
704      "//net:simple_quic_tools",
705      "//third_party/boringssl",
706    ]
707  }
708
709  executable("epoll_quic_client") {
710    sources = [
711      "src/quic/tools/quic_client_bin.cc",
712      "src/quic/tools/quic_epoll_client_factory.cc",
713      "src/quic/tools/quic_epoll_client_factory.h",
714      "src/quic/tools/quic_toy_client.cc",
715      "src/quic/tools/quic_toy_client.h",
716    ]
717    deps = [
718      "//base",
719      "//net",
720      "//net:epoll_quic_tools",
721      "//net:epoll_server",
722      "//net:simple_quic_tools",
723      "//third_party/boringssl",
724    ]
725  }
726
727  executable("epoll_quic_server") {
728    sources = [
729      "src/quic/tools/quic_epoll_server_factory.cc",
730      "src/quic/tools/quic_epoll_server_factory.h",
731      "src/quic/tools/quic_server_bin.cc",
732      "src/quic/tools/quic_toy_server.cc",
733      "src/quic/tools/quic_toy_server.h",
734    ]
735    deps = [
736      "//base",
737      "//net",
738      "//net:epoll_quic_tools",
739      "//net:epoll_server",
740      "//net:simple_quic_tools",
741      "//third_party/boringssl",
742    ]
743  }
744
745  executable("quic_client_interop_test") {
746    testonly = true
747    sources = [ "src/quic/tools/quic_client_interop_test_bin.cc" ]
748    deps = [
749      "//net",
750      "//net:epoll_quic_tools",
751      "//net:quic_test_tools",
752      "//net:simple_quic_tools",
753    ]
754  }
755
756  source_set("masque_tools") {
757    sources = [
758      "src/quic/masque/masque_client_session.cc",
759      "src/quic/masque/masque_client_session.h",
760      "src/quic/masque/masque_client_tools.cc",
761      "src/quic/masque/masque_client_tools.h",
762      "src/quic/masque/masque_compression_engine.cc",
763      "src/quic/masque/masque_compression_engine.h",
764      "src/quic/masque/masque_dispatcher.cc",
765      "src/quic/masque/masque_dispatcher.h",
766      "src/quic/masque/masque_encapsulated_client_session.cc",
767      "src/quic/masque/masque_encapsulated_client_session.h",
768      "src/quic/masque/masque_encapsulated_epoll_client.cc",
769      "src/quic/masque/masque_encapsulated_epoll_client.h",
770      "src/quic/masque/masque_epoll_client.cc",
771      "src/quic/masque/masque_epoll_client.h",
772      "src/quic/masque/masque_epoll_server.cc",
773      "src/quic/masque/masque_epoll_server.h",
774      "src/quic/masque/masque_server_backend.cc",
775      "src/quic/masque/masque_server_backend.h",
776      "src/quic/masque/masque_server_session.cc",
777      "src/quic/masque/masque_server_session.h",
778      "src/quic/masque/masque_utils.cc",
779      "src/quic/masque/masque_utils.h",
780    ]
781    deps = [
782      "//net",
783      "//net:epoll_quic_tools",
784      "//net:simple_quic_tools",
785      "//third_party/boringssl",
786      "//third_party/protobuf:protobuf_lite",
787    ]
788  }
789
790  executable("masque_client") {
791    sources = [ "src/quic/masque/masque_client_bin.cc" ]
792    deps = [
793      ":masque_tools",
794      "//net",
795      "//net:epoll_quic_tools",
796      "//net:simple_quic_tools",
797      "//third_party/boringssl",
798      "//third_party/protobuf:protobuf_lite",
799    ]
800  }
801
802  executable("masque_server") {
803    sources = [ "src/quic/masque/masque_server_bin.cc" ]
804    deps = [
805      ":masque_tools",
806      "//net",
807      "//net:epoll_quic_tools",
808      "//net:simple_quic_tools",
809      "//third_party/boringssl",
810      "//third_party/protobuf:protobuf_lite",
811    ]
812  }
813}
814
815source_set("epoll_server_test_tools_core") {
816  testonly = true
817  sources = [
818    "src/epoll_server/platform/api/epoll_address_test_utils.h",
819    "src/epoll_server/platform/api/epoll_expect_bug.h",
820    "src/epoll_server/platform/api/epoll_test.h",
821  ]
822  deps = [
823    "//base",
824    "//net",
825    "//net:test_support",
826    "//testing/gmock",
827    "//testing/gtest",
828  ]
829}
830
831source_set("quiche_test_tools_core") {
832  testonly = true
833  sources = [
834    "src/common/platform/api/quiche_test.h",
835    "src/common/test_tools/quiche_test_utils.cc",
836    "src/common/test_tools/quiche_test_utils.h",
837  ]
838  deps = [
839    "//net",
840    "//testing/gmock",
841    "//testing/gtest",
842  ]
843}
844
845source_set("quic_test_tools_core") {
846  testonly = true
847  sources = [
848    "src/quic/core/quic_trace_visitor.cc",
849    "src/quic/core/quic_trace_visitor.h",
850    "src/quic/platform/api/quic_epoll_test_tools.h",
851    "src/quic/platform/api/quic_expect_bug.h",
852    "src/quic/platform/api/quic_mock_log.h",
853    "src/quic/platform/api/quic_port_utils.h",
854    "src/quic/platform/api/quic_test.h",
855    "src/quic/platform/api/quic_test_loopback.cc",
856    "src/quic/platform/api/quic_test_loopback.h",
857    "src/quic/platform/api/quic_test_mem_slice_vector.h",
858    "src/quic/platform/api/quic_test_output.h",
859    "src/quic/test_tools/crypto_test_utils.cc",
860    "src/quic/test_tools/crypto_test_utils.h",
861    "src/quic/test_tools/failing_proof_source.cc",
862    "src/quic/test_tools/failing_proof_source.h",
863    "src/quic/test_tools/fake_proof_source.cc",
864    "src/quic/test_tools/fake_proof_source.h",
865    "src/quic/test_tools/first_flight.cc",
866    "src/quic/test_tools/first_flight.h",
867    "src/quic/test_tools/mock_clock.cc",
868    "src/quic/test_tools/mock_clock.h",
869    "src/quic/test_tools/mock_quic_client_promised_info.cc",
870    "src/quic/test_tools/mock_quic_client_promised_info.h",
871    "src/quic/test_tools/mock_quic_dispatcher.cc",
872    "src/quic/test_tools/mock_quic_dispatcher.h",
873    "src/quic/test_tools/mock_quic_session_visitor.cc",
874    "src/quic/test_tools/mock_quic_session_visitor.h",
875    "src/quic/test_tools/mock_quic_spdy_client_stream.cc",
876    "src/quic/test_tools/mock_quic_spdy_client_stream.h",
877    "src/quic/test_tools/mock_random.cc",
878    "src/quic/test_tools/mock_random.h",
879    "src/quic/test_tools/qpack/qpack_decoder_test_utils.cc",
880    "src/quic/test_tools/qpack/qpack_decoder_test_utils.h",
881    "src/quic/test_tools/qpack/qpack_encoder_peer.cc",
882    "src/quic/test_tools/qpack/qpack_encoder_peer.h",
883    "src/quic/test_tools/qpack/qpack_encoder_test_utils.cc",
884    "src/quic/test_tools/qpack/qpack_encoder_test_utils.h",
885    "src/quic/test_tools/qpack/qpack_header_table_peer.cc",
886    "src/quic/test_tools/qpack/qpack_header_table_peer.h",
887    "src/quic/test_tools/qpack/qpack_offline_decoder.cc",
888    "src/quic/test_tools/qpack/qpack_offline_decoder.h",
889    "src/quic/test_tools/qpack/qpack_test_utils.cc",
890    "src/quic/test_tools/qpack/qpack_test_utils.h",
891    "src/quic/test_tools/quic_buffered_packet_store_peer.cc",
892    "src/quic/test_tools/quic_buffered_packet_store_peer.h",
893    "src/quic/test_tools/quic_client_promised_info_peer.cc",
894    "src/quic/test_tools/quic_client_promised_info_peer.h",
895    "src/quic/test_tools/quic_config_peer.cc",
896    "src/quic/test_tools/quic_config_peer.h",
897    "src/quic/test_tools/quic_connection_peer.cc",
898    "src/quic/test_tools/quic_connection_peer.h",
899    "src/quic/test_tools/quic_crypto_server_config_peer.cc",
900    "src/quic/test_tools/quic_crypto_server_config_peer.h",
901    "src/quic/test_tools/quic_dispatcher_peer.cc",
902    "src/quic/test_tools/quic_dispatcher_peer.h",
903    "src/quic/test_tools/quic_flow_controller_peer.cc",
904    "src/quic/test_tools/quic_flow_controller_peer.h",
905    "src/quic/test_tools/quic_framer_peer.cc",
906    "src/quic/test_tools/quic_framer_peer.h",
907    "src/quic/test_tools/quic_interval_deque_peer.h",
908    "src/quic/test_tools/quic_packet_creator_peer.cc",
909    "src/quic/test_tools/quic_packet_creator_peer.h",
910    "src/quic/test_tools/quic_sent_packet_manager_peer.cc",
911    "src/quic/test_tools/quic_sent_packet_manager_peer.h",
912    "src/quic/test_tools/quic_server_session_base_peer.h",
913    "src/quic/test_tools/quic_session_peer.cc",
914    "src/quic/test_tools/quic_session_peer.h",
915    "src/quic/test_tools/quic_spdy_session_peer.cc",
916    "src/quic/test_tools/quic_spdy_session_peer.h",
917    "src/quic/test_tools/quic_spdy_stream_peer.cc",
918    "src/quic/test_tools/quic_spdy_stream_peer.h",
919    "src/quic/test_tools/quic_stream_id_manager_peer.cc",
920    "src/quic/test_tools/quic_stream_id_manager_peer.h",
921    "src/quic/test_tools/quic_stream_peer.cc",
922    "src/quic/test_tools/quic_stream_peer.h",
923    "src/quic/test_tools/quic_stream_send_buffer_peer.cc",
924    "src/quic/test_tools/quic_stream_send_buffer_peer.h",
925    "src/quic/test_tools/quic_stream_sequencer_buffer_peer.cc",
926    "src/quic/test_tools/quic_stream_sequencer_buffer_peer.h",
927    "src/quic/test_tools/quic_stream_sequencer_peer.cc",
928    "src/quic/test_tools/quic_stream_sequencer_peer.h",
929    "src/quic/test_tools/quic_sustained_bandwidth_recorder_peer.cc",
930    "src/quic/test_tools/quic_sustained_bandwidth_recorder_peer.h",
931    "src/quic/test_tools/quic_test_utils.cc",
932    "src/quic/test_tools/quic_test_utils.h",
933    "src/quic/test_tools/quic_time_wait_list_manager_peer.cc",
934    "src/quic/test_tools/quic_time_wait_list_manager_peer.h",
935    "src/quic/test_tools/quic_transport_test_tools.h",
936    "src/quic/test_tools/quic_unacked_packet_map_peer.cc",
937    "src/quic/test_tools/quic_unacked_packet_map_peer.h",
938    "src/quic/test_tools/rtt_stats_peer.cc",
939    "src/quic/test_tools/rtt_stats_peer.h",
940    "src/quic/test_tools/send_algorithm_test_utils.cc",
941    "src/quic/test_tools/send_algorithm_test_utils.h",
942    "src/quic/test_tools/simple_data_producer.cc",
943    "src/quic/test_tools/simple_data_producer.h",
944    "src/quic/test_tools/simple_quic_framer.cc",
945    "src/quic/test_tools/simple_quic_framer.h",
946    "src/quic/test_tools/simple_session_cache.cc",
947    "src/quic/test_tools/simple_session_cache.h",
948    "src/quic/test_tools/simple_session_notifier.cc",
949    "src/quic/test_tools/simple_session_notifier.h",
950    "src/quic/test_tools/simulator/actor.cc",
951    "src/quic/test_tools/simulator/actor.h",
952    "src/quic/test_tools/simulator/alarm_factory.cc",
953    "src/quic/test_tools/simulator/alarm_factory.h",
954    "src/quic/test_tools/simulator/link.cc",
955    "src/quic/test_tools/simulator/link.h",
956    "src/quic/test_tools/simulator/packet_filter.cc",
957    "src/quic/test_tools/simulator/packet_filter.h",
958    "src/quic/test_tools/simulator/port.cc",
959    "src/quic/test_tools/simulator/port.h",
960    "src/quic/test_tools/simulator/queue.cc",
961    "src/quic/test_tools/simulator/queue.h",
962    "src/quic/test_tools/simulator/quic_endpoint.cc",
963    "src/quic/test_tools/simulator/quic_endpoint.h",
964    "src/quic/test_tools/simulator/quic_endpoint_base.cc",
965    "src/quic/test_tools/simulator/quic_endpoint_base.h",
966    "src/quic/test_tools/simulator/simulator.cc",
967    "src/quic/test_tools/simulator/simulator.h",
968    "src/quic/test_tools/simulator/switch.cc",
969    "src/quic/test_tools/simulator/switch.h",
970    "src/quic/test_tools/simulator/traffic_policer.cc",
971    "src/quic/test_tools/simulator/traffic_policer.h",
972    "src/quic/test_tools/test_certificates.cc",
973    "src/quic/test_tools/test_certificates.h",
974    "src/quic/tools/quic_tcp_like_trace_converter.cc",
975    "src/quic/tools/quic_tcp_like_trace_converter.h",
976  ]
977
978  deps = [
979    "//base",
980    "//crypto:test_support",
981    "//net",
982    "//net:quiche_test_tools",
983    "//net:simple_quic_tools",
984    "//net:test_support",
985    "//testing/gmock",
986    "//testing/gtest",
987    "//third_party/boringssl",
988    "//third_party/protobuf:protobuf_lite",
989    "//third_party/quic_trace:quic_trace_proto",
990  ]
991
992  if (is_linux || is_chromeos) {
993    sources += [
994      "src/epoll_server/fake_simple_epoll_server.cc",
995      "src/epoll_server/fake_simple_epoll_server.h",
996      "src/quic/test_tools/bad_packet_writer.cc",
997      "src/quic/test_tools/bad_packet_writer.h",
998      "src/quic/test_tools/limited_mtu_test_writer.cc",
999      "src/quic/test_tools/limited_mtu_test_writer.h",
1000      "src/quic/test_tools/packet_dropping_test_writer.cc",
1001      "src/quic/test_tools/packet_dropping_test_writer.h",
1002      "src/quic/test_tools/packet_reordering_writer.cc",
1003      "src/quic/test_tools/packet_reordering_writer.h",
1004      "src/quic/test_tools/quic_client_peer.cc",
1005      "src/quic/test_tools/quic_client_peer.h",
1006      "src/quic/test_tools/quic_server_peer.cc",
1007      "src/quic/test_tools/quic_server_peer.h",
1008      "src/quic/test_tools/quic_test_client.cc",
1009      "src/quic/test_tools/quic_test_client.h",
1010      "src/quic/test_tools/quic_test_server.cc",
1011      "src/quic/test_tools/quic_test_server.h",
1012      "src/quic/test_tools/server_thread.cc",
1013      "src/quic/test_tools/server_thread.h",
1014    ]
1015    deps += [
1016      "//net:epoll_quic_tools",
1017      "//net:epoll_server",
1018    ]
1019  }
1020}
1021
1022source_set("simple_quic_tools_core") {
1023  sources = [
1024    "src/quic/core/chlo_extractor.cc",
1025    "src/quic/core/chlo_extractor.h",
1026    "src/quic/core/http/quic_spdy_client_session.cc",
1027    "src/quic/core/http/quic_spdy_client_session.h",
1028    "src/quic/core/http/quic_spdy_client_stream.cc",
1029    "src/quic/core/http/quic_spdy_client_stream.h",
1030    "src/quic/core/http/quic_spdy_server_stream_base.cc",
1031    "src/quic/core/http/quic_spdy_server_stream_base.h",
1032    "src/quic/core/quic_buffered_packet_store.cc",
1033    "src/quic/core/quic_buffered_packet_store.h",
1034    "src/quic/core/quic_dispatcher.cc",
1035    "src/quic/core/quic_dispatcher.h",
1036    "src/quic/core/quic_packet_writer_wrapper.cc",
1037    "src/quic/core/quic_packet_writer_wrapper.h",
1038    "src/quic/core/quic_process_packet_interface.h",
1039    "src/quic/core/quic_time_wait_list_manager.cc",
1040    "src/quic/core/quic_time_wait_list_manager.h",
1041    "src/quic/core/tls_chlo_extractor.cc",
1042    "src/quic/core/tls_chlo_extractor.h",
1043    "src/quic/platform/api/quic_default_proof_providers.h",
1044    "src/quic/platform/api/quic_system_event_loop.h",
1045    "src/quic/tools/fake_proof_verifier.h",
1046    "src/quic/tools/quic_backend_response.cc",
1047    "src/quic/tools/quic_backend_response.h",
1048    "src/quic/tools/quic_client_base.cc",
1049    "src/quic/tools/quic_client_base.h",
1050    "src/quic/tools/quic_memory_cache_backend.cc",
1051    "src/quic/tools/quic_memory_cache_backend.h",
1052    "src/quic/tools/quic_simple_client_session.cc",
1053    "src/quic/tools/quic_simple_client_session.h",
1054    "src/quic/tools/quic_simple_client_stream.cc",
1055    "src/quic/tools/quic_simple_client_stream.h",
1056    "src/quic/tools/quic_simple_crypto_server_stream_helper.cc",
1057    "src/quic/tools/quic_simple_crypto_server_stream_helper.h",
1058    "src/quic/tools/quic_simple_dispatcher.cc",
1059    "src/quic/tools/quic_simple_dispatcher.h",
1060    "src/quic/tools/quic_simple_server_backend.h",
1061    "src/quic/tools/quic_simple_server_session.cc",
1062    "src/quic/tools/quic_simple_server_session.h",
1063    "src/quic/tools/quic_simple_server_stream.cc",
1064    "src/quic/tools/quic_simple_server_stream.h",
1065    "src/quic/tools/quic_spdy_client_base.cc",
1066    "src/quic/tools/quic_spdy_client_base.h",
1067    "src/quic/tools/quic_spdy_server_base.h",
1068    "src/quic/tools/quic_transport_simple_server_dispatcher.cc",
1069    "src/quic/tools/quic_transport_simple_server_dispatcher.h",
1070    "src/quic/tools/quic_transport_simple_server_session.cc",
1071    "src/quic/tools/quic_transport_simple_server_session.h",
1072    "src/quic/tools/quic_url.cc",
1073    "src/quic/tools/quic_url.h",
1074    "src/quic/tools/simple_ticket_crypter.cc",
1075    "src/quic/tools/simple_ticket_crypter.h",
1076  ]
1077  deps = [
1078    "//base",
1079    "//base/third_party/dynamic_annotations",
1080    "//net",
1081    "//third_party/protobuf:protobuf_lite",
1082    "//url",
1083  ]
1084}
1085
1086source_set("quic_client_core") {
1087  sources = [
1088    "src/quic/tools/quic_toy_client.cc",
1089    "src/quic/tools/quic_toy_client.h",
1090  ]
1091  deps = [
1092    "//net",
1093    "//net:simple_quic_tools",
1094  ]
1095}
1096
1097source_set("quic_server_core") {
1098  sources = [
1099    "src/quic/tools/quic_toy_server.cc",
1100    "src/quic/tools/quic_toy_server.h",
1101  ]
1102  deps = [
1103    "//net",
1104    "//net:simple_quic_tools",
1105  ]
1106}
1107
1108if (!is_ios) {
1109  executable("quic_packet_printer") {
1110    sources = [ "src/quic/tools/quic_packet_printer_bin.cc" ]
1111    deps = [
1112      "//base",
1113      "//build/win:default_exe_manifest",
1114      "//net",
1115      "//net:simple_quic_tools",
1116      "//third_party/boringssl",
1117      "//third_party/protobuf:protobuf_lite",
1118    ]
1119  }
1120
1121  executable("quic_crypto_message_printer") {
1122    sources = [ "src/quic/core/crypto/crypto_message_printer_bin.cc" ]
1123    deps = [
1124      "//base",
1125      "//build/win:default_exe_manifest",
1126      "//net",
1127      "//net:simple_quic_tools",
1128      "//third_party/boringssl",
1129      "//third_party/protobuf:protobuf_lite",
1130    ]
1131  }
1132
1133  executable("quic_reject_reason_decoder") {
1134    sources = [ "src/quic/tools/quic_reject_reason_decoder_bin.cc" ]
1135    deps = [
1136      "//base",
1137      "//build/win:default_exe_manifest",
1138      "//net",
1139      "//net:simple_quic_tools",
1140      "//third_party/boringssl",
1141      "//third_party/protobuf:protobuf_lite",
1142    ]
1143  }
1144
1145  executable("qpack_offline_decoder") {
1146    testonly = true
1147    sources = [ "src/quic/core/qpack/qpack_offline_decoder_bin.cc" ]
1148    deps = [
1149      "//base",
1150      "//net",
1151      "//net:quic_test_tools",
1152      "//net:simple_quic_tools",
1153      "//testing/gmock",
1154    ]
1155  }
1156}
1157
1158source_set("quiche_tests") {
1159  testonly = true
1160  sources = [
1161    "src/common/quiche_data_writer_test.cc",
1162    "src/common/simple_linked_hash_map_test.cc",
1163    "src/http2/decoder/decode_buffer_test.cc",
1164    "src/http2/decoder/decode_http2_structures_test.cc",
1165    "src/http2/decoder/frame_decoder_state_test_util.cc",
1166    "src/http2/decoder/frame_decoder_state_test_util.h",
1167    "src/http2/decoder/http2_frame_decoder_listener_test_util.cc",
1168    "src/http2/decoder/http2_frame_decoder_listener_test_util.h",
1169    "src/http2/decoder/http2_frame_decoder_test.cc",
1170    "src/http2/decoder/http2_structure_decoder_test.cc",
1171    "src/http2/decoder/http2_structure_decoder_test_util.cc",
1172    "src/http2/decoder/http2_structure_decoder_test_util.h",
1173    "src/http2/decoder/payload_decoders/altsvc_payload_decoder_test.cc",
1174    "src/http2/decoder/payload_decoders/continuation_payload_decoder_test.cc",
1175    "src/http2/decoder/payload_decoders/data_payload_decoder_test.cc",
1176    "src/http2/decoder/payload_decoders/goaway_payload_decoder_test.cc",
1177    "src/http2/decoder/payload_decoders/headers_payload_decoder_test.cc",
1178    "src/http2/decoder/payload_decoders/payload_decoder_base_test_util.cc",
1179    "src/http2/decoder/payload_decoders/payload_decoder_base_test_util.h",
1180    "src/http2/decoder/payload_decoders/ping_payload_decoder_test.cc",
1181    "src/http2/decoder/payload_decoders/priority_payload_decoder_test.cc",
1182    "src/http2/decoder/payload_decoders/push_promise_payload_decoder_test.cc",
1183    "src/http2/decoder/payload_decoders/rst_stream_payload_decoder_test.cc",
1184    "src/http2/decoder/payload_decoders/settings_payload_decoder_test.cc",
1185    "src/http2/decoder/payload_decoders/unknown_payload_decoder_test.cc",
1186    "src/http2/decoder/payload_decoders/window_update_payload_decoder_test.cc",
1187    "src/http2/hpack/decoder/hpack_block_collector.cc",
1188    "src/http2/hpack/decoder/hpack_block_collector.h",
1189    "src/http2/hpack/decoder/hpack_block_decoder_test.cc",
1190    "src/http2/hpack/decoder/hpack_decoder_state_test.cc",
1191    "src/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc",
1192    "src/http2/hpack/decoder/hpack_decoder_tables_test.cc",
1193    "src/http2/hpack/decoder/hpack_decoder_test.cc",
1194    "src/http2/hpack/decoder/hpack_entry_collector.cc",
1195    "src/http2/hpack/decoder/hpack_entry_collector.h",
1196    "src/http2/hpack/decoder/hpack_entry_decoder_test.cc",
1197    "src/http2/hpack/decoder/hpack_entry_type_decoder_test.cc",
1198    "src/http2/hpack/decoder/hpack_string_collector.cc",
1199    "src/http2/hpack/decoder/hpack_string_collector.h",
1200    "src/http2/hpack/decoder/hpack_string_decoder_test.cc",
1201    "src/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc",
1202    "src/http2/hpack/hpack_string_test.cc",
1203    "src/http2/hpack/http2_hpack_constants_test.cc",
1204    "src/http2/hpack/huffman/hpack_huffman_decoder_test.cc",
1205    "src/http2/hpack/huffman/hpack_huffman_encoder_test.cc",
1206    "src/http2/hpack/huffman/hpack_huffman_transcoder_test.cc",
1207    "src/http2/hpack/tools/hpack_block_builder.cc",
1208    "src/http2/hpack/tools/hpack_block_builder.h",
1209    "src/http2/hpack/tools/hpack_block_builder_test.cc",
1210    "src/http2/hpack/tools/hpack_example.cc",
1211    "src/http2/hpack/tools/hpack_example.h",
1212    "src/http2/hpack/varint/hpack_varint_decoder_test.cc",
1213    "src/http2/hpack/varint/hpack_varint_encoder_test.cc",
1214    "src/http2/hpack/varint/hpack_varint_round_trip_test.cc",
1215    "src/http2/http2_constants_test.cc",
1216    "src/http2/http2_constants_test_util.cc",
1217    "src/http2/http2_constants_test_util.h",
1218    "src/http2/http2_structures_test.cc",
1219    "src/http2/http2_structures_test_util.cc",
1220    "src/http2/http2_structures_test_util.h",
1221    "src/http2/platform/api/http2_string_utils_test.cc",
1222    "src/http2/platform/api/http2_test_helpers.h",
1223    "src/http2/test_tools/frame_parts.cc",
1224    "src/http2/test_tools/frame_parts.h",
1225    "src/http2/test_tools/frame_parts_collector.cc",
1226    "src/http2/test_tools/frame_parts_collector.h",
1227    "src/http2/test_tools/frame_parts_collector_listener.cc",
1228    "src/http2/test_tools/frame_parts_collector_listener.h",
1229    "src/http2/test_tools/http2_random.cc",
1230    "src/http2/test_tools/http2_random.h",
1231    "src/http2/test_tools/http2_random_test.cc",
1232    "src/http2/tools/http2_frame_builder.cc",
1233    "src/http2/tools/http2_frame_builder.h",
1234    "src/http2/tools/random_decoder_test.cc",
1235    "src/http2/tools/random_decoder_test.h",
1236    "src/http2/tools/random_util.cc",
1237    "src/http2/tools/random_util.h",
1238    "src/quic/core/congestion_control/bandwidth_sampler_test.cc",
1239
1240    # TODO(rch): Re-enable once the SLOW_TEST annotation is added.
1241    # "src/quic/core/congestion_control/bbr2_simulator_test.cc",
1242    "src/common/platform/api/quiche_str_cat_test.cc",
1243    "src/common/platform/api/quiche_text_utils_test.cc",
1244    "src/common/platform/api/quiche_time_utils_test.cc",
1245    "src/common/quiche_endian_test.cc",
1246    "src/quic/core/congestion_control/bbr_sender_test.cc",
1247    "src/quic/core/congestion_control/cubic_bytes_test.cc",
1248    "src/quic/core/congestion_control/general_loss_algorithm_test.cc",
1249    "src/quic/core/congestion_control/hybrid_slow_start_test.cc",
1250    "src/quic/core/congestion_control/pacing_sender_test.cc",
1251    "src/quic/core/congestion_control/prr_sender_test.cc",
1252    "src/quic/core/congestion_control/rtt_stats_test.cc",
1253    "src/quic/core/congestion_control/send_algorithm_test.cc",
1254    "src/quic/core/congestion_control/tcp_cubic_sender_bytes_test.cc",
1255    "src/quic/core/congestion_control/uber_loss_algorithm_test.cc",
1256    "src/quic/core/congestion_control/windowed_filter_test.cc",
1257    "src/quic/core/crypto/aes_128_gcm_12_decrypter_test.cc",
1258    "src/quic/core/crypto/aes_128_gcm_12_encrypter_test.cc",
1259    "src/quic/core/crypto/aes_128_gcm_decrypter_test.cc",
1260    "src/quic/core/crypto/aes_128_gcm_encrypter_test.cc",
1261    "src/quic/core/crypto/aes_256_gcm_decrypter_test.cc",
1262    "src/quic/core/crypto/aes_256_gcm_encrypter_test.cc",
1263    "src/quic/core/crypto/cert_compressor_test.cc",
1264    "src/quic/core/crypto/certificate_view_test.cc",
1265    "src/quic/core/crypto/chacha20_poly1305_decrypter_test.cc",
1266    "src/quic/core/crypto/chacha20_poly1305_encrypter_test.cc",
1267    "src/quic/core/crypto/chacha20_poly1305_tls_decrypter_test.cc",
1268    "src/quic/core/crypto/chacha20_poly1305_tls_encrypter_test.cc",
1269    "src/quic/core/crypto/channel_id_test.cc",
1270    "src/quic/core/crypto/common_cert_set_test.cc",
1271    "src/quic/core/crypto/crypto_framer_test.cc",
1272    "src/quic/core/crypto/crypto_handshake_message_test.cc",
1273    "src/quic/core/crypto/crypto_secret_boxer_test.cc",
1274    "src/quic/core/crypto/crypto_server_test.cc",
1275    "src/quic/core/crypto/crypto_utils_test.cc",
1276    "src/quic/core/crypto/curve25519_key_exchange_test.cc",
1277    "src/quic/core/crypto/null_decrypter_test.cc",
1278    "src/quic/core/crypto/null_encrypter_test.cc",
1279    "src/quic/core/crypto/p256_key_exchange_test.cc",
1280    "src/quic/core/crypto/quic_compressed_certs_cache_test.cc",
1281    "src/quic/core/crypto/quic_crypto_client_config_test.cc",
1282    "src/quic/core/crypto/quic_crypto_server_config_test.cc",
1283    "src/quic/core/crypto/quic_hkdf_test.cc",
1284    "src/quic/core/crypto/quic_random_test.cc",
1285    "src/quic/core/crypto/transport_parameters_test.cc",
1286    "src/quic/core/frames/quic_frames_test.cc",
1287    "src/quic/core/http/http_decoder_test.cc",
1288    "src/quic/core/http/http_encoder_test.cc",
1289    "src/quic/core/http/quic_client_promised_info_test.cc",
1290    "src/quic/core/http/quic_client_push_promise_index_test.cc",
1291    "src/quic/core/http/quic_header_list_test.cc",
1292    "src/quic/core/http/quic_headers_stream_test.cc",
1293    "src/quic/core/http/quic_receive_control_stream_test.cc",
1294    "src/quic/core/http/quic_send_control_stream_test.cc",
1295    "src/quic/core/http/quic_server_session_base_test.cc",
1296    "src/quic/core/http/quic_spdy_session_test.cc",
1297    "src/quic/core/http/quic_spdy_stream_body_manager_test.cc",
1298    "src/quic/core/http/quic_spdy_stream_test.cc",
1299    "src/quic/core/http/spdy_server_push_utils_test.cc",
1300    "src/quic/core/http/spdy_utils_test.cc",
1301    "src/quic/core/legacy_quic_stream_id_manager_test.cc",
1302    "src/quic/core/packet_number_indexed_queue_test.cc",
1303    "src/quic/core/qpack/qpack_blocking_manager_test.cc",
1304    "src/quic/core/qpack/qpack_decoded_headers_accumulator_test.cc",
1305    "src/quic/core/qpack/qpack_decoder_stream_receiver_test.cc",
1306    "src/quic/core/qpack/qpack_decoder_stream_sender_test.cc",
1307    "src/quic/core/qpack/qpack_decoder_test.cc",
1308    "src/quic/core/qpack/qpack_encoder_stream_receiver_test.cc",
1309    "src/quic/core/qpack/qpack_encoder_stream_sender_test.cc",
1310    "src/quic/core/qpack/qpack_encoder_test.cc",
1311    "src/quic/core/qpack/qpack_header_table_test.cc",
1312    "src/quic/core/qpack/qpack_index_conversions_test.cc",
1313    "src/quic/core/qpack/qpack_instruction_decoder_test.cc",
1314    "src/quic/core/qpack/qpack_instruction_encoder_test.cc",
1315    "src/quic/core/qpack/qpack_receive_stream_test.cc",
1316    "src/quic/core/qpack/qpack_required_insert_count_test.cc",
1317    "src/quic/core/qpack/qpack_round_trip_test.cc",
1318    "src/quic/core/qpack/qpack_send_stream_test.cc",
1319    "src/quic/core/qpack/qpack_static_table_test.cc",
1320    "src/quic/core/qpack/value_splitting_header_list_test.cc",
1321    "src/quic/core/quic_alarm_test.cc",
1322    "src/quic/core/quic_arena_scoped_ptr_test.cc",
1323    "src/quic/core/quic_bandwidth_test.cc",
1324    "src/quic/core/quic_buffered_packet_store_test.cc",
1325    "src/quic/core/quic_circular_deque_test.cc",
1326    "src/quic/core/quic_coalesced_packet_test.cc",
1327    "src/quic/core/quic_config_test.cc",
1328    "src/quic/core/quic_connection_id_test.cc",
1329    "src/quic/core/quic_connection_test.cc",
1330    "src/quic/core/quic_control_frame_manager_test.cc",
1331    "src/quic/core/quic_crypto_client_handshaker_test.cc",
1332    "src/quic/core/quic_crypto_client_stream_test.cc",
1333    "src/quic/core/quic_crypto_server_stream_test.cc",
1334    "src/quic/core/quic_crypto_stream_test.cc",
1335    "src/quic/core/quic_data_writer_test.cc",
1336    "src/quic/core/quic_datagram_queue_test.cc",
1337    "src/quic/core/quic_dispatcher_test.cc",
1338    "src/quic/core/quic_error_codes_test.cc",
1339    "src/quic/core/quic_flow_controller_test.cc",
1340    "src/quic/core/quic_framer_test.cc",
1341    "src/quic/core/quic_idle_network_detector_test.cc",
1342    "src/quic/core/quic_interval_deque_test.cc",
1343    "src/quic/core/quic_interval_set_test.cc",
1344    "src/quic/core/quic_interval_test.cc",
1345    "src/quic/core/quic_legacy_version_encapsulator_test.cc",
1346    "src/quic/core/quic_lru_cache_test.cc",
1347    "src/quic/core/quic_network_blackhole_detector_test.cc",
1348    "src/quic/core/quic_one_block_arena_test.cc",
1349    "src/quic/core/quic_packet_creator_test.cc",
1350    "src/quic/core/quic_packet_number_test.cc",
1351    "src/quic/core/quic_packets_test.cc",
1352    "src/quic/core/quic_received_packet_manager_test.cc",
1353    "src/quic/core/quic_sent_packet_manager_test.cc",
1354    "src/quic/core/quic_server_id_test.cc",
1355    "src/quic/core/quic_session_test.cc",
1356    "src/quic/core/quic_simple_buffer_allocator_test.cc",
1357    "src/quic/core/quic_socket_address_coder_test.cc",
1358    "src/quic/core/quic_stream_id_manager_test.cc",
1359    "src/quic/core/quic_stream_send_buffer_test.cc",
1360    "src/quic/core/quic_stream_sequencer_buffer_test.cc",
1361    "src/quic/core/quic_stream_sequencer_test.cc",
1362    "src/quic/core/quic_stream_test.cc",
1363    "src/quic/core/quic_sustained_bandwidth_recorder_test.cc",
1364    "src/quic/core/quic_tag_test.cc",
1365    "src/quic/core/quic_time_accumulator_test.cc",
1366    "src/quic/core/quic_time_test.cc",
1367    "src/quic/core/quic_time_wait_list_manager_test.cc",
1368    "src/quic/core/quic_trace_visitor_test.cc",
1369    "src/quic/core/quic_unacked_packet_map_test.cc",
1370    "src/quic/core/quic_utils_test.cc",
1371    "src/quic/core/quic_version_manager_test.cc",
1372    "src/quic/core/quic_versions_test.cc",
1373    "src/quic/core/quic_write_blocked_list_test.cc",
1374    "src/quic/core/tls_chlo_extractor_test.cc",
1375    "src/quic/core/uber_quic_stream_id_manager_test.cc",
1376    "src/quic/core/uber_received_packet_manager_test.cc",
1377    "src/quic/platform/api/quic_containers_test.cc",
1378    "src/quic/platform/api/quic_hostname_utils_test.cc",
1379    "src/quic/platform/api/quic_ip_address_test.cc",
1380    "src/quic/platform/api/quic_mem_slice_span_test.cc",
1381    "src/quic/platform/api/quic_mem_slice_storage_test.cc",
1382    "src/quic/platform/api/quic_mem_slice_test.cc",
1383    "src/quic/platform/api/quic_reference_counted_test.cc",
1384    "src/quic/platform/api/quic_socket_address_test.cc",
1385    "src/quic/platform/api/quic_string_utils_test.cc",
1386    "src/quic/quic_transport/quic_transport_client_session_test.cc",
1387    "src/quic/quic_transport/quic_transport_integration_test.cc",
1388    "src/quic/quic_transport/quic_transport_server_session_test.cc",
1389    "src/quic/quic_transport/quic_transport_stream_test.cc",
1390    "src/quic/quic_transport/web_transport_fingerprint_proof_verifier_test.cc",
1391    "src/quic/test_tools/crypto_test_utils_test.cc",
1392    "src/quic/test_tools/mock_quic_time_wait_list_manager.cc",
1393    "src/quic/test_tools/mock_quic_time_wait_list_manager.h",
1394    "src/quic/test_tools/quic_test_utils_test.cc",
1395    "src/quic/test_tools/simple_session_notifier_test.cc",
1396    "src/quic/test_tools/simulator/quic_endpoint_test.cc",
1397    "src/quic/test_tools/simulator/simulator_test.cc",
1398    "src/quic/tools/quic_memory_cache_backend_test.cc",
1399    "src/quic/tools/quic_tcp_like_trace_converter_test.cc",
1400    "src/quic/tools/simple_ticket_crypter_test.cc",
1401    "src/spdy/core/array_output_buffer.cc",
1402    "src/spdy/core/array_output_buffer.h",
1403    "src/spdy/core/array_output_buffer_test.cc",
1404    "src/spdy/core/fifo_write_scheduler_test.cc",
1405    "src/spdy/core/hpack/hpack_decoder_adapter_test.cc",
1406    "src/spdy/core/hpack/hpack_encoder_test.cc",
1407    "src/spdy/core/hpack/hpack_entry_test.cc",
1408    "src/spdy/core/hpack/hpack_header_table_test.cc",
1409    "src/spdy/core/hpack/hpack_huffman_table_test.cc",
1410    "src/spdy/core/hpack/hpack_output_stream_test.cc",
1411    "src/spdy/core/hpack/hpack_round_trip_test.cc",
1412    "src/spdy/core/hpack/hpack_static_table_test.cc",
1413    "src/spdy/core/http2_priority_write_scheduler_test.cc",
1414    "src/spdy/core/lifo_write_scheduler_test.cc",
1415    "src/spdy/core/mock_spdy_framer_visitor.cc",
1416    "src/spdy/core/mock_spdy_framer_visitor.h",
1417    "src/spdy/core/priority_write_scheduler_test.cc",
1418    "src/spdy/core/spdy_alt_svc_wire_format_test.cc",
1419    "src/spdy/core/spdy_deframer_visitor.cc",
1420    "src/spdy/core/spdy_deframer_visitor.h",
1421    "src/spdy/core/spdy_deframer_visitor_test.cc",
1422    "src/spdy/core/spdy_frame_builder_test.cc",
1423    "src/spdy/core/spdy_frame_reader_test.cc",
1424    "src/spdy/core/spdy_framer_test.cc",
1425    "src/spdy/core/spdy_header_block_test.cc",
1426    "src/spdy/core/spdy_header_storage_test.cc",
1427    "src/spdy/core/spdy_intrusive_list_test.cc",
1428    "src/spdy/core/spdy_no_op_visitor.cc",
1429    "src/spdy/core/spdy_no_op_visitor.h",
1430    "src/spdy/core/spdy_pinnable_buffer_piece_test.cc",
1431    "src/spdy/core/spdy_prefixed_buffer_reader_test.cc",
1432    "src/spdy/core/spdy_protocol_test.cc",
1433    "src/spdy/core/spdy_protocol_test_utils.cc",
1434    "src/spdy/core/spdy_protocol_test_utils.h",
1435    "src/spdy/core/spdy_simple_arena_test.cc",
1436    "src/spdy/core/spdy_test_utils.cc",
1437    "src/spdy/core/spdy_test_utils.h",
1438    "src/spdy/platform/api/spdy_mem_slice_test.cc",
1439    "src/spdy/platform/api/spdy_string_utils_test.cc",
1440    "src/spdy/platform/api/spdy_test_helpers.h",
1441  ]
1442
1443  deps = [
1444    "//net",
1445    "//net:quic_test_tools",
1446    "//net:quiche_test_tools",
1447    "//net:simple_quic_tools",
1448    "//net:spdy_test_tools",
1449    "//testing/gmock",
1450    "//testing/gtest",
1451  ]
1452  public_deps = []
1453
1454  if (is_linux) {
1455    public_deps += [ "//net:epoll_quic_tools" ]
1456  }
1457  if (is_linux || is_chromeos) {
1458    sources += [
1459      "src/epoll_server/simple_epoll_server_test.cc",
1460      "src/quic/core/chlo_extractor_test.cc",
1461      "src/quic/core/http/end_to_end_test.cc",
1462      "src/quic/core/http/quic_spdy_client_session_test.cc",
1463      "src/quic/core/http/quic_spdy_client_stream_test.cc",
1464      "src/quic/core/http/quic_spdy_server_stream_base_test.cc",
1465      "src/quic/core/quic_epoll_alarm_factory_test.cc",
1466      "src/quic/core/quic_epoll_connection_helper_test.cc",
1467      "src/quic/tools/quic_client_test.cc",
1468      "src/quic/tools/quic_server_test.cc",
1469      "src/quic/tools/quic_simple_server_session_test.cc",
1470      "src/quic/tools/quic_simple_server_stream_test.cc",
1471      "src/quic/tools/quic_url_test.cc",
1472    ]
1473    public_deps += [
1474      "//net:epoll_quic_tools",
1475      "//net:epoll_server",
1476      "//net:epoll_server_test_tools",
1477    ]
1478
1479    if (!is_chromeos) {
1480      sources += [ "src/quic/core/quic_udp_socket_test.cc" ]
1481    }
1482  }
1483}
1484
1485fuzzer_test("net_quic_framer_fuzzer") {
1486  sources = [ "src/quic/test_tools/fuzzing/quic_framer_fuzzer.cc" ]
1487
1488  deps = [
1489    "//net",
1490    "//net:net_fuzzer_test_support",
1491    "//net:quic_test_tools",
1492    "//net:test_support",
1493    "//net/data/ssl/certificates:generate_fuzzer_cert_includes",
1494  ]
1495}
1496
1497fuzzer_test("net_quic_framer_process_data_packet_fuzzer") {
1498  sources = [
1499    "src/quic/test_tools/fuzzing/quic_framer_process_data_packet_fuzzer.cc",
1500  ]
1501
1502  deps = [
1503    "//net",
1504    "//net:net_fuzzer_test_support",
1505    "//net:quic_test_tools",
1506    "//net:test_support",
1507    "//net/data/ssl/certificates:generate_fuzzer_cert_includes",
1508  ]
1509}
1510
1511fuzzer_test("net_qpack_decoder_fuzzer") {
1512  sources = [ "src/quic/core/qpack/fuzzer/qpack_decoder_fuzzer.cc" ]
1513  deps = [
1514    "//base",
1515    "//net",
1516    "//net:net_fuzzer_test_support",
1517    "//net:quic_test_tools",
1518    "//net:test_support",
1519  ]
1520  seed_corpus = "src/quic/core/qpack/fuzzer/qpack_decoder_fuzzer_corpus/"
1521}
1522
1523fuzzer_test("net_qpack_encoder_stream_receiver_fuzzer") {
1524  sources =
1525      [ "src/quic/core/qpack/fuzzer/qpack_encoder_stream_receiver_fuzzer.cc" ]
1526  deps = [
1527    "//base",
1528    "//net",
1529    "//net:net_fuzzer_test_support",
1530  ]
1531  seed_corpus =
1532      "src/quic/core/qpack/fuzzer/qpack_encoder_stream_receiver_fuzzer_corpus/"
1533}
1534
1535fuzzer_test("net_qpack_encoder_stream_sender_fuzzer") {
1536  sources =
1537      [ "src/quic/core/qpack/fuzzer/qpack_encoder_stream_sender_fuzzer.cc" ]
1538  deps = [
1539    "//base",
1540    "//net",
1541    "//net:net_fuzzer_test_support",
1542    "//net:quic_test_tools",
1543    "//net:test_support",
1544  ]
1545  seed_corpus =
1546      "src/quic/core/qpack/fuzzer/qpack_encoder_stream_sender_fuzzer_corpus/"
1547}
1548
1549fuzzer_test("net_qpack_round_trip_fuzzer") {
1550  sources = [ "src/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc" ]
1551  deps = [
1552    "//base",
1553    "//net",
1554    "//net:net_fuzzer_test_support",
1555    "//net:quic_test_tools",
1556    "//net:test_support",
1557  ]
1558  seed_corpus = "src/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer_corpus/"
1559}
1560