diff --git a/quic/core/crypto/quic_crypto_client_config_test.cc b/quic/core/crypto/quic_crypto_client_config_test.cc
index 683180b..7a34d21 100644
--- a/quic/core/crypto/quic_crypto_client_config_test.cc
+++ b/quic/core/crypto/quic_crypto_client_config_test.cc
@@ -115,11 +115,9 @@
 TEST_F(QuicCryptoClientConfigTest, CachedState_ServerIdConsumedBeforeSet) {
   QuicCryptoClientConfig::CachedState state;
   EXPECT_FALSE(state.has_server_designated_connection_id());
-#if GTEST_HAS_DEATH_TEST && !defined(NDEBUG)
-  EXPECT_DEBUG_DEATH(state.GetNextServerDesignatedConnectionId(),
-                     "Attempting to consume a connection id "
-                     "that was never designated.");
-#endif  // GTEST_HAS_DEATH_TEST && !defined(NDEBUG)
+  EXPECT_QUIC_DEBUG_DEATH(state.GetNextServerDesignatedConnectionId(),
+                          "Attempting to consume a connection id "
+                          "that was never designated.");
 }
 
 TEST_F(QuicCryptoClientConfigTest, CachedState_ServerNonce) {
@@ -156,11 +154,9 @@
 TEST_F(QuicCryptoClientConfigTest, CachedState_ServerNonceConsumedBeforeSet) {
   QuicCryptoClientConfig::CachedState state;
   EXPECT_FALSE(state.has_server_nonce());
-#if GTEST_HAS_DEATH_TEST && !defined(NDEBUG)
-  EXPECT_DEBUG_DEATH(state.GetNextServerNonce(),
-                     "Attempting to consume a server nonce "
-                     "that was never designated.");
-#endif  // GTEST_HAS_DEATH_TEST && !defined(NDEBUG)
+  EXPECT_QUIC_DEBUG_DEATH(state.GetNextServerNonce(),
+                          "Attempting to consume a server nonce "
+                          "that was never designated.");
 }
 
 TEST_F(QuicCryptoClientConfigTest, CachedState_InitializeFrom) {
diff --git a/quic/core/quic_circular_deque_test.cc b/quic/core/quic_circular_deque_test.cc
index 8844d92..c165898 100644
--- a/quic/core/quic_circular_deque_test.cc
+++ b/quic/core/quic_circular_deque_test.cc
@@ -119,10 +119,10 @@
   EXPECT_TRUE(dq.empty());
   EXPECT_EQ(0u, dq.size());
 
-  EXPECT_DEBUG_DEATH(dq.front(), "");
-  EXPECT_DEBUG_DEATH(dq.back(), "");
-  EXPECT_DEBUG_DEATH(dq.at(0), "");
-  EXPECT_DEBUG_DEATH(dq[0], "");
+  EXPECT_QUIC_DEBUG_DEATH(dq.front(), "");
+  EXPECT_QUIC_DEBUG_DEATH(dq.back(), "");
+  EXPECT_QUIC_DEBUG_DEATH(dq.at(0), "");
+  EXPECT_QUIC_DEBUG_DEATH(dq[0], "");
 }
 
 TEST(QuicCircularDeque, Constructor) {
@@ -784,9 +784,7 @@
   dq5.assign(dq6.begin(), dq6.end());
   EXPECT_THAT(dq5, ElementsAre(4));
 
-#if GTEST_HAS_DEATH_TEST && !defined(NDEBUG)
   // Undefined behavior to swap between two containers with unequal allocators.
-  EXPECT_DEBUG_DEATH(swap(dq5, dq6), "Undefined swap behavior");
-#endif
+  EXPECT_QUIC_DEBUG_DEATH(swap(dq5, dq6), "Undefined swap behavior");
 }
 }  // namespace
diff --git a/quic/core/quic_stream_send_buffer_test.cc b/quic/core/quic_stream_send_buffer_test.cc
index 477566a..4a37c1e 100644
--- a/quic/core/quic_stream_send_buffer_test.cc
+++ b/quic/core/quic_stream_send_buffer_test.cc
@@ -137,10 +137,8 @@
   // Write new data.
   if (!GetQuicRestartFlag(quic_coalesce_stream_frames_2)) {
     EXPECT_EQ(1, QuicStreamSendBufferPeer::write_index(&send_buffer_));
-#if GTEST_HAS_DEATH_TEST && !defined(NDEBUG)
-    EXPECT_DEBUG_DEATH(send_buffer_.WriteStreamData(2048, 50, &writer),
-                       "Tried to write data out of sequence.");
-#endif
+    EXPECT_QUIC_DEBUG_DEATH(send_buffer_.WriteStreamData(2048, 50, &writer),
+                            "Tried to write data out of sequence.");
   } else {
     EXPECT_EQ(2, QuicStreamSendBufferPeer::write_index(&send_buffer_));
     ASSERT_TRUE(send_buffer_.WriteStreamData(2048, 50, &writer));
diff --git a/quic/platform/api/quic_test.h b/quic/platform/api/quic_test.h
index 2f32865..8b6e135 100644
--- a/quic/platform/api/quic_test.h
+++ b/quic/platform/api/quic_test.h
@@ -23,6 +23,9 @@
 
 inline std::string QuicGetTestMemoryCachePath() {
   return QuicGetTestMemoryCachePathImpl();
+
+#define EXPECT_QUIC_DEBUG_DEATH(condition, message) \
+  EXPECT_QUIC_DEBUG_DEATH_IMPL(condition, message)
 }
 
 #endif  // QUICHE_QUIC_PLATFORM_API_QUIC_TEST_H_
