From f00cd533aec42c1c1e91e4fd35abc1e10f0661ec Mon Sep 17 00:00:00 2001 From: Harald Alvestrand Date: Mon, 8 Mar 2021 09:46:28 +0000 Subject: [PATCH] Do more actions on SDP fuzzing. This will wait for completion of the setRemoteDescription() call, and if the setRemoteDescription() is successful, it will do a setLocalDescription() (default description). Bug: none Change-Id: Id1cb6b1ecbdc90d4f2c5b46a7f8e92b7491ff401 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/210682 Reviewed-by: Mirko Bonadei Commit-Queue: Harald Alvestrand Cr-Commit-Position: refs/heads/master@{#33400} --- test/fuzzers/sdp_integration_fuzzer.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/test/fuzzers/sdp_integration_fuzzer.cc b/test/fuzzers/sdp_integration_fuzzer.cc index 7cae917abd..dba09721bb 100644 --- a/test/fuzzers/sdp_integration_fuzzer.cc +++ b/test/fuzzers/sdp_integration_fuzzer.cc @@ -31,7 +31,8 @@ void FuzzOneInput(const uint8_t* data, size_t size) { FuzzerTest test; test.CreatePeerConnectionWrappers(); - test.ConnectFakeSignaling(); + // Note - we do not do test.ConnectFakeSignaling(); all signals + // generated are discarded. rtc::scoped_refptr srd_observer( new rtc::RefCountedObject()); @@ -41,6 +42,17 @@ void FuzzOneInput(const uint8_t* data, size_t size) { CreateSessionDescription("offer", message, &error)); // Note: This form of SRD takes ownership of the description. test.caller()->pc()->SetRemoteDescription(srd_observer, sdp.release()); + // Wait a short time for observer to be called. Timeout is short + // because the fuzzer should be trying many branches. + EXPECT_TRUE_WAIT(srd_observer->called(), 100); + + // If set-remote-description was successful, try to answer. + rtc::scoped_refptr sld_observer( + new rtc::RefCountedObject()); + if (srd_observer->result()) { + test.caller()->pc()->SetLocalDescription(sld_observer.get()); + EXPECT_TRUE_WAIT(sld_observer->called(), 100); + } } } // namespace webrtc