Send correct QUIC CRYPTO_ERROR connection error for TLS errors
Protected by FLAGS_quic_reloadable_flag_quic_send_tls_crypto_error_code.
PiperOrigin-RevId: 351885444
Change-Id: I5388eaa8632342f17a0212c68ab587ea0d04ee79
diff --git a/quic/core/quic_error_codes_test.cc b/quic/core/quic_error_codes_test.cc
index 6bf63d0..f72c150 100644
--- a/quic/core/quic_error_codes_test.cc
+++ b/quic/core/quic_error_codes_test.cc
@@ -78,7 +78,17 @@
if (ietf_error_code.is_transport_close) {
QuicIetfTransportErrorCodes transport_error_code =
static_cast<QuicIetfTransportErrorCodes>(ietf_error_code.error_code);
- bool is_valid_transport_error_code = transport_error_code <= 0x0f;
+ bool is_transport_crypto_error_code =
+ transport_error_code >= 0x100 && transport_error_code <= 0x1ff;
+ if (is_transport_crypto_error_code) {
+ // Ensure that every QuicErrorCode that maps to a CRYPTO_ERROR code has
+ // a corresponding reverse mapping in TlsAlertToQuicErrorCode:
+ EXPECT_EQ(
+ internal_error_code,
+ TlsAlertToQuicErrorCode(transport_error_code - CRYPTO_ERROR_FIRST));
+ }
+ bool is_valid_transport_error_code =
+ transport_error_code <= 0x0f || is_transport_crypto_error_code;
EXPECT_TRUE(is_valid_transport_error_code) << internal_error_code_string;
} else {
// Non-transport errors are application errors, either HTTP/3 or QPACK.