Commit Graph

33 Commits

Author SHA1 Message Date
13181035bc Reland: Add BWE plot to event log analyzer.
The plot is constructed by actually running the congestion controller with
the logged rtp headers and rtcp feedback messages to reproduce the same behavior
as in the real call.

R=phoglund@webrtc.org, terelius@webrtc.org

Review URL: https://codereview.webrtc.org/2193763002 .

Cr-Commit-Position: refs/heads/master@{#13574}
2016-07-29 12:49:04 +00:00
59c1ad58e6 Revert of Add BWE plot to event log analyzer. (patchset #6 id:100001 of https://codereview.webrtc.org/2188033004/ )
Reason for revert:
Breaks downstream targets.

Original issue's description:
> Add BWE plot to event log analyzer.
>
> The plot is constructed by actually running the congestion controller with
> the logged rtp headers and rtcp feedback messages to reproduce the same behavior
> as in the real call.
>
> R=phoglund@webrtc.org, terelius@webrtc.org
>
> Committed: https://crrev.com/2beea2a8c920000ef19eea20cce397507fc3d5e7
> Cr-Commit-Position: refs/heads/master@{#13558}

TBR=phoglund@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2190013002
Cr-Commit-Position: refs/heads/master@{#13559}
2016-07-28 16:21:32 +00:00
2beea2a8c9 Add BWE plot to event log analyzer.
The plot is constructed by actually running the congestion controller with
the logged rtp headers and rtcp feedback messages to reproduce the same behavior
as in the real call.

R=phoglund@webrtc.org, terelius@webrtc.org

Review URL: https://codereview.webrtc.org/2188033004 .

Cr-Commit-Position: refs/heads/master@{#13558}
2016-07-28 15:42:31 +00:00
bded44b79b Add a CongestionController fuzzer.
BUG=

Review-Url: https://codereview.webrtc.org/2157783002
Cr-Commit-Position: refs/heads/master@{#13497}
2016-07-18 16:26:15 +00:00
44905cf49f Add a fuzzer for the pseudoTCP implementation used by chromoting. This
found chromium:620694.

Unfortunately it depends on unsafe GN targets, so do not build in
Chromium.

NOTRY=true

Review-Url: https://codereview.webrtc.org/2129603003
Cr-Commit-Position: refs/heads/master@{#13407}
2016-07-07 12:52:29 +00:00
1d4fefbbaf Reland of https://codereview.webrtc.org/2044523002.
Landing these in WebRTC under a guard so they don't build in
Chromium. The guard can be removed once Chromium has migrated to use the
new GN targets.

BUG=webrtc:6081
NOTRY=true

Review-Url: https://codereview.webrtc.org/2117183005
Cr-Commit-Position: refs/heads/master@{#13397}
2016-07-06 15:02:09 +00:00
262ba77d78 Add fuzzer for TURN unwrap.
This is called on received network packets if dump_rtp_packets_ is on.

NOTRY=true

Review-Url: https://codereview.webrtc.org/2126463002
Cr-Commit-Position: refs/heads/master@{#13394}
2016-07-06 12:59:34 +00:00
36a321d2e3 Update the current RTP parser fuzzer to handle header extensions.
This changes the corpus semantics, but libfuzzer should be smart enough to figure it out, and if not then we can add a seed_corpus to help.

BUG=webrtc:4771
NOTRY=true

Review-Url: https://codereview.webrtc.org/2072473002
Cr-Commit-Position: refs/heads/master@{#13384}
2016-07-05 14:20:30 +00:00
d4bcdad263 Add a libfuzzer for RtpHeaderParser.
NOTRY=true

Review-Url: https://codereview.webrtc.org/2062103002
Cr-Commit-Position: refs/heads/master@{#13271}
2016-06-23 10:50:43 +00:00
bddc94bca2 Add fuzzer corpora.
- RTP and RTCP corpora for existing fuzzers
  - STUN/SDP/pseudotcp for upcoming ones
  - STUN/SDP tokens as well

NOTRY=true

Review-Url: https://codereview.webrtc.org/2082943002
Cr-Commit-Position: refs/heads/master@{#13253}
2016-06-22 13:43:30 +00:00
839315beca Use the Chromium libfuzzer template instead of rolling our own.
This lets us use their fancy features, including seed_corpus which is
super handy.

NOTRY=true

Review-Url: https://codereview.webrtc.org/2081683002
Cr-Commit-Position: refs/heads/master@{#13216}
2016-06-20 13:04:01 +00:00
81ca73586e Remove new fuzzers until their GN targets work properly in Chromium.
Chromium uses gn gen --check, which doesn't like some of the includes
used in the new gn targets the fuzzers use. This breaks Chromium
libfuzzer compiles, for which there isn't yet a webrtc FYI bot.

I'm working on fixing the includes, at which point these can come back.

BUG=chromium:618901
NOTRY=true

Review-Url: https://codereview.webrtc.org/2053293002
Cr-Commit-Position: refs/heads/master@{#13098}
2016-06-10 09:59:46 +00:00
555cfe9e6e Use relative paths for api/p2p fuzzers.
BUG=
R=aizatsky@chromium.org
TBR=katrielc@webrtc.org

Review URL: https://codereview.webrtc.org/2053093002 .

Cr-Commit-Position: refs/heads/master@{#13095}
2016-06-09 21:25:25 +00:00
7b496e026b Add fuzzers for SDP and STUN parsing.
The STUN fuzzer is split into two parts: validation and parsing. The
latter should be able to handle invalid packets instead of assuming
the validation deals with them, since an adversary could set a valid
HMAC on an invalid packet.

NOTRY=true

Review-Url: https://codereview.webrtc.org/2044523002
Cr-Commit-Position: refs/heads/master@{#13050}
2016-06-06 16:45:32 +00:00
e1e951f965 Allow fuzzers to depend on anything, since they want access to as many targets as possible.
NOTRY=true

Review-Url: https://codereview.webrtc.org/2046493002
Cr-Commit-Position: refs/heads/master@{#13048}
2016-06-06 15:05:03 +00:00
abe95ba323 AudioDecoderIsacT: Require caller to always specify sample rate
This gets rid of the complex & icky state where the sample rate is not
yet determined.

BUG=webrtc:5801

Review-Url: https://codereview.webrtc.org/2020353003
Cr-Commit-Position: refs/heads/master@{#13011}
2016-06-02 09:59:02 +00:00
bfefb03ec1 Replace scoped_ptr with unique_ptr everywhere
But keep #including scoped_ptr.h in .h files, so as not to break
WebRTC users who expect those .h files to give them rtc::scoped_ptr.

BUG=webrtc:5520

Review-Url: https://codereview.webrtc.org/1937693002
Cr-Commit-Position: refs/heads/master@{#12581}
2016-05-01 21:53:55 +00:00
d6b9d772c2 Fix producer_fec_fuzzer.
A field was removed from FecProtectionParams in
https://codereview.webrtc.org/1917083003.

BUG=webrtc:5066
R=turaj@webrtc.org, turajs@webrtc.org

Review URL: https://codereview.webrtc.org/1922283002 .

Cr-Commit-Position: refs/heads/master@{#12518}
2016-04-26 22:18:52 +00:00
1edb7ab7bd RtpPacket class introduced.
BUG=webrtc:1994, webrtc:5261

Review URL: https://codereview.webrtc.org/1841453004

Cr-Commit-Position: refs/heads/master@{#12444}
2016-04-20 12:25:19 +00:00
ba3e25e502 Simple RTCP receiver fuzzer.
Doesn't utilize the clock or any callbacks out of the receiver but
should still be useful to test input packet parsing.

BUG=webrtc:4771
R=danilchap@webrtc.org

Review URL: https://codereview.webrtc.org/1716143002 .

Cr-Commit-Position: refs/heads/master@{#11717}
2016-02-23 10:35:41 +00:00
fd2be2718d Fuzzer tests for AudioDecoder's DecodeRedundant and IncomingPacket
This CL adds new fuzzer tests for the DecodeRedundant and
IncomingPacket methods of AudioDecoder. In practice, only Opus has
DecodeRedundant, and only iSAC has IncomingPacket. Did some minor work
to generalize the helper function reading values from the fuzzed
input.

BUG=webrtc:5306
R=pbos@webrtc.org
NOTRY=true

Review URL: https://codereview.webrtc.org/1607173003

Cr-Commit-Position: refs/heads/master@{#11533}
2016-02-09 08:00:32 +00:00
2ab815779c Remove implicit downcast in producer_fec_fuzzer.cc.
Speculative fix for DrFuzz.

BUG=
TBR=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1664453002 .

Cr-Commit-Position: refs/heads/master@{#11465}
2016-02-02 21:31:11 +00:00
f5b804bb9c Fix implicit bool casts in producer_fec_fuzzer.cc.
Fixes DrFuzz breakage on Windows.

BUG=webrtc:5473
TBR=zhaoqin@google.com

Review URL: https://codereview.webrtc.org/1643523007 .

Cr-Commit-Position: refs/heads/master@{#11426}
2016-01-29 15:26:52 +00:00
1e0cfd9a46 Add VP8 and H264 depacketizer fuzzers.
Also removes listing of targets in webrtc_fuzzers which is very prone to
not being up to date. They're not required for ClusterFuzz integration
or building locally. This also means that adding fuzzers won't require
approval outside the fuzzers directory.

BUG=webrtc:4771
R=kjellander@webrtc.org, stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1518973003 .

Cr-Commit-Position: refs/heads/master@{#11067}
2015-12-17 13:28:28 +00:00
3514cbe554 Add DrFuzz support to webrtc fuzzers.
BUG=webrtc:4771
R=kjellander@webrtc.org

Review URL: https://codereview.webrtc.org/1529203003

Cr-Commit-Position: refs/heads/master@{#11059}
2015-12-17 02:36:19 +00:00
78315b9813 Reland of Base webrtc fuzzers on a template. (patchset #1 id:1 of https://codereview.webrtc.org/1528043002/ )
Reason for revert:
Found missing public_configs that broke Chromium libfuzzer build.

Original issue's description:
> Revert of Base webrtc fuzzers on a template. (patchset #1 id:1 of https://codereview.webrtc.org/1524993002/ )
>
> Reason for revert:
> Suspect this is breaking the build:
> https://build.chromium.org/p/chromium.fyi/builders/Libfuzzer%20Upload%20Linux/builds/1576/steps/compile/logs/stdio
>
> Original issue's description:
> > Base webrtc fuzzers on a template.
> >
> > Removes noisy dependencies on webrtc_fuzzer_main and removal of
> > find_bad_constructs, removes 1-6 lines of gn per fuzzer target.
> >
> > BUG=webrtc:4771
> > R=kjellander@webrtc.org
> >
> > Committed: https://crrev.com/5ea3da2cbbb0710f9617fb0627c0c4258437b09f
> > Cr-Commit-Position: refs/heads/master@{#11022}
>
> TBR=kjellander@webrtc.org,pbos@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:4771
>
> Committed: https://crrev.com/5e0218c66e0686dd00719f1e53f844efa94c9f42
> Cr-Commit-Position: refs/heads/master@{#11032}

TBR=kjellander@webrtc.org,tommi@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4771

Review URL: https://codereview.webrtc.org/1522003005 .

Cr-Commit-Position: refs/heads/master@{#11035}
2015-12-15 20:58:00 +00:00
5e0218c66e Revert of Base webrtc fuzzers on a template. (patchset #1 id:1 of https://codereview.webrtc.org/1524993002/ )
Reason for revert:
Suspect this is breaking the build:
https://build.chromium.org/p/chromium.fyi/builders/Libfuzzer%20Upload%20Linux/builds/1576/steps/compile/logs/stdio

Original issue's description:
> Base webrtc fuzzers on a template.
>
> Removes noisy dependencies on webrtc_fuzzer_main and removal of
> find_bad_constructs, removes 1-6 lines of gn per fuzzer target.
>
> BUG=webrtc:4771
> R=kjellander@webrtc.org
>
> Committed: https://crrev.com/5ea3da2cbbb0710f9617fb0627c0c4258437b09f
> Cr-Commit-Position: refs/heads/master@{#11022}

TBR=kjellander@webrtc.org,pbos@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4771

Review URL: https://codereview.webrtc.org/1528043002

Cr-Commit-Position: refs/heads/master@{#11032}
2015-12-15 18:24:05 +00:00
5ea3da2cbb Base webrtc fuzzers on a template.
Removes noisy dependencies on webrtc_fuzzer_main and removal of
find_bad_constructs, removes 1-6 lines of gn per fuzzer target.

BUG=webrtc:4771
R=kjellander@webrtc.org

Review URL: https://codereview.webrtc.org/1524993002 .

Cr-Commit-Position: refs/heads/master@{#11022}
2015-12-15 09:46:27 +00:00
4c1093b86f Add FEC producer fuzzing and a unittest for one of the issues found.
BUG=webrtc:4800
R=pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1522463002 .

Cr-Commit-Position: refs/heads/master@{#10990}
2015-12-11 17:25:56 +00:00
fe32a76d60 Create fuzzer tests for audio decoders
This change adds fuzzer tests for iLBC, iSAC fix and float, and
Opus. The fuzzer function takes a random input vector and splits it
into a number of payloads. The lengths of the payloads is also
determined by the random vector. The payloads are decoded with the
decoders.

BUG=webrtc:5306
R=kjellander@webrtc.org, pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1499093002 .

Cr-Commit-Position: refs/heads/master@{#10932}
2015-12-08 10:27:34 +00:00
871c419596 Add fuzzing of VP8 QP parsing.
BUG=webrtc:4771
R=asapersson@webrtc.org, kjellander@webrtc.org

Review URL: https://codereview.webrtc.org/1469123004 .

Cr-Commit-Position: refs/heads/master@{#10806}
2015-11-26 13:52:28 +00:00
89d658f6b4 Fix fuzzer breakage in Chromium.
Removes log disabling under Chromium which doesn't compile due to
missing LS_INFO in the override log implementation.

Also removes dependency on webrtc/test/BUILD.gn which doesn't build in
Chromium (due to third_party/gflags not being present). Instead the
no-op implementation of field_trials in system_wrappers is used.

BUG=chromium:561667, webrtc:4771
R=kjellander@webrtc.org
TBR=henrikg@webrtc.org

Review URL: https://codereview.webrtc.org/1473713004 .

Cr-Commit-Position: refs/heads/master@{#10793}
2015-11-25 20:58:43 +00:00
62e9bda7bf Implement fuzzing of VP9 depacketization.
Provides an example for how to use fuzzing within the webrtc tree.

BUG=webrtc:4771
R=aizatsky@chromium.org, asapersson@webrtc.org, kjellander@webrtc.org

Review URL: https://codereview.webrtc.org/1463523002 .

Cr-Commit-Position: refs/heads/master@{#10752}
2015-11-23 14:12:13 +00:00