From db45ca80d13f489f390707865accd47b07f70e4c Mon Sep 17 00:00:00 2001 From: Steve Anton Date: Mon, 11 Sep 2017 18:27:34 -0700 Subject: [PATCH] Change PeerConnection test helpers to take unique_ptr This changes DoSet(Local|Remote)Description helper function in the PeerConnection unit tests to take a unique_ptr to the new session rather than a bare pointer (of which it took ownership). Bug: None Change-Id: I75ef0992f09676455423980972634e3e6a700b85 Reviewed-on: https://chromium-review.googlesource.com/662365 Reviewed-by: Taylor Brandstetter Commit-Queue: Steve Anton Cr-Commit-Position: refs/heads/master@{#19807} --- webrtc/pc/peerconnectioninterface_unittest.cc | 283 +++++++++--------- 1 file changed, 148 insertions(+), 135 deletions(-) diff --git a/webrtc/pc/peerconnectioninterface_unittest.cc b/webrtc/pc/peerconnectioninterface_unittest.cc index c23a79d597..565704e935 100644 --- a/webrtc/pc/peerconnectioninterface_unittest.cc +++ b/webrtc/pc/peerconnectioninterface_unittest.cc @@ -332,7 +332,6 @@ using webrtc::DataBuffer; using webrtc::DataChannelInterface; using webrtc::FakeConstraints; using webrtc::IceCandidateInterface; -using webrtc::JsepSessionDescription; using webrtc::MediaConstraintsInterface; using webrtc::MediaStream; using webrtc::MediaStreamInterface; @@ -918,14 +917,16 @@ class PeerConnectionInterfaceTest : public testing::Test { return DoCreateOfferAnswer(desc, false, constraints); } - bool DoSetSessionDescription(SessionDescriptionInterface* desc, bool local) { + bool DoSetSessionDescription( + std::unique_ptr desc, + bool local) { rtc::scoped_refptr observer(new rtc::RefCountedObject< MockSetSessionDescriptionObserver>()); if (local) { - pc_->SetLocalDescription(observer, desc); + pc_->SetLocalDescription(observer, desc.release()); } else { - pc_->SetRemoteDescription(observer, desc); + pc_->SetRemoteDescription(observer, desc.release()); } if (pc_->signaling_state() != PeerConnectionInterface::kClosed) { EXPECT_EQ_WAIT(true, observer->called(), kTimeout); @@ -933,12 +934,14 @@ class PeerConnectionInterfaceTest : public testing::Test { return observer->result(); } - bool DoSetLocalDescription(SessionDescriptionInterface* desc) { - return DoSetSessionDescription(desc, true); + bool DoSetLocalDescription( + std::unique_ptr desc) { + return DoSetSessionDescription(std::move(desc), true); } - bool DoSetRemoteDescription(SessionDescriptionInterface* desc) { - return DoSetSessionDescription(desc, false); + bool DoSetRemoteDescription( + std::unique_ptr desc) { + return DoSetSessionDescription(std::move(desc), false); } // Calls PeerConnection::GetStats and check the return value. @@ -980,18 +983,18 @@ class PeerConnectionInterfaceTest : public testing::Test { ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); std::string sdp; EXPECT_TRUE(offer->ToString(&sdp)); - SessionDescriptionInterface* remote_offer = + std::unique_ptr remote_offer( webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, - sdp, NULL); - EXPECT_TRUE(DoSetRemoteDescription(remote_offer)); + sdp, nullptr)); + EXPECT_TRUE(DoSetRemoteDescription(std::move(remote_offer))); EXPECT_EQ(PeerConnectionInterface::kHaveRemoteOffer, observer_.state_); } void CreateAndSetRemoteOffer(const std::string& sdp) { - SessionDescriptionInterface* remote_offer = + std::unique_ptr remote_offer( webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, - sdp, nullptr); - EXPECT_TRUE(DoSetRemoteDescription(remote_offer)); + sdp, nullptr)); + EXPECT_TRUE(DoSetRemoteDescription(std::move(remote_offer))); EXPECT_EQ(PeerConnectionInterface::kHaveRemoteOffer, observer_.state_); } @@ -1008,10 +1011,10 @@ class PeerConnectionInterfaceTest : public testing::Test { // https://code.google.com/p/webrtc/issues/detail?id=1356 std::string sdp; EXPECT_TRUE(answer->ToString(&sdp)); - SessionDescriptionInterface* new_answer = + std::unique_ptr new_answer( webrtc::CreateSessionDescription(SessionDescriptionInterface::kAnswer, - sdp, NULL); - EXPECT_TRUE(DoSetLocalDescription(new_answer)); + sdp, nullptr)); + EXPECT_TRUE(DoSetLocalDescription(std::move(new_answer))); EXPECT_EQ(PeerConnectionInterface::kStable, observer_.state_); } @@ -1021,10 +1024,10 @@ class PeerConnectionInterfaceTest : public testing::Test { std::string sdp; EXPECT_TRUE(answer->ToString(&sdp)); - SessionDescriptionInterface* pr_answer = + std::unique_ptr pr_answer( webrtc::CreateSessionDescription(SessionDescriptionInterface::kPrAnswer, - sdp, NULL); - EXPECT_TRUE(DoSetLocalDescription(pr_answer)); + sdp, nullptr)); + EXPECT_TRUE(DoSetLocalDescription(std::move(pr_answer))); EXPECT_EQ(PeerConnectionInterface::kHaveLocalPrAnswer, observer_.state_); } @@ -1047,37 +1050,37 @@ class PeerConnectionInterfaceTest : public testing::Test { // https://code.google.com/p/webrtc/issues/detail?id=1356 std::string sdp; EXPECT_TRUE(offer->ToString(&sdp)); - SessionDescriptionInterface* new_offer = - webrtc::CreateSessionDescription( - SessionDescriptionInterface::kOffer, - sdp, NULL); + std::unique_ptr new_offer( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, + sdp, nullptr)); - EXPECT_TRUE(DoSetLocalDescription(new_offer)); + EXPECT_TRUE(DoSetLocalDescription(std::move(new_offer))); EXPECT_EQ(PeerConnectionInterface::kHaveLocalOffer, observer_.state_); // Wait for the ice_complete message, so that SDP will have candidates. EXPECT_TRUE_WAIT(observer_.ice_complete_, kTimeout); } void CreateAnswerAsRemoteDescription(const std::string& sdp) { - webrtc::JsepSessionDescription* answer = new webrtc::JsepSessionDescription( - SessionDescriptionInterface::kAnswer); - EXPECT_TRUE(answer->Initialize(sdp, NULL)); - EXPECT_TRUE(DoSetRemoteDescription(answer)); + std::unique_ptr answer( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kAnswer, + sdp, nullptr)); + ASSERT_TRUE(answer); + EXPECT_TRUE(DoSetRemoteDescription(std::move(answer))); EXPECT_EQ(PeerConnectionInterface::kStable, observer_.state_); } void CreatePrAnswerAndAnswerAsRemoteDescription(const std::string& sdp) { - webrtc::JsepSessionDescription* pr_answer = - new webrtc::JsepSessionDescription( - SessionDescriptionInterface::kPrAnswer); - EXPECT_TRUE(pr_answer->Initialize(sdp, NULL)); - EXPECT_TRUE(DoSetRemoteDescription(pr_answer)); + std::unique_ptr pr_answer( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kPrAnswer, + sdp, nullptr)); + ASSERT_TRUE(pr_answer); + EXPECT_TRUE(DoSetRemoteDescription(std::move(pr_answer))); EXPECT_EQ(PeerConnectionInterface::kHaveRemotePrAnswer, observer_.state_); - webrtc::JsepSessionDescription* answer = - new webrtc::JsepSessionDescription( - SessionDescriptionInterface::kAnswer); - EXPECT_TRUE(answer->Initialize(sdp, NULL)); - EXPECT_TRUE(DoSetRemoteDescription(answer)); + std::unique_ptr answer( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kAnswer, + sdp, nullptr)); + ASSERT_TRUE(answer); + EXPECT_TRUE(DoSetRemoteDescription(std::move(answer))); EXPECT_EQ(PeerConnectionInterface::kStable, observer_.state_); } @@ -1172,9 +1175,7 @@ class PeerConnectionInterfaceTest : public testing::Test { std::unique_ptr CreateAnswerWithOneAudioStream() { - std::unique_ptr offer = - CreateOfferWithOneAudioStream(); - EXPECT_TRUE(DoSetRemoteDescription(offer.release())); + EXPECT_TRUE(DoSetRemoteDescription(CreateOfferWithOneAudioStream())); std::unique_ptr answer; EXPECT_TRUE(DoCreateAnswer(&answer, nullptr)); return answer; @@ -1207,10 +1208,10 @@ class PeerConnectionInterfaceTest : public testing::Test { ASSERT_TRUE(desc != nullptr); std::string sdp; EXPECT_TRUE((*desc)->ToString(&sdp)); - SessionDescriptionInterface* remote_offer = + std::unique_ptr remote_offer( webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, - sdp, NULL); - EXPECT_TRUE(DoSetRemoteDescription(remote_offer)); + sdp, nullptr)); + EXPECT_TRUE(DoSetRemoteDescription(std::move(remote_offer))); EXPECT_EQ(PeerConnectionInterface::kHaveRemoteOffer, observer_.state_); } @@ -1221,10 +1222,11 @@ class PeerConnectionInterfaceTest : public testing::Test { ASSERT_TRUE(desc != nullptr); std::string sdp; EXPECT_TRUE((*desc)->ToString(&sdp)); - SessionDescriptionInterface* new_offer = webrtc::CreateSessionDescription( - SessionDescriptionInterface::kOffer, sdp, NULL); + std::unique_ptr new_offer( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, + sdp, nullptr)); - EXPECT_TRUE(DoSetLocalDescription(new_offer)); + EXPECT_TRUE(DoSetLocalDescription(std::move(new_offer))); EXPECT_EQ(PeerConnectionInterface::kHaveLocalOffer, observer_.state_); } @@ -1574,7 +1576,7 @@ TEST_F(PeerConnectionInterfaceTest, AddTrackRemoveTrack) { EXPECT_TRUE( ContainsTrack(video_desc->streams(), kStreamLabel1, "video_track")); - EXPECT_TRUE(DoSetLocalDescription(offer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(offer))); // Now try removing the tracks. EXPECT_TRUE(pc_->RemoveTrack(audio_sender)); @@ -1595,7 +1597,7 @@ TEST_F(PeerConnectionInterfaceTest, AddTrackRemoveTrack) { EXPECT_FALSE( ContainsTrack(video_desc->streams(), kStreamLabel1, "video_track")); - EXPECT_TRUE(DoSetLocalDescription(offer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(offer))); // Calling RemoveTrack on a sender no longer attached to a PeerConnection // should return false. @@ -1698,12 +1700,12 @@ TEST_F(PeerConnectionInterfaceTest, IceCandidates) { std::unique_ptr offer; AddVideoStream(kStreamLabel1); EXPECT_TRUE(DoCreateOffer(&offer, nullptr)); - EXPECT_TRUE(DoSetRemoteDescription(offer.release())); + EXPECT_TRUE(DoSetRemoteDescription(std::move(offer))); // SetLocalDescription takes ownership of answer. std::unique_ptr answer; EXPECT_TRUE(DoCreateAnswer(&answer, nullptr)); - EXPECT_TRUE(DoSetLocalDescription(answer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(answer))); EXPECT_TRUE_WAIT(observer_.last_candidate_.get() != NULL, kTimeout); EXPECT_TRUE_WAIT(observer_.ice_complete_, kTimeout); @@ -1751,7 +1753,7 @@ TEST_F(PeerConnectionInterfaceTest, SsrcInOfferAnswer) { EXPECT_NE(audio_ssrc, video_ssrc); // Test CreateAnswer - EXPECT_TRUE(DoSetRemoteDescription(offer.release())); + EXPECT_TRUE(DoSetRemoteDescription(std::move(offer))); std::unique_ptr answer; ASSERT_TRUE(DoCreateAnswer(&answer, nullptr)); audio_ssrc = 0; @@ -2203,14 +2205,15 @@ TEST_F(PeerConnectionInterfaceTest, TestRejectDataChannelInAnswer) { // Create an answer where the m-line for data channels are rejected. std::string sdp; EXPECT_TRUE(pc_->local_description()->ToString(&sdp)); - webrtc::JsepSessionDescription* answer = new webrtc::JsepSessionDescription( - SessionDescriptionInterface::kAnswer); - EXPECT_TRUE(answer->Initialize(sdp, NULL)); + std::unique_ptr answer( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kAnswer, + sdp, nullptr)); + ASSERT_TRUE(answer); cricket::ContentInfo* data_info = answer->description()->GetContentByName("data"); data_info->rejected = true; - DoSetRemoteDescription(answer); + DoSetRemoteDescription(std::move(answer)); EXPECT_EQ(DataChannelInterface::kClosed, offer_channel->state()); } @@ -2223,10 +2226,10 @@ TEST_F(PeerConnectionInterfaceTest, ReceiveFireFoxOffer) { true); CreatePeerConnection(&constraints); AddAudioVideoStream(kStreamLabel1, "audio_label", "video_label"); - SessionDescriptionInterface* desc = + std::unique_ptr desc( webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, - webrtc::kFireFoxSdpOffer, nullptr); - EXPECT_TRUE(DoSetSessionDescription(desc, false)); + webrtc::kFireFoxSdpOffer, nullptr)); + EXPECT_TRUE(DoSetSessionDescription(std::move(desc), false)); CreateAnswerAsLocalDescription(); ASSERT_TRUE(pc_->local_description() != NULL); ASSERT_TRUE(pc_->remote_description() != NULL); @@ -2262,9 +2265,10 @@ TEST_F(PeerConnectionInterfaceTest, ReceiveDtlsSdesFallbackOffer) { ASSERT_NE(nullptr, fake_certificate_generator_); EXPECT_EQ_WAIT(1, fake_certificate_generator_->generated_certificates(), kTimeout); - SessionDescriptionInterface* desc = webrtc::CreateSessionDescription( - SessionDescriptionInterface::kOffer, kDtlsSdesFallbackSdp, nullptr); - EXPECT_TRUE(DoSetSessionDescription(desc, false)); + std::unique_ptr desc( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, + kDtlsSdesFallbackSdp, nullptr)); + EXPECT_TRUE(DoSetSessionDescription(std::move(desc), false)); CreateAnswerAsLocalDescription(); } @@ -2276,16 +2280,16 @@ TEST_F(PeerConnectionInterfaceTest, ReceiveUpdatedAudioOfferWithBadCodecs) { AddVoiceStream("audio_label"); CreateOfferAsLocalDescription(); - SessionDescriptionInterface* answer = + std::unique_ptr answer( webrtc::CreateSessionDescription(SessionDescriptionInterface::kAnswer, - webrtc::kAudioSdp, nullptr); - EXPECT_TRUE(DoSetSessionDescription(answer, false)); + webrtc::kAudioSdp, nullptr)); + EXPECT_TRUE(DoSetSessionDescription(std::move(answer), false)); - SessionDescriptionInterface* updated_offer = + std::unique_ptr updated_offer( webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, webrtc::kAudioSdpWithUnsupportedCodecs, - nullptr); - EXPECT_TRUE(DoSetSessionDescription(updated_offer, false)); + nullptr)); + EXPECT_TRUE(DoSetSessionDescription(std::move(updated_offer), false)); CreateAnswerAsLocalDescription(); } @@ -2630,16 +2634,16 @@ TEST_F(PeerConnectionInterfaceTest, CloseAndTestMethods) { std::string sdp; ASSERT_TRUE(pc_->remote_description()->ToString(&sdp)); - SessionDescriptionInterface* remote_offer = - webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, - sdp, NULL); - EXPECT_FALSE(DoSetRemoteDescription(remote_offer)); + std::unique_ptr remote_offer( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, sdp, + nullptr)); + EXPECT_FALSE(DoSetRemoteDescription(std::move(remote_offer))); ASSERT_TRUE(pc_->local_description()->ToString(&sdp)); - SessionDescriptionInterface* local_offer = - webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, - sdp, NULL); - EXPECT_FALSE(DoSetLocalDescription(local_offer)); + std::unique_ptr local_offer( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, sdp, + nullptr)); + EXPECT_FALSE(DoSetLocalDescription(std::move(local_offer))); } // Test that GetStats can still be called after PeerConnection::Close. @@ -2688,14 +2692,14 @@ TEST_F(PeerConnectionInterfaceTest, CreatePeerConnection(&constraints); std::unique_ptr desc_ms1 = CreateSessionDescriptionAndReference(1, 1); - EXPECT_TRUE(DoSetRemoteDescription(desc_ms1.release())); + EXPECT_TRUE(DoSetRemoteDescription(std::move(desc_ms1))); EXPECT_TRUE(CompareStreamCollections(observer_.remote_streams(), reference_collection_)); // Add extra audio and video tracks to the same MediaStream. std::unique_ptr desc_ms1_two_tracks = CreateSessionDescriptionAndReference(2, 2); - EXPECT_TRUE(DoSetRemoteDescription(desc_ms1_two_tracks.release())); + EXPECT_TRUE(DoSetRemoteDescription(std::move(desc_ms1_two_tracks))); EXPECT_TRUE(CompareStreamCollections(observer_.remote_streams(), reference_collection_)); rtc::scoped_refptr audio_track2 = @@ -2713,7 +2717,7 @@ TEST_F(PeerConnectionInterfaceTest, EXPECT_CALL(audio_track_observer, OnChanged()).Times(Exactly(1)); EXPECT_CALL(video_track_observer, OnChanged()).Times(Exactly(1)); - EXPECT_TRUE(DoSetRemoteDescription(desc_ms2.release())); + EXPECT_TRUE(DoSetRemoteDescription(std::move(desc_ms2))); EXPECT_TRUE(CompareStreamCollections(observer_.remote_streams(), reference_collection_)); // Track state may be updated asynchronously. @@ -2750,7 +2754,7 @@ TEST_F(PeerConnectionInterfaceTest, RejectMediaContent) { cricket::ContentInfo* video_info = local_answer->description()->GetContentByName("video"); video_info->rejected = true; - EXPECT_TRUE(DoSetLocalDescription(local_answer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(local_answer))); EXPECT_EQ(webrtc::MediaStreamTrackInterface::kEnded, remote_video->state()); EXPECT_EQ(webrtc::MediaStreamTrackInterface::kLive, remote_audio->state()); @@ -2764,7 +2768,7 @@ TEST_F(PeerConnectionInterfaceTest, RejectMediaContent) { local_offer->description()->GetContentByName("audio"); ASSERT_TRUE(audio_info != nullptr); audio_info->rejected = true; - EXPECT_TRUE(DoSetLocalDescription(local_offer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(local_offer))); // Track state may be updated asynchronously. EXPECT_EQ_WAIT(webrtc::MediaStreamTrackInterface::kEnded, remote_audio->state(), kTimeout); @@ -2793,7 +2797,7 @@ TEST_F(PeerConnectionInterfaceTest, RemoveTrackThenRejectMediaContent) { cricket::ContentInfo* audio_info = local_answer->description()->GetContentByName("audio"); audio_info->rejected = true; - EXPECT_TRUE(DoSetLocalDescription(local_answer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(local_answer))); // No crash is a pass. } @@ -2963,7 +2967,7 @@ TEST_F(PeerConnectionInterfaceTest, LocalDescriptionChanged) { pc_->AddStream(stream_collection->at(0)); std::unique_ptr offer; ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); - EXPECT_TRUE(DoSetLocalDescription(offer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(offer))); auto senders = pc_->GetSenders(); EXPECT_EQ(4u, senders.size()); @@ -2977,7 +2981,7 @@ TEST_F(PeerConnectionInterfaceTest, LocalDescriptionChanged) { stream_collection = CreateStreamCollection(1, 1); pc_->AddStream(stream_collection->at(0)); ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); - EXPECT_TRUE(DoSetLocalDescription(offer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(offer))); senders = pc_->GetSenders(); EXPECT_EQ(2u, senders.size()); @@ -3004,7 +3008,7 @@ TEST_F(PeerConnectionInterfaceTest, ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); pc_->RemoveStream(stream_collection->at(0)); - EXPECT_TRUE(DoSetLocalDescription(offer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(offer))); auto senders = pc_->GetSenders(); EXPECT_EQ(0u, senders.size()); @@ -3032,11 +3036,11 @@ TEST_F(PeerConnectionInterfaceTest, std::unique_ptr offer; ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); // Grab a copy of the offer before it gets passed into the PC. - std::unique_ptr modified_offer( - new JsepSessionDescription(JsepSessionDescription::kOffer)); + std::unique_ptr modified_offer( + new webrtc::JsepSessionDescription(SessionDescriptionInterface::kOffer)); modified_offer->Initialize(offer->description()->Copy(), offer->session_id(), offer->session_version()); - EXPECT_TRUE(DoSetLocalDescription(offer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(offer))); auto senders = pc_->GetSenders(); EXPECT_EQ(2u, senders.size()); @@ -3062,7 +3066,7 @@ TEST_F(PeerConnectionInterfaceTest, } } - EXPECT_TRUE(DoSetLocalDescription(modified_offer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(modified_offer))); senders = pc_->GetSenders(); EXPECT_EQ(2u, senders.size()); EXPECT_TRUE(ContainsSender(senders, kAudioTracks[0])); @@ -3085,7 +3089,7 @@ TEST_F(PeerConnectionInterfaceTest, pc_->AddStream(stream_collection->at(0)); std::unique_ptr offer; ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); - EXPECT_TRUE(DoSetLocalDescription(offer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(offer))); auto senders = pc_->GetSenders(); EXPECT_EQ(2u, senders.size()); @@ -3100,7 +3104,7 @@ TEST_F(PeerConnectionInterfaceTest, pc_->AddStream(stream_1); ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); - EXPECT_TRUE(DoSetLocalDescription(offer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(offer))); auto new_senders = pc_->GetSenders(); // Should be the same senders as before, but with updated stream id. @@ -3214,12 +3218,13 @@ TEST_F(PeerConnectionInterfaceTest, SetConfigurationCausingPartialIceRestart) { EXPECT_TRUE(pc_->SetConfiguration(config)); // Do ICE restart for the first m= section, initiated by remote peer. - webrtc::JsepSessionDescription* remote_offer = - new webrtc::JsepSessionDescription(SessionDescriptionInterface::kOffer); - EXPECT_TRUE(remote_offer->Initialize(kSdpStringWithStream1, nullptr)); + std::unique_ptr remote_offer( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, + kSdpStringWithStream1, nullptr)); + ASSERT_TRUE(remote_offer); remote_offer->description()->transport_infos()[0].description.ice_ufrag = "modified"; - EXPECT_TRUE(DoSetRemoteDescription(remote_offer)); + EXPECT_TRUE(DoSetRemoteDescription(std::move(remote_offer))); CreateAnswerAsLocalDescription(); // Grab the ufrags. @@ -3246,65 +3251,73 @@ TEST_F(PeerConnectionInterfaceTest, CurrentAndPendingDescriptions) { // Create initial local offer and get SDP (which will also be used as // answer/pranswer); - std::unique_ptr offer; - ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); + std::unique_ptr local_offer; + ASSERT_TRUE(DoCreateOffer(&local_offer, nullptr)); std::string sdp; - EXPECT_TRUE(offer->ToString(&sdp)); + EXPECT_TRUE(local_offer->ToString(&sdp)); // Set local offer. - SessionDescriptionInterface* local_offer = offer.release(); - EXPECT_TRUE(DoSetLocalDescription(local_offer)); - EXPECT_EQ(local_offer, pc_->pending_local_description()); + SessionDescriptionInterface* local_offer_ptr = local_offer.get(); + EXPECT_TRUE(DoSetLocalDescription(std::move(local_offer))); + EXPECT_EQ(local_offer_ptr, pc_->pending_local_description()); EXPECT_EQ(nullptr, pc_->pending_remote_description()); EXPECT_EQ(nullptr, pc_->current_local_description()); EXPECT_EQ(nullptr, pc_->current_remote_description()); // Set remote pranswer. - SessionDescriptionInterface* remote_pranswer = + std::unique_ptr remote_pranswer( webrtc::CreateSessionDescription(SessionDescriptionInterface::kPrAnswer, - sdp, nullptr); - EXPECT_TRUE(DoSetRemoteDescription(remote_pranswer)); - EXPECT_EQ(local_offer, pc_->pending_local_description()); - EXPECT_EQ(remote_pranswer, pc_->pending_remote_description()); + sdp, nullptr)); + SessionDescriptionInterface* remote_pranswer_ptr = remote_pranswer.get(); + EXPECT_TRUE(DoSetRemoteDescription(std::move(remote_pranswer))); + EXPECT_EQ(local_offer_ptr, pc_->pending_local_description()); + EXPECT_EQ(remote_pranswer_ptr, pc_->pending_remote_description()); EXPECT_EQ(nullptr, pc_->current_local_description()); EXPECT_EQ(nullptr, pc_->current_remote_description()); // Set remote answer. - SessionDescriptionInterface* remote_answer = webrtc::CreateSessionDescription( - SessionDescriptionInterface::kAnswer, sdp, nullptr); - EXPECT_TRUE(DoSetRemoteDescription(remote_answer)); + std::unique_ptr remote_answer( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kAnswer, + sdp, nullptr)); + SessionDescriptionInterface* remote_answer_ptr = remote_answer.get(); + EXPECT_TRUE(DoSetRemoteDescription(std::move(remote_answer))); EXPECT_EQ(nullptr, pc_->pending_local_description()); EXPECT_EQ(nullptr, pc_->pending_remote_description()); - EXPECT_EQ(local_offer, pc_->current_local_description()); - EXPECT_EQ(remote_answer, pc_->current_remote_description()); + EXPECT_EQ(local_offer_ptr, pc_->current_local_description()); + EXPECT_EQ(remote_answer_ptr, pc_->current_remote_description()); // Set remote offer. - SessionDescriptionInterface* remote_offer = webrtc::CreateSessionDescription( - SessionDescriptionInterface::kOffer, sdp, nullptr); - EXPECT_TRUE(DoSetRemoteDescription(remote_offer)); - EXPECT_EQ(remote_offer, pc_->pending_remote_description()); + std::unique_ptr remote_offer( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kOffer, sdp, + nullptr)); + SessionDescriptionInterface* remote_offer_ptr = remote_offer.get(); + EXPECT_TRUE(DoSetRemoteDescription(std::move(remote_offer))); + EXPECT_EQ(remote_offer_ptr, pc_->pending_remote_description()); EXPECT_EQ(nullptr, pc_->pending_local_description()); - EXPECT_EQ(local_offer, pc_->current_local_description()); - EXPECT_EQ(remote_answer, pc_->current_remote_description()); + EXPECT_EQ(local_offer_ptr, pc_->current_local_description()); + EXPECT_EQ(remote_answer_ptr, pc_->current_remote_description()); // Set local pranswer. - SessionDescriptionInterface* local_pranswer = + std::unique_ptr local_pranswer( webrtc::CreateSessionDescription(SessionDescriptionInterface::kPrAnswer, - sdp, nullptr); - EXPECT_TRUE(DoSetLocalDescription(local_pranswer)); - EXPECT_EQ(remote_offer, pc_->pending_remote_description()); - EXPECT_EQ(local_pranswer, pc_->pending_local_description()); - EXPECT_EQ(local_offer, pc_->current_local_description()); - EXPECT_EQ(remote_answer, pc_->current_remote_description()); + sdp, nullptr)); + SessionDescriptionInterface* local_pranswer_ptr = local_pranswer.get(); + EXPECT_TRUE(DoSetLocalDescription(std::move(local_pranswer))); + EXPECT_EQ(remote_offer_ptr, pc_->pending_remote_description()); + EXPECT_EQ(local_pranswer_ptr, pc_->pending_local_description()); + EXPECT_EQ(local_offer_ptr, pc_->current_local_description()); + EXPECT_EQ(remote_answer_ptr, pc_->current_remote_description()); // Set local answer. - SessionDescriptionInterface* local_answer = webrtc::CreateSessionDescription( - SessionDescriptionInterface::kAnswer, sdp, nullptr); - EXPECT_TRUE(DoSetLocalDescription(local_answer)); + std::unique_ptr local_answer( + webrtc::CreateSessionDescription(SessionDescriptionInterface::kAnswer, + sdp, nullptr)); + SessionDescriptionInterface* local_answer_ptr = local_answer.get(); + EXPECT_TRUE(DoSetLocalDescription(std::move(local_answer))); EXPECT_EQ(nullptr, pc_->pending_remote_description()); EXPECT_EQ(nullptr, pc_->pending_local_description()); - EXPECT_EQ(remote_offer, pc_->current_remote_description()); - EXPECT_EQ(local_answer, pc_->current_local_description()); + EXPECT_EQ(remote_offer_ptr, pc_->current_remote_description()); + EXPECT_EQ(local_answer_ptr, pc_->current_local_description()); } // Tests that it won't crash when calling StartRtcEventLog or StopRtcEventLog @@ -3337,7 +3350,7 @@ TEST_F(PeerConnectionInterfaceTest, OffersAndAnswersHaveTrickleIceOption) { EXPECT_TRUE(desc->transport_infos()[1].description.HasOption("trickle")); // Apply the offer as a remote description, then create an answer. - EXPECT_TRUE(DoSetRemoteDescription(offer.release())); + EXPECT_TRUE(DoSetRemoteDescription(std::move(offer))); std::unique_ptr answer; ASSERT_TRUE(DoCreateAnswer(&answer, &constraints)); desc = answer->description(); @@ -3379,7 +3392,7 @@ TEST_F(PeerConnectionInterfaceTest, IceRenominationOptionInOfferAndAnswer) { // Set the offer as a remote description, then create an answer and ensure it // has the renomination flag too. - EXPECT_TRUE(DoSetRemoteDescription(offer.release())); + EXPECT_TRUE(DoSetRemoteDescription(std::move(offer))); std::unique_ptr answer; ASSERT_TRUE(DoCreateAnswer(&answer, nullptr)); desc = answer->description(); @@ -3422,7 +3435,7 @@ TEST_F(PeerConnectionInterfaceTest, CreateAnswerWithOfferToReceiveConstraints) { constraints.SetMandatoryReceiveVideo(true); std::unique_ptr offer; ASSERT_TRUE(DoCreateOffer(&offer, &constraints)); - EXPECT_TRUE(DoSetRemoteDescription(offer.release())); + EXPECT_TRUE(DoSetRemoteDescription(std::move(offer))); // Now create answer that rejects audio/video. constraints.SetMandatoryReceiveAudio(false); @@ -3460,12 +3473,12 @@ TEST_F(PeerConnectionInterfaceTest, pc_->CreateDataChannel("test", nullptr); std::unique_ptr offer; ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); - EXPECT_TRUE(DoSetRemoteDescription(offer.release())); + EXPECT_TRUE(DoSetRemoteDescription(std::move(offer))); // Create and set answer as well. std::unique_ptr answer; ASSERT_TRUE(DoCreateAnswer(&answer, nullptr)); - EXPECT_TRUE(DoSetLocalDescription(answer.release())); + EXPECT_TRUE(DoSetLocalDescription(std::move(answer))); } TEST_F(PeerConnectionInterfaceTest, SetBitrateWithoutMinSucceeds) {