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
This commit is contained in:
kjellander@webrtc.org 2013-10-16 16:51:52 +00:00
parent 25fce9adc5
commit d1cfa7149e
3 changed files with 42 additions and 0 deletions

View File

@ -1001,6 +1001,10 @@ class P2PTestConductor : public testing::Test {
};
typedef P2PTestConductor<JsepTestClient> 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)

View File

@ -82,6 +82,10 @@ class StunServerTest : public testing::Test {
talk_base::scoped_ptr<talk_base::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) {
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 "

View File

@ -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