Run simulcast adapter test ConcurrentEncodeAndOnEncodedImage on TSAN. The test case TestSimulcastEncoderAdapterFake.ConcurrentEncodeAndOnEncodedImage was added to repro a tricky race condition. But the test doesn't make much sense unless TSAN thread sanitizer is enabled - otherwise it mostly wastes resources. This CL disables it unless TSAN is on. Bug: webrtc:467444018 Change-Id: I7350483892dfa2a9b3003d09a3013368d83ced2f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/458681 Commit-Queue: Rasmus Brandt <brandtr@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Auto-Submit: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/main@{#47225}
diff --git a/media/engine/simulcast_encoder_adapter_unittest.cc b/media/engine/simulcast_encoder_adapter_unittest.cc index df2894c..5c10aee 100644 --- a/media/engine/simulcast_encoder_adapter_unittest.cc +++ b/media/engine/simulcast_encoder_adapter_unittest.cc
@@ -2840,7 +2840,18 @@ adapter_->Encode(input_frame, &frame_types)); } -TEST_F(TestSimulcastEncoderAdapterFake, ConcurrentEncodeAndOnEncodedImage) { +// Only run this test under TSAN, otherwise it doesn't make much sense and +// mostly wastes CPU resources. +#if defined(THREAD_SANITIZER) +#define MAYBE_ConcurrentEncodeAndOnEncodedImage \ + ConcurrentEncodeAndOnEncodedImage +#else +#define MAYBE_ConcurrentEncodeAndOnEncodedImage \ + DISABLED_ConcurrentEncodeAndOnEncodedImage +#endif + +TEST_F(TestSimulcastEncoderAdapterFake, + MAYBE_ConcurrentEncodeAndOnEncodedImage) { // The test setup here is quite complex, but that is needed in order to make // sure tools like TSAN is able to reliable detect issue in the wrapper // encoder instances used for each stream. The code below makes sure that