Fix race at destruction in StunServerTests and reenable them on tsan

Bug: webrtc:2517
Change-Id: I3d4c65f250fe5048def68cbae45b5637a9ce68a1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/275483
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38087}
diff --git a/p2p/base/stun_server_unittest.cc b/p2p/base/stun_server_unittest.cc
index 3206c56..5d3f31f 100644
--- a/p2p/base/stun_server_unittest.cc
+++ b/p2p/base/stun_server_unittest.cc
@@ -33,8 +33,7 @@
 
 class StunServerTest : public ::testing::Test {
  public:
-  StunServerTest() : ss_(new rtc::VirtualSocketServer()), network_(ss_.get()) {}
-  virtual void SetUp() {
+  StunServerTest() : ss_(new rtc::VirtualSocketServer()), network_(ss_.get()) {
     server_.reset(
         new StunServer(rtc::AsyncUDPSocket::Create(ss_.get(), server_addr)));
     client_.reset(new rtc::TestClient(
@@ -42,6 +41,8 @@
 
     network_.Start();
   }
+  ~StunServerTest() override { network_.Stop(); }
+
   void Send(const StunMessage& msg) {
     rtc::ByteBufferWriter buf;
     msg.Write(&buf);
@@ -71,10 +72,6 @@
   std::unique_ptr<rtc::TestClient> client_;
 };
 
-// Disable for TSan v2, see
-// https://code.google.com/p/webrtc/issues/detail?id=2517 for details.
-#if !defined(THREAD_SANITIZER)
-
 TEST_F(StunServerTest, TestGood) {
   // kStunLegacyTransactionIdLength = 16 for legacy RFC 3489 request
   std::string transaction_id = "0123456789abcdef";
@@ -135,8 +132,6 @@
   delete msg;
 }
 
-#endif  // if !defined(THREAD_SANITIZER)
-
 TEST_F(StunServerTest, TestBad) {
   const char* bad =
       "this is a completely nonsensical message whose only "