Change quic::test::ServerThread to take a std::unique_ptr<QuicServer> instead of a raw pointer.

PiperOrigin-RevId: 441810018
diff --git a/quiche/quic/core/http/end_to_end_test.cc b/quiche/quic/core/http/end_to_end_test.cc
index e2891a9..ded3d87 100644
--- a/quiche/quic/core/http/end_to_end_test.cc
+++ b/quiche/quic/core/http/end_to_end_test.cc
@@ -444,12 +444,12 @@
   }
 
   void StartServer() {
-    auto* test_server = new QuicTestServer(
+    auto test_server = std::make_unique<QuicTestServer>(
         crypto_test_utils::ProofSourceForTesting(), server_config_,
         server_supported_versions_, &memory_cache_backend_,
         expected_server_connection_id_length_);
     server_thread_ =
-        std::make_unique<ServerThread>(test_server, server_address_);
+        std::make_unique<ServerThread>(std::move(test_server), server_address_);
     if (chlo_multiplier_ != 0) {
       server_thread_->server()->SetChloMultiplier(chlo_multiplier_);
     }
diff --git a/quiche/quic/qbone/qbone_client_test.cc b/quiche/quic/qbone/qbone_client_test.cc
index f796c46..dee4d96 100644
--- a/quiche/quic/qbone/qbone_client_test.cc
+++ b/quiche/quic/qbone/qbone_client_test.cc
@@ -206,9 +206,11 @@
                          ::testing::PrintToStringParamName());
 
 TEST_P(QboneClientTest, SendDataFromClient) {
-  auto server = new QboneTestServer(crypto_test_utils::ProofSourceForTesting());
+  auto server = std::make_unique<QboneTestServer>(
+      crypto_test_utils::ProofSourceForTesting());
+  QboneTestServer* server_ptr = server.get();
   QuicSocketAddress server_address(TestLoopback(), 0);
-  ServerThread server_thread(server, server_address);
+  ServerThread server_thread(std::move(server), server_address);
   server_thread.Initialize();
   server_address =
       QuicSocketAddress(server_address.host(), server_thread.GetPort());
@@ -229,19 +231,19 @@
 
   // Wait until the server has received at least two packets, timeout after 5s.
   ASSERT_TRUE(
-      server_thread.WaitUntil([&] { return server->data().size() >= 2; },
+      server_thread.WaitUntil([&] { return server_ptr->data().size() >= 2; },
                               QuicTime::Delta::FromSeconds(5)));
 
   std::string long_data(
       QboneConstants::kMaxQbonePacketBytes - sizeof(ip6_hdr) - 1, 'A');
 
   // Pretend the server gets data.
-  server_thread.Schedule([&server, &long_data]() {
-    EXPECT_THAT(server->data()[0], testing::Eq(TestPacketOut("hello")));
-    EXPECT_THAT(server->data()[1], testing::Eq(TestPacketOut("world")));
+  server_thread.Schedule([server_ptr, &long_data]() {
+    EXPECT_THAT(server_ptr->data()[0], testing::Eq(TestPacketOut("hello")));
+    EXPECT_THAT(server_ptr->data()[1], testing::Eq(TestPacketOut("world")));
     auto server_session = static_cast<QboneServerSession*>(
         QuicDispatcherPeer::GetFirstSessionIfAny(
-            QuicServerPeer::GetDispatcher(server)));
+            QuicServerPeer::GetDispatcher(server_ptr)));
     server_session->ProcessPacketFromNetwork(
         TestPacketIn("Somethingsomething"));
     server_session->ProcessPacketFromNetwork(TestPacketIn(long_data));
diff --git a/quiche/quic/test_tools/server_thread.cc b/quiche/quic/test_tools/server_thread.cc
index 12d2fc2..1a4ae06 100644
--- a/quiche/quic/test_tools/server_thread.cc
+++ b/quiche/quic/test_tools/server_thread.cc
@@ -13,10 +13,11 @@
 namespace quic {
 namespace test {
 
-ServerThread::ServerThread(QuicServer* server, const QuicSocketAddress& address)
+ServerThread::ServerThread(std::unique_ptr<QuicServer> server,
+                           const QuicSocketAddress& address)
     : QuicThread("server_thread"),
-      server_(server),
-      clock_(server->epoll_server()),
+      server_(std::move(server)),
+      clock_(server_->epoll_server()),
       address_(address),
       port_(0),
       initialized_(false) {}
diff --git a/quiche/quic/test_tools/server_thread.h b/quiche/quic/test_tools/server_thread.h
index 7f5d45a..11c8fe1 100644
--- a/quiche/quic/test_tools/server_thread.h
+++ b/quiche/quic/test_tools/server_thread.h
@@ -21,7 +21,8 @@
 // Simple wrapper class to run QuicServer in a dedicated thread.
 class ServerThread : public QuicThread {
  public:
-  ServerThread(QuicServer* server, const QuicSocketAddress& address);
+  ServerThread(std::unique_ptr<QuicServer> server,
+               const QuicSocketAddress& address);
   ServerThread(const ServerThread&) = delete;
   ServerThread& operator=(const ServerThread&) = delete;