2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
11 // This file contains the WebRTC suppressions for ThreadSanitizer.
13 // http://dev.chromium.org/developers/testing/threadsanitizer-tsan-v2
16 #if defined(THREAD_SANITIZER)
18 // Please make sure the code below declares a single string variable
19 // kTSanDefaultSuppressions contains TSan suppressions delimited by newlines.
20 // See http://dev.chromium.org/developers/testing/threadsanitizer-tsan-v2
21 // for the instructions on writing suppressions.
22 char kTSanDefaultSuppressions[] =
24 // WebRTC specific suppressions.
26 // Split up suppressions covered previously by thread.cc and messagequeue.cc.
27 "race:rtc::MessageQueue::Quit\n"
28 "race:FileVideoCapturerTest::VideoCapturerListener::OnFrameCaptured\n"
29 "race:vp8cx_remove_encoder_threads\n"
30 "race:third_party/libvpx/source/libvpx/vp9/common/vp9_scan.h\n"
32 // Usage of trace callback and trace level is racy in libjingle_media_unittests.
33 // https://code.google.com/p/webrtc/issues/detail?id=3372
34 "race:webrtc::TraceImpl::WriteToFile\n"
35 "race:webrtc::VideoEngine::SetTraceFilter\n"
36 "race:webrtc::VoiceEngine::SetTraceFilter\n"
37 "race:webrtc::Trace::set_level_filter\n"
38 "race:webrtc::GetStaticInstance<webrtc::TraceImpl>\n"
41 // https://code.google.com/p/webrtc/issues/detail?id=2521 for details.
42 "race:webrtc/modules/audio_processing/aec/aec_core.c\n"
43 "race:webrtc/modules/audio_processing/aec/aec_rdft.c\n"
46 // https://code.google.com/p/webrtc/issues/detail?id=3911 for details.
47 "race:rtc::FireAndForgetAsyncClosure<FunctorB>::Execute\n"
48 "race:rtc::MessageQueueManager::Clear\n"
49 "race:rtc::Thread::Clear\n"
51 // libjingle_p2p_unittest
52 // https://code.google.com/p/webrtc/issues/detail?id=2079
53 "race:webrtc/base/testclient.cc\n"
54 "race:webrtc/base/virtualsocketserver.cc\n"
55 "race:talk/p2p/base/stunserver_unittest.cc\n"
58 // https://code.google.com/p/webrtc/issues/detail?id=2080
59 "race:webrtc/base/logging.cc\n"
60 "race:webrtc/base/sharedexclusivelock_unittest.cc\n"
61 "race:webrtc/base/signalthread_unittest.cc\n"
63 // third_party/usrsctp
64 // TODO(jiayl): https://code.google.com/p/webrtc/issues/detail?id=3492
65 "race:user_sctp_timer_iterate\n"
67 // Potential deadlocks detected after roll in r6516.
68 // https://code.google.com/p/webrtc/issues/detail?id=3509
69 "deadlock:webrtc::ProcessThreadImpl::RegisterModule\n"
70 "deadlock:webrtc::RTCPReceiver::SetSsrcs\n"
71 "deadlock:webrtc::RTPSenderAudio::RegisterAudioPayload\n"
72 "deadlock:webrtc::test::UdpSocketManagerPosixImpl::RemoveSocket\n"
73 "deadlock:webrtc::vcm::VideoReceiver::RegisterPacketRequestCallback\n"
74 "deadlock:webrtc::ViECaptureImpl::ConnectCaptureDevice\n"
75 "deadlock:webrtc::ViEChannel::StartSend\n"
76 "deadlock:webrtc::ViECodecImpl::GetSendSideDelay\n"
77 "deadlock:webrtc::ViEEncoder::OnLocalSsrcChanged\n"
78 "deadlock:webrtc::ViESender::RegisterSendTransport\n"
80 // End of suppressions.
81 ; // Please keep this semicolon.
83 #endif // THREAD_SANITIZER