1 /*
2  *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3  *
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.
9  */
10 
11 // This file contains the WebRTC suppressions for LeakSanitizer.
12 // You can also pass additional suppressions via LSAN_OPTIONS:
13 // LSAN_OPTIONS=suppressions=/path/to/suppressions. Please refer to
14 // http://dev.chromium.org/developers/testing/leaksanitizer for more info.
15 
16 #if defined(LEAK_SANITIZER)
17 
18 // Please make sure the code below declares a single string variable
19 // kLSanDefaultSuppressions which contains LSan suppressions delimited by
20 // newlines. See http://dev.chromium.org/developers/testing/leaksanitizer
21 // for the instructions on writing suppressions.
22 char kLSanDefaultSuppressions[] =
23 
24 // ============ Leaks in third-party code shared with Chromium =============
25 // These entries are copied from build/sanitizers/lsan_suppressions.cc in
26 // Chromium. Please don't add new entries here unless they're present in there.
27 
28 // False positives in libfontconfig. http://crbug.com/39050
29 "leak:libfontconfig\n"
30 
31 // Leaks in Nvidia's libGL.
32 "leak:libGL.so\n"
33 
34 // XRandR has several one time leaks.
35 "leak:libxrandr\n"
36 
37 // xrandr leak. http://crbug.com/119677
38 "leak:XRRFindDisplay\n"
39 
40 // ========== Leaks in third-party code not shared with Chromium ===========
41 
42 // None known so far.
43 
44 // ================ Leaks in WebRTC code ================
45 // PLEASE DO NOT ADD SUPPRESSIONS FOR NEW LEAKS.
46 // Instead, commits that introduce memory leaks should be reverted. Suppressing
47 // the leak is acceptable in some cases when reverting is impossible, i.e. when
48 // enabling leak detection for the first time for a test target with
49 // pre-existing leaks.
50 
51 // rtc_unittest
52 // https://code.google.com/p/webrtc/issues/detail?id=3827 for details.
53 "leak:rtc::unstarted_task_test_DoNotDeleteTask2_Test::TestBody\n"
54 "leak:rtc::HttpServer::HandleConnection\n"
55 "leak:rtc::HttpServer::Connection::onHttpHeaderComplete\n"
56 "leak:rtc::HttpResponseData::set_success\n"
57 "leak:rtc::HttpData::changeHeader\n"
58 // https://code.google.com/p/webrtc/issues/detail?id=4149 for details.
59 "leak:StartDNSLookup\n"
60 // https://code.google.com/p/webrtc/issues/detail?id=2527
61 "leak:buzz::FakeXmppClient::SendStanza\n"
62 "leak:buzz::XmppTask::XmppTask\n"
63 "leak:HangoutPubSubClientTest::HangoutPubSubClientTest\n"
64 "leak:MucRoomConfigTaskTest::SetUp\n"
65 "leak:MucRoomDiscoveryTaskTest::SetUp\n"
66 "leak:MucRoomLookupTaskTest::SetUp\n"
67 "leak:MucRoomUniqueHangoutIdTaskTest::SetUp\n"
68 "leak:PingTaskTest::SetUp\n"
69 "leak:PingXmppClient::SendStanza\n"
70 "leak:PubSubClientTest::PubSubClientTest\n"
71 "leak:PubSubTasksTest::PubSubTasksTest\n"
72 
73 // libjingle_media_unittest
74 "leak:cricket::FakeNetworkInterface::SetOption\n"
75 "leak:CodecTest_TestCodecOperators_Test::TestBody\n"
76 "leak:VideoEngineTest*::ConstrainNewCodecBody\n"
77 "leak:VideoMediaChannelTest*::AddRemoveRecvStreams\n"
78 "leak:WebRtcVideoCapturerTest_TestCapture_Test::TestBody\n"
79 "leak:WebRtcVideoEngineTestFake_MultipleSendStreamsWithOneCapturer_Test::TestBody\n"
80 "leak:WebRtcVideoEngineTestFake_SetBandwidthInConference_Test::TestBody\n"
81 "leak:WebRtcVideoEngineTestFake_SetSendCodecsRejectBadFormat_Test::TestBody\n"
82 
83 // libjingle_peerconnection_unittest
84 // https://code.google.com/p/webrtc/issues/detail?id=2528
85 "leak:cricket::FakeVideoMediaChannel::~FakeVideoMediaChannel\n"
86 "leak:cricket::MediaSessionDescriptionFactory::CreateAnswer\n"
87 "leak:cricket::MediaSessionDescriptionFactory::CreateOffer\n"
88 "leak:DtmfSenderTest_InsertEmptyTonesToCancelPreviousTask_Test::TestBody\n"
89 "leak:sigslot::_signal_base2*::~_signal_base2\n"
90 "leak:testing::internal::CmpHelperEQ\n"
91 "leak:webrtc::AudioDeviceLinuxALSA::InitMicrophone\n"
92 "leak:webrtc::AudioDeviceLinuxALSA::InitSpeaker\n"
93 "leak:webrtc::CreateIceCandidate\n"
94 "leak:webrtc::FakeConstraints::AddOptional\n"
95 "leak:webrtc::WebRtcIdentityRequestObserver::OnSuccess\n"
96 "leak:webrtc::WebRtcSessionDescriptionFactory::InternalCreateAnswer\n"
97 "leak:webrtc::WebRtcSessionDescriptionFactory::InternalCreateOffer\n"
98 "leak:PeerConnectionInterfaceTest_SsrcInOfferAnswer_Test::TestBody\n"
99 "leak:PeerConnectionInterfaceTest_CloseAndTestMethods_Test::TestBody\n"
100 "leak:WebRtcSdpTest::TestDeserializeRtcpFb\n"
101 "leak:WebRtcSdpTest::TestSerialize\n"
102 "leak:WebRtcSdpTest_SerializeSessionDescriptionWithDataChannelAndBandwidth_Test::TestBody\n"
103 "leak:WebRtcSdpTest_SerializeSessionDescriptionWithBandwidth_Test::TestBody\n"
104 "leak:WebRtcSessionTest::SetLocalDescriptionExpectError\n"
105 "leak:WebRtcSessionTest_TestAVOfferWithAudioOnlyAnswer_Test::TestBody\n"
106 
107 // PLEASE READ ABOVE BEFORE ADDING NEW SUPPRESSIONS.
108 
109 // End of suppressions.
110 ;  // Please keep this semicolon.
111 
112 #endif  // LEAK_SANITIZER
113