From d1cfa7149e5997010bdc8106dc2df3ff76367075 Mon Sep 17 00:00:00 2001 From: "kjellander@webrtc.org" Date: Wed, 16 Oct 2013 16:51:52 +0000 Subject: [PATCH] TSan v2 suppressions and exclusions for libjingle tests. Add suppressions for libjingle tests so they pass under TSan v2. Disable the following tests for TSan v2 (only) since they're failing: * StunServerTest.TestGood * JsepPeerConnectionP2PTestClient.* See build logs at: http://build.chromium.org/p/client.webrtc.fyi/builders/Linux%20Tsan%20v2/ for more details. BUG=1205,2078,2079,2080,2517 TEST=Ran a successful run of each test locally on Linux using: GYP_DEFINES='tsan=1 linux_use_tcmalloc=0 release_extra_cflags="-gline-tables-only"' gclient runhooks ninja -C out/Release For each test, run standing in trunk/: TSAN_OPTIONS="suppressions=tools/valgrind-webrtc/tsan_v2/suppressions.txt print_suppressions=1 report_signal_unsafe=0 report_thread_leaks=0 history_size=7" out/Release/[libjingle_testname] R=wu@webrtc.org Review URL: https://webrtc-codereview.appspot.com/2411004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4977 4adac7df-926f-26a2-2b94-8c16560cd09d --- talk/app/webrtc/peerconnection_unittest.cc | 7 +++++ talk/p2p/base/stunserver_unittest.cc | 6 ++++ .../valgrind-webrtc/tsan_v2/suppressions.txt | 29 +++++++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/talk/app/webrtc/peerconnection_unittest.cc b/talk/app/webrtc/peerconnection_unittest.cc index d89ed0f927..74f420b0db 100644 --- a/talk/app/webrtc/peerconnection_unittest.cc +++ b/talk/app/webrtc/peerconnection_unittest.cc @@ -1001,6 +1001,10 @@ class P2PTestConductor : public testing::Test { }; typedef P2PTestConductor JsepPeerConnectionP2PTestClient; +// Disable for TSan v2, see +// https://code.google.com/p/webrtc/issues/detail?id=1205 for details. +#if !defined(THREAD_SANITIZER) + // This test sets up a Jsep call between two parties and test Dtmf. // TODO(holmer): Disabled due to sometimes crashing on buildbots. // See issue webrtc/2378. @@ -1406,3 +1410,6 @@ TEST_F(JsepPeerConnectionP2PTestClient, EnableVideoDecoderFactory(); LocalP2PTest(); } + +#endif // if !defined(THREAD_SANITIZER) + diff --git a/talk/p2p/base/stunserver_unittest.cc b/talk/p2p/base/stunserver_unittest.cc index 7f4db3b721..abb1957869 100644 --- a/talk/p2p/base/stunserver_unittest.cc +++ b/talk/p2p/base/stunserver_unittest.cc @@ -82,6 +82,10 @@ class StunServerTest : public testing::Test { talk_base::scoped_ptr 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) { StunMessage req; std::string transaction_id = "0123456789ab"; @@ -109,6 +113,8 @@ TEST_F(StunServerTest, TestGood) { delete msg; } +#endif // if !defined(THREAD_SANITIZER) + TEST_F(StunServerTest, TestBad) { const char* bad = "this is a completely nonsensical message whose only " "purpose is to make the parser go 'ack'. it doesn't " diff --git a/tools/valgrind-webrtc/tsan_v2/suppressions.txt b/tools/valgrind-webrtc/tsan_v2/suppressions.txt index c6ed649b2f..9b7918e8b9 100644 --- a/tools/valgrind-webrtc/tsan_v2/suppressions.txt +++ b/tools/valgrind-webrtc/tsan_v2/suppressions.txt @@ -1,3 +1,32 @@ # False positive in system wrappers. # See https://code.google.com/p/webrtc/issues/detail?id=300 for details. race:webrtc/system_wrappers/source/thread_posix.cc + +# libjingle_peerconnection_unittest +# See https://code.google.com/p/webrtc/issues/detail?id=1205 +race:talk/app/webrtc/test/fakeaudiocapturemodule.cc +race:webrtc/modules/audio_processing/aec/aec_core.c +race:webrtc/modules/audio_processing/aec/aec_rdft.c +race:webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc + +# libjingle_media_unittest +# See https://code.google.com/p/webrtc/issues/detail?id=2078 +race:talk/media/base/filemediaengine.cc +race:talk/media/devices/filevideocapturer.cc + +# libjingle_p2p_unittest +# See https://code.google.com/p/webrtc/issues/detail?id=2079 +race:talk/base/messagequeue.cc +race:talk/base/testclient.cc +race:talk/base/virtualsocketserver.cc +race:talk/p2p/base/stunserver_unittest.cc + +# libjingle_unittest +# See https://code.google.com/p/webrtc/issues/detail?id=2080 +race:talk/base/asyncudpsocket.cc +race:talk/base/logging.cc +race:talk/base/natserver.cc +race:talk/base/physicalsocketserver.cc +race:talk/base/sharedexclusivelock_unittest.cc +race:talk/base/signalthread_unittest.cc +race:talk/base/thread.cc