diff --git a/bazel/envoy_internal.bzl b/bazel/envoy_internal.bzl index 10b3448c00eea..2c51606c8aaee 100644 --- a/bazel/envoy_internal.bzl +++ b/bazel/envoy_internal.bzl @@ -32,6 +32,9 @@ def envoy_copts(repository, test = False): "-DNOMCX", "-DNOIME", "-DNOCRYPT", + # Ignore unguarded gcc pragmas in quiche (unrecognized by MSVC) + # TODO(wrowe): Drop this change when fixed in bazel/external/quiche.genrule_cmd + "-wd4068", # this is to silence the incorrect MSVC compiler warning when trying to convert between # std::optional data types while conversions between primitive types are producing no error "-wd4244", diff --git a/bazel/envoy_library.bzl b/bazel/envoy_library.bzl index 471c8b72eec7e..bf0c89773fcb5 100644 --- a/bazel/envoy_library.bzl +++ b/bazel/envoy_library.bzl @@ -98,7 +98,8 @@ def envoy_cc_library( tags = [], deps = [], strip_include_prefix = None, - textual_hdrs = None): + textual_hdrs = None, + defines = []): if tcmalloc_dep: deps += tcmalloc_external_deps(repository) @@ -123,6 +124,7 @@ def envoy_cc_library( alwayslink = 1, linkstatic = envoy_linkstatic(), strip_include_prefix = strip_include_prefix, + defines = defines, ) # Intended for usage by external consumers. This allows them to disambiguate diff --git a/bazel/external/quiche.BUILD b/bazel/external/quiche.BUILD index 6ca8429b3250c..7541909aa1914 100644 --- a/bazel/external/quiche.BUILD +++ b/bazel/external/quiche.BUILD @@ -61,7 +61,8 @@ quiche_common_copts = [ ] quiche_copts = select({ - "@envoy//bazel:windows_x86_64": [], + # Ignore unguarded #pragma GCC statements in QUICHE sources + "@envoy//bazel:windows_x86_64": ["-wd4068"], # Remove these after upstream fix. "@envoy//bazel:gcc_build": [ "-Wno-sign-compare", @@ -2244,6 +2245,12 @@ envoy_cc_library( "quiche/quic/core/frames/quic_window_update_frame.h", ], copts = quiche_copts, + # TODO: Work around initializer in anonymous union in fastbuild build. + # Remove this after upstream fix. + defines = select({ + "@envoy//bazel:windows_x86_64": ["QUIC_FRAME_DEBUG=0"], + "//conditions:default": [], + }), repository = "@envoy", tags = ["nofips"], visibility = ["//visibility:public"], diff --git a/source/extensions/quic_listeners/quiche/BUILD b/source/extensions/quic_listeners/quiche/BUILD index e259575024b18..b3bc3bd39db8f 100644 --- a/source/extensions/quic_listeners/quiche/BUILD +++ b/source/extensions/quic_listeners/quiche/BUILD @@ -375,13 +375,9 @@ envoy_cc_extension( # QUICHE can't build against FIPS BoringSSL until the FIPS build # is on a new enough version to have QUIC support. Remove it from # the build until then. Re-enable as part of #7433. - # - # QUICHE doesn't compile on Windows right now. Disable until it - # is fixed. deps = select({ "//bazel:boringssl_fips": [], "//bazel:boringssl_disabled": [], - "//bazel:windows_x86_64": [], "//conditions:default": [ ":active_quic_listener_config_lib", ":codec_lib", diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_alarm_factory.h b/source/extensions/quic_listeners/quiche/envoy_quic_alarm_factory.h index c373ed42298f5..2185450584616 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_alarm_factory.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_alarm_factory.h @@ -4,15 +4,18 @@ #include "extensions/quic_listeners/quiche/envoy_quic_alarm.h" +#if defined(__GNUC__) #pragma GCC diagnostic push - -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + #include "quiche/quic/core/quic_alarm_factory.h" #include "quiche/quic/core/quic_arena_scoped_ptr.h" #include "quiche/quic/core/quic_one_block_arena.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif namespace Envoy { namespace Quic { diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_client_connection.cc b/source/extensions/quic_listeners/quiche/envoy_quic_client_connection.cc index 830b28e286344..e79b08ad99215 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_client_connection.cc +++ b/source/extensions/quic_listeners/quiche/envoy_quic_client_connection.cc @@ -80,7 +80,8 @@ void EnvoyQuicClientConnection::setUpConnectionSocket() { if (connectionSocket()->ioHandle().isOpen()) { file_event_ = connectionSocket()->ioHandle().createFileEvent( dispatcher_, [this](uint32_t events) -> void { onFileEvent(events); }, - Event::FileTriggerType::Edge, Event::FileReadyType::Read | Event::FileReadyType::Write); + Event::PlatformDefaultTriggerType, + Event::FileReadyType::Read | Event::FileReadyType::Write); if (!Network::Socket::applyOptions(connectionSocket()->options(), *connectionSocket(), envoy::config::core::v3::SocketOption::STATE_LISTENING)) { diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_client_session.h b/source/extensions/quic_listeners/quiche/envoy_quic_client_session.h index cea3452607c06..c187295fc72ef 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_client_session.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_client_session.h @@ -1,15 +1,17 @@ #pragma once +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" #pragma GCC diagnostic ignored "-Wtype-limits" +#endif #include "quiche/quic/core/http/quic_spdy_client_session.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "extensions/quic_listeners/quiche/envoy_quic_client_stream.h" #include "extensions/quic_listeners/quiche/envoy_quic_client_connection.h" diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_client_stream.cc b/source/extensions/quic_listeners/quiche/envoy_quic_client_stream.cc index 39a16309c271a..866e35416b0b3 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_client_stream.cc +++ b/source/extensions/quic_listeners/quiche/envoy_quic_client_stream.cc @@ -1,17 +1,19 @@ #include "extensions/quic_listeners/quiche/envoy_quic_client_stream.h" +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif #include "quiche/quic/core/quic_session.h" #include "quiche/quic/core/http/quic_header_list.h" #include "quiche/spdy/core/spdy_header_block.h" #include "extensions/quic_listeners/quiche/platform/quic_mem_slice_span_impl.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "extensions/quic_listeners/quiche/envoy_quic_utils.h" #include "extensions/quic_listeners/quiche/envoy_quic_client_session.h" diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_client_stream.h b/source/extensions/quic_listeners/quiche/envoy_quic_client_stream.h index 761201c16f7cf..79003e4621f49 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_client_stream.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_client_stream.h @@ -1,13 +1,16 @@ #pragma once +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif + #include "quiche/quic/core/http/quic_spdy_client_stream.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "extensions/quic_listeners/quiche/envoy_quic_stream.h" diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_connection.h b/source/extensions/quic_listeners/quiche/envoy_quic_connection.h index 51aebb2dd08f4..f4c8589d7118d 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_connection.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_connection.h @@ -1,14 +1,16 @@ #pragma once +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif #include "quiche/quic/core/quic_connection.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_connection_helper.h b/source/extensions/quic_listeners/quiche/envoy_quic_connection_helper.h index 6af08fdece7a5..2c050e557358a 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_connection_helper.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_connection_helper.h @@ -1,17 +1,19 @@ #pragma once +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" #pragma GCC diagnostic ignored "-Wtype-limits" +#endif #include "quiche/quic/core/crypto/quic_random.h" #include "quiche/quic/core/quic_connection.h" #include "quiche/quic/core/quic_simple_buffer_allocator.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "extensions/quic_listeners/quiche/platform/envoy_quic_clock.h" diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.h b/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.h index 5921342b84bfe..589ff53277062 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_dispatcher.h @@ -1,16 +1,18 @@ #pragma once +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" #pragma GCC diagnostic ignored "-Wtype-limits" +#endif #include "quiche/quic/core/quic_dispatcher.h" #include "quiche/quic/core/quic_utils.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_packet_writer.h b/source/extensions/quic_listeners/quiche/envoy_quic_packet_writer.h index bb4b736c84c8d..560742e44e571 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_packet_writer.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_packet_writer.h @@ -1,14 +1,16 @@ #pragma once +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif #include "quiche/quic/core/quic_packet_writer.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "envoy/network/udp_packet_writer_handler.h" diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.cc b/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.cc index 220dc4cb1ccfe..2c82c04d901d8 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.cc +++ b/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.cc @@ -1,12 +1,15 @@ #include "extensions/quic_listeners/quiche/envoy_quic_proof_source_base.h" +#if defined(__GNUC__) #pragma GCC diagnostic push - -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + #include "quiche/quic/core/quic_data_writer.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "extensions/quic_listeners/quiche/envoy_quic_utils.h" diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.h b/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.h index 149cc50c7d63a..b7d76981e5193 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_proof_source_base.h @@ -6,17 +6,21 @@ #include "absl/strings/str_cat.h" +#if defined(__GNUC__) #pragma GCC diagnostic push - -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" +#endif + #include "quiche/quic/core/crypto/proof_source.h" #include "quiche/quic/core/quic_versions.h" #include "quiche/quic/core/crypto/crypto_protocol.h" #include "quiche/quic/platform/api/quic_reference_counted.h" #include "quiche/quic/platform/api/quic_socket_address.h" #include "quiche/common/platform/api/quiche_string_piece.h" + +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "openssl/ssl.h" #include "envoy/network/filter.h" diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_proof_verifier_base.h b/source/extensions/quic_listeners/quiche/envoy_quic_proof_verifier_base.h index 02dac5facd42f..f45736c7d19ad 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_proof_verifier_base.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_proof_verifier_base.h @@ -2,15 +2,17 @@ #include "absl/strings/str_cat.h" +#if defined(__GNUC__) #pragma GCC diagnostic push - -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" +#endif #include "quiche/quic/core/crypto/proof_verifier.h" #include "quiche/quic/core/quic_versions.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "common/common/logger.h" diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_server_session.h b/source/extensions/quic_listeners/quiche/envoy_quic_server_session.h index ec117c3aa91e2..54a88efdea75c 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_server_session.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_server_session.h @@ -1,17 +1,19 @@ #pragma once +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" #pragma GCC diagnostic ignored "-Wtype-limits" +#endif #include "quiche/quic/core/http/quic_server_session_base.h" #include "quiche/quic/core/quic_crypto_server_stream.h" #include "quiche/quic/core/tls_server_handshaker.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_server_stream.cc b/source/extensions/quic_listeners/quiche/envoy_quic_server_stream.cc index feda7c2f2a94d..d5e5726bf3693 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_server_stream.cc +++ b/source/extensions/quic_listeners/quiche/envoy_quic_server_stream.cc @@ -5,17 +5,20 @@ #include +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif #include "quiche/quic/core/http/quic_header_list.h" #include "quiche/quic/core/quic_session.h" #include "quiche/spdy/core/spdy_header_block.h" #include "extensions/quic_listeners/quiche/platform/quic_mem_slice_span_impl.h" + +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "extensions/quic_listeners/quiche/envoy_quic_utils.h" #include "extensions/quic_listeners/quiche/envoy_quic_server_session.h" diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_server_stream.h b/source/extensions/quic_listeners/quiche/envoy_quic_server_stream.h index 060cb237d669d..b05a707751ff0 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_server_stream.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_server_stream.h @@ -1,13 +1,16 @@ #pragma once +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif + #include "quiche/quic/core/http/quic_spdy_server_stream_base.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "extensions/quic_listeners/quiche/envoy_quic_stream.h" diff --git a/source/extensions/quic_listeners/quiche/envoy_quic_utils.h b/source/extensions/quic_listeners/quiche/envoy_quic_utils.h index 287576d3dd539..563e0960cbd9a 100644 --- a/source/extensions/quic_listeners/quiche/envoy_quic_utils.h +++ b/source/extensions/quic_listeners/quiche/envoy_quic_utils.h @@ -8,16 +8,17 @@ #include "common/network/address_impl.h" #include "common/network/listen_socket_impl.h" +#if defined(__GNUC__) #pragma GCC diagnostic push - -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif #include "quiche/quic/core/quic_types.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "quiche/quic/core/http/quic_header_list.h" #include "quiche/quic/core/quic_error_codes.h" diff --git a/source/extensions/quic_listeners/quiche/udp_gso_batch_writer.h b/source/extensions/quic_listeners/quiche/udp_gso_batch_writer.h index db4ebe9a3247c..366dfccb24686 100644 --- a/source/extensions/quic_listeners/quiche/udp_gso_batch_writer.h +++ b/source/extensions/quic_listeners/quiche/udp_gso_batch_writer.h @@ -6,11 +6,8 @@ #define UDP_GSO_BATCH_WRITER_COMPILETIME_SUPPORT 1 #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" -// QUICHE allows ignored qualifiers #pragma GCC diagnostic ignored "-Wignored-qualifiers" // QUICHE doesn't mark override at QuicBatchWriterBase::SupportsReleaseTime() diff --git a/source/extensions/transport_sockets/alts/grpc_tsi.h b/source/extensions/transport_sockets/alts/grpc_tsi.h index d07cd8d57fb2b..1acecac58d4de 100644 --- a/source/extensions/transport_sockets/alts/grpc_tsi.h +++ b/source/extensions/transport_sockets/alts/grpc_tsi.h @@ -4,7 +4,7 @@ // compile with -Werror, ignoring those compiler warning since we don't have // control on those source codes. This works with GCC and Clang. -#ifndef _MSC_VER +#if defined(__GNUC__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" #pragma GCC diagnostic ignored "-Wold-style-cast" @@ -18,7 +18,7 @@ #include "src/core/tsi/transport_security_grpc.h" #include "src/core/tsi/transport_security_interface.h" -#ifndef _MSC_VER +#if defined(__GNUC__) #pragma GCC diagnostic pop #endif diff --git a/test/extensions/quic_listeners/quiche/BUILD b/test/extensions/quic_listeners/quiche/BUILD index bb259455a7c1b..92aad3fe9a2e5 100644 --- a/test/extensions/quic_listeners/quiche/BUILD +++ b/test/extensions/quic_listeners/quiche/BUILD @@ -27,11 +27,7 @@ envoy_cc_test( name = "envoy_quic_writer_test", srcs = ["envoy_quic_writer_test.cc"], external_deps = ["quiche_quic_platform"], - # Skipping as quiche quic_stream_send_buffer.cc does not currently compile on Windows - tags = [ - "nofips", - "skip_on_windows", - ], + tags = ["nofips"], deps = [ "//source/common/network:io_socket_error_lib", "//source/common/network:udp_packet_writer_handler_lib", @@ -74,11 +70,7 @@ envoy_cc_test( envoy_cc_test( name = "envoy_quic_server_stream_test", srcs = ["envoy_quic_server_stream_test.cc"], - # Skipping as quiche quic_stream_send_buffer.cc does not currently compile on Windows - tags = [ - "nofips", - "skip_on_windows", - ], + tags = ["nofips"], deps = [ ":quic_test_utils_for_envoy_lib", ":test_utils_lib", @@ -99,11 +91,7 @@ envoy_cc_test( envoy_cc_test( name = "envoy_quic_client_stream_test", srcs = ["envoy_quic_client_stream_test.cc"], - # Skipping as quiche quic_stream_send_buffer.cc does not currently compile on Windows - tags = [ - "nofips", - "skip_on_windows", - ], + tags = ["nofips"], deps = [ ":quic_test_utils_for_envoy_lib", ":test_utils_lib", @@ -123,11 +111,7 @@ envoy_cc_test( envoy_cc_test( name = "envoy_quic_server_session_test", srcs = ["envoy_quic_server_session_test.cc"], - # Skipping as quiche quic_stream_send_buffer.cc does not currently compile on Windows - tags = [ - "nofips", - "skip_on_windows", - ], + tags = ["nofips"], deps = [ ":quic_test_utils_for_envoy_lib", ":test_proof_source_lib", @@ -156,11 +140,7 @@ envoy_cc_test( envoy_cc_test( name = "envoy_quic_client_session_test", srcs = ["envoy_quic_client_session_test.cc"], - # Skipping as quiche quic_stream_send_buffer.cc does not currently compile on Windows - tags = [ - "nofips", - "skip_on_windows", - ], + tags = ["nofips"], deps = [ ":quic_test_utils_for_envoy_lib", ":test_utils_lib", @@ -182,10 +162,9 @@ envoy_cc_test( envoy_cc_test( name = "active_quic_listener_test", srcs = ["active_quic_listener_test.cc"], - # Skipping as quiche quic_stream_send_buffer.cc does not currently compile on Windows tags = [ + "fails_on_windows", "nofips", - "skip_on_windows", ], deps = [ ":quic_test_utils_for_envoy_lib", @@ -207,11 +186,7 @@ envoy_cc_test( envoy_cc_test( name = "envoy_quic_dispatcher_test", srcs = ["envoy_quic_dispatcher_test.cc"], - # quic_sent_packet_manager.cc does not compile error: warning C4715: 'quic::QuicSentPacketManager::OnRetransmissionTimeout': not all control paths return a value - tags = [ - "nofips", - "skip_on_windows", - ], + tags = ["nofips"], deps = [ ":quic_test_utils_for_envoy_lib", ":test_proof_source_lib", @@ -278,11 +253,7 @@ envoy_cc_test( envoy_cc_test( name = "envoy_quic_utils_test", srcs = ["envoy_quic_utils_test.cc"], - # Skipping as quiche quic_stream_send_buffer.cc does not currently compile on Windows - tags = [ - "nofips", - "skip_on_windows", - ], + tags = ["nofips"], deps = [ ":quic_test_utils_for_envoy_lib", "//source/extensions/quic_listeners/quiche:envoy_quic_utils_lib", @@ -294,11 +265,7 @@ envoy_cc_test( envoy_cc_test( name = "active_quic_listener_config_test", srcs = ["active_quic_listener_config_test.cc"], - # Skipping as quiche quic_stream_send_buffer.cc does not currently compile on Windows - tags = [ - "nofips", - "skip_on_windows", - ], + tags = ["nofips"], deps = [ "//source/common/config:utility_lib", "//source/extensions/quic_listeners/quiche:active_quic_listener_config_lib", @@ -309,11 +276,7 @@ envoy_cc_test( envoy_cc_test( name = "envoy_quic_simulated_watermark_buffer_test", srcs = ["envoy_quic_simulated_watermark_buffer_test.cc"], - # Skipping as quiche quic_stream_send_buffer.cc does not currently compile on Windows - tags = [ - "nofips", - "skip_on_windows", - ], + tags = ["nofips"], deps = ["//source/extensions/quic_listeners/quiche:envoy_quic_simulated_watermark_buffer_lib"], ) diff --git a/test/extensions/quic_listeners/quiche/active_quic_listener_test.cc b/test/extensions/quic_listeners/quiche/active_quic_listener_test.cc index 4bfd4ff579ee3..240d9b42ec414 100644 --- a/test/extensions/quic_listeners/quiche/active_quic_listener_test.cc +++ b/test/extensions/quic_listeners/quiche/active_quic_listener_test.cc @@ -1,41 +1,40 @@ #include - -#pragma GCC diagnostic push -// QUICHE allows unused parameters. -#pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). -#pragma GCC diagnostic ignored "-Winvalid-offsetof" - #include -#include "common/runtime/runtime_impl.h" - #include "envoy/config/core/v3/base.pb.h" #include "envoy/config/core/v3/base.pb.validate.h" #include "envoy/network/exception.h" +#if defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif + #include "quiche/quic/core/crypto/crypto_protocol.h" #include "quiche/quic/test_tools/crypto_test_utils.h" #include "quiche/quic/test_tools/quic_dispatcher_peer.h" #include "quiche/quic/test_tools/quic_test_utils.h" #include "quiche/quic/test_tools/quic_crypto_server_config_peer.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "server/configuration_impl.h" #include "common/common/logger.h" #include "common/network/listen_socket_impl.h" #include "common/network/socket_option_factory.h" #include "common/network/udp_packet_writer_handler_impl.h" +#include "common/runtime/runtime_impl.h" #include "extensions/quic_listeners/quiche/active_quic_listener.h" #include "test/extensions/quic_listeners/quiche/test_utils.h" #include "test/extensions/quic_listeners/quiche/test_proof_source.h" #include "test/test_common/simulated_time_system.h" #include "test/test_common/environment.h" #include "test/mocks/network/mocks.h" -#include "test/mocks/server/instance.h" - #include "test/mocks/runtime/mocks.h" +#include "test/mocks/server/instance.h" #include "test/test_common/utility.h" #include "test/test_common/network_utility.h" #include "absl/time/time.h" @@ -316,7 +315,7 @@ TEST_P(ActiveQuicListenerTest, FailSocketOptionUponCreation) { options->emplace_back(std::move(option)); quic_listener_.reset(); EXPECT_THROW_WITH_REGEX( - std::make_unique( + (void)std::make_unique( 0, 1, *dispatcher_, connection_handler_, listen_socket_, listener_config_, quic_config_, options, false, ActiveQuicListenerFactoryPeer::runtimeEnabled( diff --git a/test/extensions/quic_listeners/quiche/crypto_test_utils_for_envoy.cc b/test/extensions/quic_listeners/quiche/crypto_test_utils_for_envoy.cc index cafdce0c6227d..3ed00db002742 100644 --- a/test/extensions/quic_listeners/quiche/crypto_test_utils_for_envoy.cc +++ b/test/extensions/quic_listeners/quiche/crypto_test_utils_for_envoy.cc @@ -3,19 +3,17 @@ // This file defines platform dependent test utility functions which is declared // in quiche/quic/test_tools/crypto_test_utils.h. -#ifdef __GNUC__ +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" #pragma GCC diagnostic ignored "-Wtype-limits" +#endif #include "quiche/quic/test_tools/crypto_test_utils.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop -#else -#include "quiche/quic/test_tools/crypto_test_utils.h" #endif #include diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_client_session_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_client_session_test.cc index 803d5494ccc53..e2d90d9164694 100644 --- a/test/extensions/quic_listeners/quiche/envoy_quic_client_session_test.cc +++ b/test/extensions/quic_listeners/quiche/envoy_quic_client_session_test.cc @@ -1,14 +1,16 @@ +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif #include "quiche/quic/core/crypto/null_encrypter.h" #include "quiche/quic/test_tools/crypto_test_utils.h" #include "quiche/quic/test_tools/quic_test_utils.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "extensions/quic_listeners/quiche/envoy_quic_client_session.h" #include "extensions/quic_listeners/quiche/envoy_quic_client_connection.h" diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_dispatcher_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_dispatcher_test.cc index c5f97f59fc8f5..67ddffd4d411f 100644 --- a/test/extensions/quic_listeners/quiche/envoy_quic_dispatcher_test.cc +++ b/test/extensions/quic_listeners/quiche/envoy_quic_dispatcher_test.cc @@ -1,18 +1,20 @@ #include +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif #include "quiche/quic/core/quic_dispatcher.h" #include "quiche/quic/test_tools/quic_dispatcher_peer.h" #include "quiche/quic/test_tools/crypto_test_utils.h" - #include "quiche/quic/test_tools/quic_test_utils.h" #include "quiche/common/platform/api/quiche_text_utils.h" + +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_server_session_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_server_session_test.cc index fc4caa2ffcc5b..bce66eb7759c1 100644 --- a/test/extensions/quic_listeners/quiche/envoy_quic_server_session_test.cc +++ b/test/extensions/quic_listeners/quiche/envoy_quic_server_session_test.cc @@ -1,8 +1,8 @@ +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif #include "quiche/quic/core/crypto/null_encrypter.h" #include "quiche/quic/core/quic_crypto_server_stream.h" @@ -13,7 +13,9 @@ #include "quiche/quic/test_tools/quic_server_session_base_peer.h" #include "quiche/quic/test_tools/quic_test_utils.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_server_stream_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_server_stream_test.cc index 153b45b91fbc4..c2fd31c6fdaa9 100644 --- a/test/extensions/quic_listeners/quiche/envoy_quic_server_stream_test.cc +++ b/test/extensions/quic_listeners/quiche/envoy_quic_server_stream_test.cc @@ -1,14 +1,17 @@ #include +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif #include "quiche/quic/test_tools/quic_connection_peer.h" #include "quiche/quic/test_tools/quic_session_peer.h" + +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "common/event/libevent_scheduler.h" #include "common/http/headers.h" diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_utils_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_utils_test.cc index 68d606ea54b4e..ad5dd5df4870a 100644 --- a/test/extensions/quic_listeners/quiche/envoy_quic_utils_test.cc +++ b/test/extensions/quic_listeners/quiche/envoy_quic_utils_test.cc @@ -1,14 +1,16 @@ #include "extensions/quic_listeners/quiche/envoy_quic_utils.h" +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif #include "quiche/quic/test_tools/quic_test_utils.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "test/mocks/api/mocks.h" #include "test/test_common/threadsafe_singleton_injector.h" @@ -26,7 +28,7 @@ TEST(EnvoyQuicUtilsTest, ConversionBetweenQuicAddressAndEnvoyAddress) { // Mock out socket() system call to test both V4 and V6 address conversion. testing::NiceMock os_sys_calls; TestThreadsafeSingletonInjector os_calls{&os_sys_calls}; - ON_CALL(os_sys_calls, socket(_, _, _)).WillByDefault(Return(Api::SysCallIntResult{1, 0})); + ON_CALL(os_sys_calls, socket(_, _, _)).WillByDefault(Return(Api::SysCallSocketResult{1, 0})); ON_CALL(os_sys_calls, close(_)).WillByDefault(Return(Api::SysCallIntResult{0, 0})); quic::QuicSocketAddress quic_uninitialized_addr; diff --git a/test/extensions/quic_listeners/quiche/envoy_quic_writer_test.cc b/test/extensions/quic_listeners/quiche/envoy_quic_writer_test.cc index cb22532e69bb3..544fdf90b3873 100644 --- a/test/extensions/quic_listeners/quiche/envoy_quic_writer_test.cc +++ b/test/extensions/quic_listeners/quiche/envoy_quic_writer_test.cc @@ -29,7 +29,7 @@ class EnvoyQuicWriterTest : public ::testing::Test { quic::QuicIpAddress peer_ip; peer_ip.FromString("::1"); peer_address_ = quic::QuicSocketAddress(peer_ip, /*port=*/123); - ON_CALL(os_sys_calls_, socket(_, _, _)).WillByDefault(Return(Api::SysCallIntResult{3, 0})); + ON_CALL(os_sys_calls_, socket(_, _, _)).WillByDefault(Return(Api::SysCallSocketResult{3, 0})); ON_CALL(os_sys_calls_, close(3)).WillByDefault(Return(Api::SysCallIntResult{0, 0})); } diff --git a/test/extensions/quic_listeners/quiche/integration/BUILD b/test/extensions/quic_listeners/quiche/integration/BUILD index 09dab3f9b0029..34cd23dcd6f9e 100644 --- a/test/extensions/quic_listeners/quiche/integration/BUILD +++ b/test/extensions/quic_listeners/quiche/integration/BUILD @@ -13,10 +13,9 @@ envoy_cc_test( size = "medium", srcs = ["quic_http_integration_test.cc"], data = ["//test/config/integration/certs"], - # Skipping as quiche quic_stream_send_buffer.cc does not currently compile on Windows tags = [ + "fails_on_windows", "nofips", - "skip_on_windows", ], deps = [ "//source/extensions/filters/http/dynamo:config", diff --git a/test/extensions/quic_listeners/quiche/integration/quic_http_integration_test.cc b/test/extensions/quic_listeners/quiche/integration/quic_http_integration_test.cc index b9f29d36e2c70..91f8c5d99c19e 100644 --- a/test/extensions/quic_listeners/quiche/integration/quic_http_integration_test.cc +++ b/test/extensions/quic_listeners/quiche/integration/quic_http_integration_test.cc @@ -13,17 +13,19 @@ #include "test/test_common/test_runtime.h" #include "test/test_common/utility.h" +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif #include "quiche/quic/core/http/quic_client_push_promise_index.h" #include "quiche/quic/core/quic_utils.h" #include "quiche/quic/test_tools/quic_test_utils.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "extensions/quic_listeners/quiche/envoy_quic_client_session.h" #include "extensions/quic_listeners/quiche/envoy_quic_client_connection.h" diff --git a/test/extensions/quic_listeners/quiche/platform/BUILD b/test/extensions/quic_listeners/quiche/platform/BUILD index 9ccaf9cdedc21..420e812b85a7c 100644 --- a/test/extensions/quic_listeners/quiche/platform/BUILD +++ b/test/extensions/quic_listeners/quiche/platform/BUILD @@ -37,7 +37,10 @@ envoy_cc_test( "//bazel:linux": ["quic_platform_test.cc"], "//conditions:default": [], }), - copts = ["-Wno-unused-parameter"], + copts = select({ + "//bazel:windows_x86_64": [], + "//conditions:default": ["-Wno-unused-parameter"], + }), data = ["//test/extensions/transport_sockets/tls/test_data:certs"], external_deps = ["quiche_quic_platform"], tags = ["nofips"], diff --git a/test/extensions/quic_listeners/quiche/test_proof_source.h b/test/extensions/quic_listeners/quiche/test_proof_source.h index 8b1baf920d69b..a249b43144fdc 100644 --- a/test/extensions/quic_listeners/quiche/test_proof_source.h +++ b/test/extensions/quic_listeners/quiche/test_proof_source.h @@ -1,15 +1,14 @@ -#ifdef __GNUC__ +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" #pragma GCC diagnostic ignored "-Wtype-limits" +#endif + #include "quiche/quic/test_tools/test_certificates.h" +#if defined(__GNUC__) #pragma GCC diagnostic pop -#else -#include "quiche/quic/test_tools/test_certificates.h" #endif #include diff --git a/test/extensions/quic_listeners/quiche/test_utils.h b/test/extensions/quic_listeners/quiche/test_utils.h index b9cc942af8401..102f7608e50b9 100644 --- a/test/extensions/quic_listeners/quiche/test_utils.h +++ b/test/extensions/quic_listeners/quiche/test_utils.h @@ -1,10 +1,10 @@ #include "extensions/quic_listeners/quiche/quic_filter_manager_connection_impl.h" +#if defined(__GNUC__) #pragma GCC diagnostic push -// QUICHE allows unused parameters. #pragma GCC diagnostic ignored "-Wunused-parameter" -// QUICHE uses offsetof(). #pragma GCC diagnostic ignored "-Winvalid-offsetof" +#endif #include "quiche/quic/core/http/quic_spdy_session.h" #include "quiche/quic/core/http/quic_spdy_client_session.h" @@ -13,7 +13,10 @@ #include "quiche/quic/core/quic_utils.h" #include "quiche/quic/test_tools/crypto_test_utils.h" #include "quiche/quic/test_tools/quic_config_peer.h" + +#if defined(__GNUC__) #pragma GCC diagnostic pop +#endif #include "extensions/quic_listeners/quiche/envoy_quic_utils.h" #include "test/test_common/environment.h" diff --git a/test/server/BUILD b/test/server/BUILD index fbb057d1fa716..4447125525884 100644 --- a/test/server/BUILD +++ b/test/server/BUILD @@ -271,7 +271,8 @@ envoy_cc_test( srcs = ["listener_manager_impl_quic_only_test.cc"], tags = [ "nofips", - # Skipping as quiche quic_stream_send_buffer.cc does not currently compile on Windows + # Skipping as quiche quic_gso_batch_writer.h does not exist on Windows + # required by quic_stream_send_buffer.cc "skip_on_windows", ], deps = [