1# Copyright 2020 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 5# Build file for QUICHE, <https://quiche.googlesource.com/quiche/> 6# 7# The following build targets are defined: 8# - quiche -- the part of QUICHE that is shipped within Chromium proper. 9# - *_tool_support -- support code used in CLI tools and unit tests. 10# - *_test_support -- support code only used in unit tests. 11# - quiche_tests -- all of the QUICHE test targets. 12# 13# There are two kinds of build target: quiche_ and epoll_; quiche_ targets are 14# built on all platforms, epoll_ targets are only built on Linux and certain 15# similar platforms. 16 17# Dependency graph of the key targets in this file: 18# 19# quiche <--- quiche_tool_support <--- quiche_test_support <--- quiche_tests 20# ^ ^ | 21# | | | 22# | | | 23# epoll_tool_support <--- epoll_test_support <----------+ (*) 24# 25# (*) only used on platforms where epoll tests are built 26 27import("//build/config/chromeos/ui_mode.gni") 28import("//net/third_party/quiche/src/build/source_list.gni") 29import("//testing/libfuzzer/fuzzer_test.gni") 30import("//third_party/protobuf/proto_library.gni") 31 32build_epoll_based_tools = is_linux || is_chromeos 33 34config("quiche_internal_config") { 35 cflags = [] 36 if (is_clang) { 37 cflags += [ 38 "-Wno-unused-private-field", 39 "-Wno-shadow", 40 "-Wno-sign-compare", 41 ] 42 } 43} 44 45config("quiche_config") { 46 include_dirs = [ 47 # The ordering here is important, since headers in overrides/ replace 48 # headers in src/common/platform/default. 49 "overrides", 50 "src/quiche/common/platform/default", 51 "src", 52 ] 53} 54 55component("quiche") { 56 sources = [ 57 "overrides/quiche_platform_impl/quiche_bug_tracker_impl.h", 58 "overrides/quiche_platform_impl/quiche_client_stats_impl.h", 59 "overrides/quiche_platform_impl/quiche_containers_impl.h", 60 "overrides/quiche_platform_impl/quiche_export_impl.h", 61 "overrides/quiche_platform_impl/quiche_iovec_impl.h", 62 "overrides/quiche_platform_impl/quiche_logging_impl.h", 63 "overrides/quiche_platform_impl/quiche_mutex_impl.cc", 64 "overrides/quiche_platform_impl/quiche_mutex_impl.h", 65 "overrides/quiche_platform_impl/quiche_reference_counted_impl.h", 66 "overrides/quiche_platform_impl/quiche_server_stats_impl.h", 67 "overrides/quiche_platform_impl/quiche_time_utils_impl.cc", 68 "overrides/quiche_platform_impl/quiche_time_utils_impl.h", 69 "overrides/quiche_platform_impl/quiche_url_utils_impl.cc", 70 "overrides/quiche_platform_impl/quiche_url_utils_impl.h", 71 "src/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.cc", 72 "src/quiche/common/platform/default/quiche_platform_impl/quiche_flags_impl.h", 73 "src/quiche/common/platform/default/quiche_platform_impl/quiche_prefetch_impl.h", 74 "src/quiche/http2/hpack/hpack_static_table_entries.inc", 75 ] + quiche_core_hdrs + quiche_core_srcs + binary_http_srcs + 76 binary_http_hdrs + oblivious_http_srcs + oblivious_http_hdrs 77 78 configs += [ ":quiche_internal_config" ] 79 all_dependent_configs = [ ":quiche_config" ] 80 81 deps = [ 82 "//net:uri_template", 83 "//third_party/protobuf:protobuf_lite", 84 "//third_party/zlib", 85 ] 86 87 public_deps = [ 88 ":net_quic_proto", 89 "//base", 90 "//third_party/abseil-cpp:absl", 91 "//third_party/boringssl", 92 "//url", 93 ] 94 95 defines = [ "IS_QUICHE_IMPL" ] 96} 97 98proto_library("net_quic_proto") { 99 visibility = [ ":quiche" ] 100 101 sources = [ 102 "src/quiche/quic/core/proto/cached_network_parameters.proto", 103 "src/quiche/quic/core/proto/crypto_server_config.proto", 104 "src/quiche/quic/core/proto/source_address_token.proto", 105 ] 106 cc_generator_options = "dllexport_decl=COMPONENT_EXPORT(QUICHE):" 107 cc_include = "base/component_export.h" 108 component_build_force_source_set = true 109 110 proto_in_dir = "src" 111 112 deps = [ "//base" ] 113 114 defines = [ "IS_QUICHE_IMPL" ] 115 116 extra_configs = [ "//build/config/compiler:wexit_time_destructors" ] 117} 118 119proto_library("net_quic_test_tools_proto") { 120 visibility = [ "//net:net_public_deps" ] 121 122 sources = [ "src/quiche/quic/test_tools/send_algorithm_test_result.proto" ] 123 cc_generator_options = "dllexport_decl=NET_EXPORT_PRIVATE:" 124 cc_include = "net/base/net_export.h" 125 component_build_force_source_set = true 126 127 deps = [ "//net:net_export_header" ] 128 129 defines = [ "NET_IMPLEMENTATION" ] 130 131 extra_configs = [ "//build/config/compiler:wexit_time_destructors" ] 132} 133 134if (build_epoll_based_tools) { 135 static_library("epoll_tool_support") { 136 testonly = true 137 sources = [ 138 "overrides/quiche_platform_impl/quiche_udp_socket_platform_impl.h", 139 "src/quiche/common/platform/default/quiche_platform_impl/quiche_stream_buffer_allocator_impl.h", 140 ] + io_tool_support_srcs + io_tool_support_hdrs 141 142 configs += [ ":quiche_internal_config" ] 143 public_configs = [ ":quiche_config" ] 144 145 deps = [ 146 ":quiche_tool_support", 147 "//base", 148 "//net", 149 "//third_party/boringssl", 150 ] 151 } 152 153 executable("epoll_quic_client") { 154 testonly = true 155 sources = [ 156 "src/quiche/quic/tools/quic_client_bin.cc", 157 "src/quiche/quic/tools/quic_epoll_client_factory.cc", 158 "src/quiche/quic/tools/quic_epoll_client_factory.h", 159 ] 160 161 configs += [ ":quiche_internal_config" ] 162 public_configs = [ ":quiche_config" ] 163 164 deps = [ 165 ":epoll_tool_support", 166 ":quic_client_core", 167 ":quiche_tool_support", 168 "//base", 169 "//net", 170 "//third_party/boringssl", 171 ] 172 } 173 174 executable("epoll_quic_server") { 175 testonly = true 176 sources = [ 177 "src/quiche/quic/tools/quic_server_bin.cc", 178 "src/quiche/quic/tools/quic_server_factory.cc", 179 "src/quiche/quic/tools/quic_server_factory.h", 180 ] 181 182 configs += [ ":quiche_internal_config" ] 183 public_configs = [ ":quiche_config" ] 184 185 deps = [ 186 ":epoll_tool_support", 187 ":quic_server_core", 188 ":quiche_tool_support", 189 "//base", 190 "//net", 191 "//third_party/boringssl", 192 ] 193 } 194 195 executable("quic_client_interop_test") { 196 testonly = true 197 sources = [ "src/quiche/quic/tools/quic_client_interop_test_bin.cc" ] 198 199 configs += [ ":quiche_internal_config" ] 200 public_configs = [ ":quiche_config" ] 201 202 deps = [ 203 ":epoll_tool_support", 204 ":quiche_test_support", 205 ":quiche_tool_support", 206 "//net", 207 ] 208 } 209 210 executable("masque_client") { 211 testonly = true 212 sources = [ "src/quiche/quic/masque/masque_client_bin.cc" ] 213 214 configs += [ ":quiche_internal_config" ] 215 public_configs = [ ":quiche_config" ] 216 217 deps = [ 218 ":epoll_tool_support", 219 ":quiche_tool_support", 220 "//net", 221 "//third_party/boringssl", 222 "//third_party/protobuf:protobuf_lite", 223 ] 224 } 225 226 executable("masque_server") { 227 testonly = true 228 sources = [ "src/quiche/quic/masque/masque_server_bin.cc" ] 229 230 configs += [ ":quiche_internal_config" ] 231 public_configs = [ ":quiche_config" ] 232 233 deps = [ 234 ":epoll_tool_support", 235 ":quiche_tool_support", 236 "//net", 237 "//third_party/boringssl", 238 "//third_party/protobuf:protobuf_lite", 239 ] 240 } 241 242 static_library("epoll_test_support") { 243 testonly = true 244 sources = io_test_support_srcs + io_test_support_hdrs 245 246 configs += [ ":quiche_internal_config" ] 247 public_configs = [ ":quiche_config" ] 248 249 deps = [ 250 ":epoll_tool_support", 251 ":quiche_test_support", 252 ":quiche_tool_support", 253 "//base", 254 "//net", 255 "//net:gtest_util", 256 "//testing/gmock", 257 "//testing/gtest", 258 ] 259 } 260} 261 262static_library("quiche_test_support") { 263 testonly = true 264 sources = [ 265 "overrides/quiche_platform_impl/quiche_expect_bug_impl.h", 266 "overrides/quiche_platform_impl/quiche_mock_log_impl.h", 267 "overrides/quiche_platform_impl/quiche_test_helpers_impl.cc", 268 "overrides/quiche_platform_impl/quiche_test_helpers_impl.h", 269 "overrides/quiche_platform_impl/quiche_test_impl.cc", 270 "overrides/quiche_platform_impl/quiche_test_impl.h", 271 "overrides/quiche_platform_impl/quiche_test_output_impl.cc", 272 "overrides/quiche_platform_impl/quiche_test_output_impl.h", 273 "src/quiche/common/platform/default/quiche_platform_impl/quiche_test_loopback_impl.cc", 274 "src/quiche/common/platform/default/quiche_platform_impl/quiche_test_loopback_impl.h", 275 ] + quiche_test_support_srcs + quiche_test_support_hdrs 276 277 configs += [ ":quiche_internal_config" ] 278 public_configs = [ ":quiche_config" ] 279 280 deps = [ 281 ":quiche", 282 ":quiche_tool_support", 283 "//base", 284 "//crypto:test_support", 285 "//net:quic_test_flags_utils", 286 "//net:test_support", 287 "//testing/gmock", 288 "//testing/gtest", 289 "//third_party/boringssl", 290 "//third_party/protobuf:protobuf_lite", 291 ] 292} 293 294static_library("quiche_tool_support") { 295 testonly = true 296 sources = [ 297 "overrides/quiche_platform_impl/quiche_command_line_flags_impl.cc", 298 "overrides/quiche_platform_impl/quiche_command_line_flags_impl.h", 299 "overrides/quiche_platform_impl/quiche_default_proof_providers_impl.cc", 300 "overrides/quiche_platform_impl/quiche_default_proof_providers_impl.h", 301 "overrides/quiche_platform_impl/quiche_system_event_loop_impl.h", 302 "src/quiche/common/platform/default/quiche_platform_impl/quiche_file_utils_impl.cc", 303 "src/quiche/common/platform/default/quiche_platform_impl/quiche_file_utils_impl.h", 304 ] + quiche_tool_support_srcs + quiche_tool_support_hdrs 305 306 configs += [ ":quiche_internal_config" ] 307 public_configs = [ ":quiche_config" ] 308 309 deps = [ 310 "//base", 311 "//base/third_party/dynamic_annotations", 312 "//net", 313 "//third_party/protobuf:protobuf_lite", 314 "//third_party/quic_trace:quic_trace_proto", 315 "//url", 316 ] 317} 318 319# QUICHE-provided CLI tools that don't use epoll. 320if (!is_ios) { 321 # The two libraries below, quic_client_core and quic_server_core, define 322 # mutually exclusive command-line flags, and thus any target depending 323 # directly on both will fail to build. Only executable targets should depend 324 # on those. 325 source_set("quic_client_core") { 326 testonly = true 327 sources = [ 328 "src/quiche/quic/tools/quic_toy_client.cc", 329 "src/quiche/quic/tools/quic_toy_client.h", 330 ] 331 332 configs += [ ":quiche_internal_config" ] 333 public_configs = [ ":quiche_config" ] 334 335 deps = [ 336 "//net", 337 "//net:quic_test_tools", 338 "//net:simple_quic_tools", 339 ] 340 } 341 source_set("quic_server_core") { 342 testonly = true 343 sources = [ 344 "src/quiche/quic/tools/quic_toy_server.cc", 345 "src/quiche/quic/tools/quic_toy_server.h", 346 ] 347 348 configs += [ ":quiche_internal_config" ] 349 public_configs = [ ":quiche_config" ] 350 351 deps = [ 352 "//net", 353 "//net:simple_quic_tools", 354 ] 355 } 356 357 executable("quic_packet_printer") { 358 testonly = true 359 sources = [ "src/quiche/quic/tools/quic_packet_printer_bin.cc" ] 360 361 configs += [ ":quiche_internal_config" ] 362 public_configs = [ ":quiche_config" ] 363 364 deps = [ 365 "//base", 366 "//build/win:default_exe_manifest", 367 "//net", 368 "//net:simple_quic_tools", 369 "//third_party/boringssl", 370 "//third_party/protobuf:protobuf_lite", 371 ] 372 } 373 374 executable("quic_crypto_message_printer") { 375 testonly = true 376 sources = [ "src/quiche/quic/tools/crypto_message_printer_bin.cc" ] 377 378 configs += [ ":quiche_internal_config" ] 379 public_configs = [ ":quiche_config" ] 380 381 deps = [ 382 "//base", 383 "//build/win:default_exe_manifest", 384 "//net", 385 "//net:simple_quic_tools", 386 "//third_party/boringssl", 387 "//third_party/protobuf:protobuf_lite", 388 ] 389 } 390 391 executable("quic_reject_reason_decoder") { 392 testonly = true 393 sources = [ "src/quiche/quic/tools/quic_reject_reason_decoder_bin.cc" ] 394 395 configs += [ ":quiche_internal_config" ] 396 public_configs = [ ":quiche_config" ] 397 398 deps = [ 399 "//base", 400 "//build/win:default_exe_manifest", 401 "//net", 402 "//net:simple_quic_tools", 403 "//third_party/boringssl", 404 "//third_party/protobuf:protobuf_lite", 405 ] 406 } 407 408 executable("qpack_offline_decoder") { 409 testonly = true 410 411 configs += [ ":quiche_internal_config" ] 412 public_configs = [ ":quiche_config" ] 413 414 sources = [ "src/quiche/quic/tools/qpack_offline_decoder_bin.cc" ] 415 deps = [ 416 "//base", 417 "//net", 418 "//net:quic_test_tools", 419 "//net:simple_quic_tools", 420 "//testing/gmock", 421 ] 422 } 423} 424 425bundle_data("test_data") { 426 visibility = [ ":quiche_tests" ] 427 testonly = true 428 sources = [ 429 "src/quiche/common/platform/api/testdir/README.md", 430 "src/quiche/common/platform/api/testdir/a/b/c/d/e", 431 "src/quiche/common/platform/api/testdir/a/subdir/testfile", 432 "src/quiche/common/platform/api/testdir/a/z", 433 "src/quiche/common/platform/api/testdir/testfile", 434 ] 435 outputs = [ "{{bundle_resources_dir}}/" + 436 "{{source_root_relative_dir}}/{{source_file_part}}" ] 437} 438 439source_set("quiche_tests") { 440 testonly = true 441 sources = [ 442 "src/quiche/binary_http/binary_http_message_test.cc", 443 "src/quiche/blind_sign_auth/blind_sign_auth_test.cc", 444 "src/quiche/blind_sign_auth/cached_blind_sign_auth_test.cc", 445 "src/quiche/common/capsule_test.cc", 446 "src/quiche/common/http/http_header_block_test.cc", 447 "src/quiche/common/http/http_header_storage_test.cc", 448 "src/quiche/common/platform/api/quiche_file_utils_test.cc", 449 "src/quiche/common/platform/api/quiche_hostname_utils_test.cc", 450 "src/quiche/common/platform/api/quiche_mem_slice_test.cc", 451 "src/quiche/common/platform/api/quiche_reference_counted_test.cc", 452 "src/quiche/common/platform/api/quiche_stack_trace_test.cc", 453 "src/quiche/common/platform/api/quiche_time_utils_test.cc", 454 "src/quiche/common/platform/api/quiche_url_utils_test.cc", 455 "src/quiche/common/quiche_buffer_allocator_test.cc", 456 "src/quiche/common/quiche_circular_deque_test.cc", 457 "src/quiche/common/quiche_data_reader_test.cc", 458 "src/quiche/common/quiche_data_writer_test.cc", 459 "src/quiche/common/quiche_endian_test.cc", 460 "src/quiche/common/quiche_ip_address_test.cc", 461 "src/quiche/common/quiche_linked_hash_map_test.cc", 462 "src/quiche/common/quiche_mem_slice_storage_test.cc", 463 "src/quiche/common/quiche_random_test.cc", 464 "src/quiche/common/quiche_simple_arena_test.cc", 465 "src/quiche/common/quiche_text_utils_test.cc", 466 "src/quiche/common/simple_buffer_allocator_test.cc", 467 "src/quiche/common/structured_headers_generated_test.cc", 468 "src/quiche/common/structured_headers_test.cc", 469 "src/quiche/http2/adapter/event_forwarder_test.cc", 470 "src/quiche/http2/adapter/header_validator_test.cc", 471 "src/quiche/http2/adapter/noop_header_validator_test.cc", 472 "src/quiche/http2/adapter/oghttp2_adapter_test.cc", 473 "src/quiche/http2/adapter/oghttp2_session_test.cc", 474 "src/quiche/http2/adapter/window_manager_test.cc", 475 "src/quiche/http2/core/priority_write_scheduler_test.cc", 476 "src/quiche/http2/decoder/decode_buffer_test.cc", 477 "src/quiche/http2/decoder/decode_http2_structures_test.cc", 478 "src/quiche/http2/decoder/http2_frame_decoder_test.cc", 479 "src/quiche/http2/decoder/http2_structure_decoder_test.cc", 480 "src/quiche/http2/decoder/payload_decoders/altsvc_payload_decoder_test.cc", 481 "src/quiche/http2/decoder/payload_decoders/continuation_payload_decoder_test.cc", 482 "src/quiche/http2/decoder/payload_decoders/data_payload_decoder_test.cc", 483 "src/quiche/http2/decoder/payload_decoders/goaway_payload_decoder_test.cc", 484 "src/quiche/http2/decoder/payload_decoders/headers_payload_decoder_test.cc", 485 "src/quiche/http2/decoder/payload_decoders/ping_payload_decoder_test.cc", 486 "src/quiche/http2/decoder/payload_decoders/priority_payload_decoder_test.cc", 487 "src/quiche/http2/decoder/payload_decoders/priority_update_payload_decoder_test.cc", 488 "src/quiche/http2/decoder/payload_decoders/push_promise_payload_decoder_test.cc", 489 "src/quiche/http2/decoder/payload_decoders/rst_stream_payload_decoder_test.cc", 490 "src/quiche/http2/decoder/payload_decoders/settings_payload_decoder_test.cc", 491 "src/quiche/http2/decoder/payload_decoders/unknown_payload_decoder_test.cc", 492 "src/quiche/http2/decoder/payload_decoders/window_update_payload_decoder_test.cc", 493 "src/quiche/http2/hpack/decoder/hpack_block_collector_test.cc", 494 "src/quiche/http2/hpack/decoder/hpack_block_decoder_test.cc", 495 "src/quiche/http2/hpack/decoder/hpack_decoder_state_test.cc", 496 "src/quiche/http2/hpack/decoder/hpack_decoder_string_buffer_test.cc", 497 "src/quiche/http2/hpack/decoder/hpack_decoder_tables_test.cc", 498 "src/quiche/http2/hpack/decoder/hpack_decoder_test.cc", 499 "src/quiche/http2/hpack/decoder/hpack_entry_collector_test.cc", 500 "src/quiche/http2/hpack/decoder/hpack_entry_decoder_test.cc", 501 "src/quiche/http2/hpack/decoder/hpack_entry_type_decoder_test.cc", 502 "src/quiche/http2/hpack/decoder/hpack_string_decoder_test.cc", 503 "src/quiche/http2/hpack/decoder/hpack_whole_entry_buffer_test.cc", 504 "src/quiche/http2/hpack/http2_hpack_constants_test.cc", 505 "src/quiche/http2/hpack/huffman/hpack_huffman_decoder_test.cc", 506 "src/quiche/http2/hpack/huffman/hpack_huffman_encoder_test.cc", 507 "src/quiche/http2/hpack/huffman/hpack_huffman_transcoder_test.cc", 508 "src/quiche/http2/hpack/varint/hpack_varint_decoder_test.cc", 509 "src/quiche/http2/hpack/varint/hpack_varint_encoder_test.cc", 510 "src/quiche/http2/hpack/varint/hpack_varint_round_trip_test.cc", 511 "src/quiche/http2/http2_constants_test.cc", 512 "src/quiche/http2/http2_structures_test.cc", 513 "src/quiche/http2/test_tools/hpack_block_builder_test.cc", 514 "src/quiche/http2/test_tools/http2_random_test.cc", 515 "src/quiche/oblivious_http/buffers/oblivious_http_integration_test.cc", 516 "src/quiche/oblivious_http/buffers/oblivious_http_request_test.cc", 517 "src/quiche/oblivious_http/buffers/oblivious_http_response_test.cc", 518 "src/quiche/oblivious_http/common/oblivious_http_header_key_config_test.cc", 519 "src/quiche/oblivious_http/oblivious_http_client_test.cc", 520 "src/quiche/oblivious_http/oblivious_http_gateway_test.cc", 521 "src/quiche/quic/core/congestion_control/bandwidth_sampler_test.cc", 522 "src/quiche/quic/core/congestion_control/bbr2_simulator_test.cc", 523 "src/quiche/quic/core/congestion_control/bbr_sender_test.cc", 524 "src/quiche/quic/core/congestion_control/cubic_bytes_test.cc", 525 "src/quiche/quic/core/congestion_control/general_loss_algorithm_test.cc", 526 "src/quiche/quic/core/congestion_control/hybrid_slow_start_test.cc", 527 "src/quiche/quic/core/congestion_control/pacing_sender_test.cc", 528 "src/quiche/quic/core/congestion_control/prr_sender_test.cc", 529 "src/quiche/quic/core/congestion_control/rtt_stats_test.cc", 530 "src/quiche/quic/core/congestion_control/send_algorithm_test.cc", 531 "src/quiche/quic/core/congestion_control/tcp_cubic_sender_bytes_test.cc", 532 "src/quiche/quic/core/congestion_control/uber_loss_algorithm_test.cc", 533 "src/quiche/quic/core/congestion_control/windowed_filter_test.cc", 534 "src/quiche/quic/core/crypto/aes_128_gcm_12_decrypter_test.cc", 535 "src/quiche/quic/core/crypto/aes_128_gcm_12_encrypter_test.cc", 536 "src/quiche/quic/core/crypto/aes_128_gcm_decrypter_test.cc", 537 "src/quiche/quic/core/crypto/aes_128_gcm_encrypter_test.cc", 538 "src/quiche/quic/core/crypto/aes_256_gcm_decrypter_test.cc", 539 "src/quiche/quic/core/crypto/aes_256_gcm_encrypter_test.cc", 540 "src/quiche/quic/core/crypto/cert_compressor_test.cc", 541 "src/quiche/quic/core/crypto/certificate_util_test.cc", 542 "src/quiche/quic/core/crypto/certificate_view_test.cc", 543 "src/quiche/quic/core/crypto/chacha20_poly1305_decrypter_test.cc", 544 "src/quiche/quic/core/crypto/chacha20_poly1305_encrypter_test.cc", 545 "src/quiche/quic/core/crypto/chacha20_poly1305_tls_decrypter_test.cc", 546 "src/quiche/quic/core/crypto/chacha20_poly1305_tls_encrypter_test.cc", 547 "src/quiche/quic/core/crypto/channel_id_test.cc", 548 "src/quiche/quic/core/crypto/client_proof_source_test.cc", 549 "src/quiche/quic/core/crypto/crypto_framer_test.cc", 550 "src/quiche/quic/core/crypto/crypto_handshake_message_test.cc", 551 "src/quiche/quic/core/crypto/crypto_secret_boxer_test.cc", 552 "src/quiche/quic/core/crypto/crypto_server_test.cc", 553 "src/quiche/quic/core/crypto/crypto_utils_test.cc", 554 "src/quiche/quic/core/crypto/curve25519_key_exchange_test.cc", 555 "src/quiche/quic/core/crypto/null_decrypter_test.cc", 556 "src/quiche/quic/core/crypto/null_encrypter_test.cc", 557 "src/quiche/quic/core/crypto/p256_key_exchange_test.cc", 558 "src/quiche/quic/core/crypto/proof_source_x509_test.cc", 559 "src/quiche/quic/core/crypto/quic_client_session_cache_test.cc", 560 "src/quiche/quic/core/crypto/quic_compressed_certs_cache_test.cc", 561 "src/quiche/quic/core/crypto/quic_crypto_client_config_test.cc", 562 "src/quiche/quic/core/crypto/quic_crypto_server_config_test.cc", 563 "src/quiche/quic/core/crypto/quic_hkdf_test.cc", 564 "src/quiche/quic/core/crypto/transport_parameters_test.cc", 565 "src/quiche/quic/core/crypto/web_transport_fingerprint_proof_verifier_test.cc", 566 "src/quiche/quic/core/frames/quic_frames_test.cc", 567 "src/quiche/quic/core/http/http_decoder_test.cc", 568 "src/quiche/quic/core/http/http_encoder_test.cc", 569 "src/quiche/quic/core/http/http_frames_test.cc", 570 "src/quiche/quic/core/http/quic_header_list_test.cc", 571 "src/quiche/quic/core/http/quic_headers_stream_test.cc", 572 "src/quiche/quic/core/http/quic_receive_control_stream_test.cc", 573 "src/quiche/quic/core/http/quic_send_control_stream_test.cc", 574 "src/quiche/quic/core/http/quic_server_session_base_test.cc", 575 "src/quiche/quic/core/http/quic_spdy_session_test.cc", 576 "src/quiche/quic/core/http/quic_spdy_stream_body_manager_test.cc", 577 "src/quiche/quic/core/http/quic_spdy_stream_test.cc", 578 "src/quiche/quic/core/http/spdy_utils_test.cc", 579 "src/quiche/quic/core/http/web_transport_http3_test.cc", 580 "src/quiche/quic/core/legacy_quic_stream_id_manager_test.cc", 581 "src/quiche/quic/core/packet_number_indexed_queue_test.cc", 582 "src/quiche/quic/core/qpack/qpack_blocking_manager_test.cc", 583 "src/quiche/quic/core/qpack/qpack_decoded_headers_accumulator_test.cc", 584 "src/quiche/quic/core/qpack/qpack_decoder_stream_receiver_test.cc", 585 "src/quiche/quic/core/qpack/qpack_decoder_stream_sender_test.cc", 586 "src/quiche/quic/core/qpack/qpack_decoder_test.cc", 587 "src/quiche/quic/core/qpack/qpack_encoder_stream_receiver_test.cc", 588 "src/quiche/quic/core/qpack/qpack_encoder_stream_sender_test.cc", 589 "src/quiche/quic/core/qpack/qpack_encoder_test.cc", 590 "src/quiche/quic/core/qpack/qpack_header_table_test.cc", 591 "src/quiche/quic/core/qpack/qpack_index_conversions_test.cc", 592 "src/quiche/quic/core/qpack/qpack_instruction_decoder_test.cc", 593 "src/quiche/quic/core/qpack/qpack_instruction_encoder_test.cc", 594 "src/quiche/quic/core/qpack/qpack_receive_stream_test.cc", 595 "src/quiche/quic/core/qpack/qpack_required_insert_count_test.cc", 596 "src/quiche/quic/core/qpack/qpack_round_trip_test.cc", 597 "src/quiche/quic/core/qpack/qpack_send_stream_test.cc", 598 "src/quiche/quic/core/qpack/qpack_static_table_test.cc", 599 "src/quiche/quic/core/qpack/value_splitting_header_list_test.cc", 600 "src/quiche/quic/core/quic_alarm_test.cc", 601 "src/quiche/quic/core/quic_arena_scoped_ptr_test.cc", 602 "src/quiche/quic/core/quic_bandwidth_test.cc", 603 "src/quiche/quic/core/quic_buffered_packet_store_test.cc", 604 "src/quiche/quic/core/quic_chaos_protector_test.cc", 605 "src/quiche/quic/core/quic_coalesced_packet_test.cc", 606 "src/quiche/quic/core/quic_config_test.cc", 607 "src/quiche/quic/core/quic_connection_context_test.cc", 608 "src/quiche/quic/core/quic_connection_id_manager_test.cc", 609 "src/quiche/quic/core/quic_connection_id_test.cc", 610 "src/quiche/quic/core/quic_connection_test.cc", 611 "src/quiche/quic/core/quic_control_frame_manager_test.cc", 612 "src/quiche/quic/core/quic_crypto_client_handshaker_test.cc", 613 "src/quiche/quic/core/quic_crypto_client_stream_test.cc", 614 "src/quiche/quic/core/quic_crypto_server_stream_test.cc", 615 "src/quiche/quic/core/quic_crypto_stream_test.cc", 616 "src/quiche/quic/core/quic_data_writer_test.cc", 617 "src/quiche/quic/core/quic_datagram_queue_test.cc", 618 "src/quiche/quic/core/quic_dispatcher_test.cc", 619 "src/quiche/quic/core/quic_error_codes_test.cc", 620 "src/quiche/quic/core/quic_flow_controller_test.cc", 621 "src/quiche/quic/core/quic_framer_test.cc", 622 "src/quiche/quic/core/quic_idle_network_detector_test.cc", 623 "src/quiche/quic/core/quic_interval_deque_test.cc", 624 "src/quiche/quic/core/quic_interval_set_test.cc", 625 "src/quiche/quic/core/quic_interval_test.cc", 626 "src/quiche/quic/core/quic_lru_cache_test.cc", 627 "src/quiche/quic/core/quic_network_blackhole_detector_test.cc", 628 "src/quiche/quic/core/quic_one_block_arena_test.cc", 629 "src/quiche/quic/core/quic_packet_creator_test.cc", 630 "src/quiche/quic/core/quic_packet_number_test.cc", 631 "src/quiche/quic/core/quic_packets_test.cc", 632 "src/quiche/quic/core/quic_path_validator_test.cc", 633 "src/quiche/quic/core/quic_received_packet_manager_test.cc", 634 "src/quiche/quic/core/quic_sent_packet_manager_test.cc", 635 "src/quiche/quic/core/quic_server_id_test.cc", 636 "src/quiche/quic/core/quic_session_test.cc", 637 "src/quiche/quic/core/quic_socket_address_coder_test.cc", 638 "src/quiche/quic/core/quic_stream_id_manager_test.cc", 639 "src/quiche/quic/core/quic_stream_priority_test.cc", 640 "src/quiche/quic/core/quic_stream_send_buffer_test.cc", 641 "src/quiche/quic/core/quic_stream_sequencer_buffer_test.cc", 642 "src/quiche/quic/core/quic_stream_sequencer_test.cc", 643 "src/quiche/quic/core/quic_stream_test.cc", 644 "src/quiche/quic/core/quic_sustained_bandwidth_recorder_test.cc", 645 "src/quiche/quic/core/quic_tag_test.cc", 646 "src/quiche/quic/core/quic_time_accumulator_test.cc", 647 "src/quiche/quic/core/quic_time_test.cc", 648 "src/quiche/quic/core/quic_time_wait_list_manager_test.cc", 649 "src/quiche/quic/core/quic_trace_visitor_test.cc", 650 "src/quiche/quic/core/quic_unacked_packet_map_test.cc", 651 "src/quiche/quic/core/quic_utils_test.cc", 652 "src/quiche/quic/core/quic_version_manager_test.cc", 653 "src/quiche/quic/core/quic_versions_test.cc", 654 "src/quiche/quic/core/quic_write_blocked_list_test.cc", 655 "src/quiche/quic/core/tls_chlo_extractor_test.cc", 656 "src/quiche/quic/core/tls_client_handshaker_test.cc", 657 "src/quiche/quic/core/uber_quic_stream_id_manager_test.cc", 658 "src/quiche/quic/core/uber_received_packet_manager_test.cc", 659 "src/quiche/quic/platform/api/quic_socket_address_test.cc", 660 "src/quiche/quic/test_tools/crypto_test_utils_test.cc", 661 "src/quiche/quic/test_tools/quic_test_utils_test.cc", 662 "src/quiche/quic/test_tools/simple_session_notifier_test.cc", 663 "src/quiche/quic/test_tools/simulator/quic_endpoint_test.cc", 664 "src/quiche/quic/test_tools/simulator/simulator_test.cc", 665 "src/quiche/quic/tools/quic_memory_cache_backend_test.cc", 666 "src/quiche/quic/tools/quic_tcp_like_trace_converter_test.cc", 667 "src/quiche/quic/tools/simple_ticket_crypter_test.cc", 668 "src/quiche/spdy/core/array_output_buffer_test.cc", 669 "src/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc", 670 "src/quiche/spdy/core/hpack/hpack_encoder_test.cc", 671 "src/quiche/spdy/core/hpack/hpack_entry_test.cc", 672 "src/quiche/spdy/core/hpack/hpack_header_table_test.cc", 673 "src/quiche/spdy/core/hpack/hpack_output_stream_test.cc", 674 "src/quiche/spdy/core/hpack/hpack_round_trip_test.cc", 675 "src/quiche/spdy/core/hpack/hpack_static_table_test.cc", 676 "src/quiche/spdy/core/spdy_alt_svc_wire_format_test.cc", 677 "src/quiche/spdy/core/spdy_frame_builder_test.cc", 678 "src/quiche/spdy/core/spdy_framer_test.cc", 679 "src/quiche/spdy/core/spdy_intrusive_list_test.cc", 680 "src/quiche/spdy/core/spdy_pinnable_buffer_piece_test.cc", 681 "src/quiche/spdy/core/spdy_prefixed_buffer_reader_test.cc", 682 "src/quiche/spdy/core/spdy_protocol_test.cc", 683 ] 684 685 data = [ "src/quiche/common/platform/api/testdir/" ] 686 687 configs += [ ":quiche_internal_config" ] 688 public_configs = [ ":quiche_config" ] 689 690 deps = [ 691 ":blind_sign_auth", 692 ":blind_sign_auth_test_support", 693 "//net", 694 "//net:quic_test_tools", 695 "//net:simple_quic_tools", 696 "//net:spdy_test_tools", 697 "//testing/gmock", 698 "//testing/gtest", 699 ] 700 if (is_ios) { 701 deps += [ ":test_data" ] 702 } 703 public_deps = [] 704 705 if (build_epoll_based_tools) { 706 sources += [ 707 "overrides/quiche_platform_impl/quiche_command_line_flags_test.cc", 708 "src/quiche/quic/core/chlo_extractor_test.cc", 709 "src/quiche/quic/core/http/end_to_end_test.cc", 710 "src/quiche/quic/core/http/quic_spdy_client_session_test.cc", 711 "src/quiche/quic/core/http/quic_spdy_client_stream_test.cc", 712 "src/quiche/quic/core/http/quic_spdy_server_stream_base_test.cc", 713 "src/quiche/quic/tools/quic_default_client_test.cc", 714 "src/quiche/quic/tools/quic_server_test.cc", 715 "src/quiche/quic/tools/quic_simple_server_session_test.cc", 716 "src/quiche/quic/tools/quic_simple_server_stream_test.cc", 717 "src/quiche/quic/tools/quic_url_test.cc", 718 ] 719 public_deps += [ 720 ":epoll_test_support", 721 ":epoll_tool_support", 722 ] 723 } 724} 725 726fuzzer_test("net_quic_framer_fuzzer") { 727 sources = [ "src/quiche/quic/test_tools/fuzzing/quic_framer_fuzzer.cc" ] 728 729 deps = [ 730 "//net", 731 "//net:net_fuzzer_test_support", 732 "//net:quic_test_tools", 733 "//net:test_support", 734 "//net/data/ssl/certificates:generate_fuzzer_cert_includes", 735 ] 736} 737 738fuzzer_test("net_quic_framer_process_data_packet_fuzzer") { 739 sources = [ "src/quiche/quic/test_tools/fuzzing/quic_framer_process_data_packet_fuzzer.cc" ] 740 741 deps = [ 742 "//net", 743 "//net:net_fuzzer_test_support", 744 "//net:quic_test_tools", 745 "//net:test_support", 746 "//net/data/ssl/certificates:generate_fuzzer_cert_includes", 747 ] 748} 749 750fuzzer_test("net_qpack_decoder_fuzzer") { 751 sources = [ "src/quiche/quic/core/qpack/fuzzer/qpack_decoder_fuzzer.cc" ] 752 deps = [ 753 "//base", 754 "//net", 755 "//net:net_fuzzer_test_support", 756 "//net:quic_test_tools", 757 "//net:test_support", 758 ] 759} 760 761fuzzer_test("net_qpack_encoder_stream_receiver_fuzzer") { 762 sources = [ 763 "src/quiche/quic/core/qpack/fuzzer/qpack_encoder_stream_receiver_fuzzer.cc", 764 ] 765 deps = [ 766 "//base", 767 "//net", 768 "//net:net_fuzzer_test_support", 769 ] 770} 771 772fuzzer_test("net_qpack_encoder_stream_sender_fuzzer") { 773 sources = [ 774 "src/quiche/quic/core/qpack/fuzzer/qpack_encoder_stream_sender_fuzzer.cc", 775 ] 776 deps = [ 777 "//base", 778 "//net", 779 "//net:net_fuzzer_test_support", 780 "//net:quic_test_tools", 781 "//net:test_support", 782 ] 783} 784 785fuzzer_test("net_qpack_round_trip_fuzzer") { 786 sources = [ "src/quiche/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc" ] 787 deps = [ 788 "//base", 789 "//net", 790 "//net:net_fuzzer_test_support", 791 "//net:quic_test_tools", 792 "//net:test_support", 793 ] 794} 795 796component("blind_sign_auth") { 797 visibility = [ 798 ":blind_sign_auth_test_support", 799 ":quiche_tests", 800 "//chrome/browser:browser", 801 "//chrome/test:*", 802 ] 803 804 sources = [ 805 "src/quiche/blind_sign_auth/blind_sign_auth.cc", 806 "src/quiche/blind_sign_auth/blind_sign_auth.h", 807 "src/quiche/blind_sign_auth/blind_sign_auth_interface.h", 808 "src/quiche/blind_sign_auth/blind_sign_http_interface.h", 809 "src/quiche/blind_sign_auth/blind_sign_http_response.h", 810 "src/quiche/blind_sign_auth/cached_blind_sign_auth.cc", 811 "src/quiche/blind_sign_auth/cached_blind_sign_auth.h", 812 ] 813 configs += [ ":quiche_internal_config" ] 814 public_configs = [ ":quiche_config" ] 815 816 deps = [ 817 ":quiche", 818 "//base", 819 "//third_party/abseil-cpp:absl", 820 "//third_party/anonymous_tokens:rsa_bssa_public_metadata_client", 821 "//third_party/boringssl", 822 "//url", 823 ] 824 825 public_deps = [ 826 ":blind_sign_auth_proto", 827 "//third_party/anonymous_tokens:anonymous_tokens_rsa_bssa_client", 828 "//third_party/anonymous_tokens:crypto_utils", 829 "//third_party/anonymous_tokens:proto_utils", 830 "//third_party/anonymous_tokens:tokens_encodings", 831 ] 832 833 defines = [ "IS_QUICHE_IMPL" ] 834} 835 836proto_library("blind_sign_auth_proto") { 837 visibility = [ 838 ":blind_sign_auth", 839 ":blind_sign_auth_test_support", 840 ":quiche", 841 ":quiche_tests", 842 ] 843 844 sources = [ 845 "src/quiche/blind_sign_auth/proto/any.proto", 846 "src/quiche/blind_sign_auth/proto/attestation.proto", 847 "src/quiche/blind_sign_auth/proto/auth_and_sign.proto", 848 "src/quiche/blind_sign_auth/proto/blind_sign_auth_options.proto", 849 "src/quiche/blind_sign_auth/proto/get_initial_data.proto", 850 "src/quiche/blind_sign_auth/proto/key_services.proto", 851 "src/quiche/blind_sign_auth/proto/proxy_layer.proto", 852 "src/quiche/blind_sign_auth/proto/public_metadata.proto", 853 "src/quiche/blind_sign_auth/proto/spend_token_data.proto", 854 ] 855 cc_generator_options = "lite=true,dllexport_decl=COMPONENT_EXPORT(QUICHE):" 856 cc_include = "base/component_export.h" 857 component_build_force_source_set = true 858 859 proto_in_dir = "src" 860 861 deps = [ 862 "//base", 863 "//third_party/anonymous_tokens:anonymous_tokens_cc_proto", 864 ] 865 866 import_dirs = [ "//third_party/anonymous_tokens/src/" ] 867 868 defines = [ "IS_QUICHE_IMPL" ] 869 870 extra_configs = [ "//build/config/compiler:wexit_time_destructors" ] 871} 872 873source_set("blind_sign_auth_test_support") { 874 visibility = [ ":quiche_tests" ] 875 testonly = true 876 sources = [ 877 "src/quiche/blind_sign_auth/test_tools/mock_blind_sign_auth_interface.h", 878 "src/quiche/blind_sign_auth/test_tools/mock_blind_sign_http_interface.h", 879 ] 880 configs += [ ":quiche_internal_config" ] 881 public_configs = [ ":quiche_config" ] 882 883 deps = [ 884 ":blind_sign_auth", 885 ":quiche", 886 ":quiche_test_support", 887 ":quiche_tool_support", 888 ] 889 public_deps = 890 [ "//third_party/anonymous_tokens:anonymous_tokens_test_support" ] 891} 892