Commit 65c32b57 authored by Eldar Rello's avatar Eldar Rello Committed by Commit Bot

Re-enable testing of...

Re-enable testing of wpt/webrtc/RTCPeerConnection-setRemoteDescription-rollback.html and improve some test cases

Bug: chromium:1025557
Change-Id: I5be63e394c830faf55442d62a053e100875de5a0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1932793
Commit-Queue: Eldar Rello <elrello@microsoft.com>
Commit-Queue: Henrik Boström <hbos@chromium.org>
Reviewed-by: default avatarHenrik Boström <hbos@chromium.org>
Reviewed-by: default avatarHarald Alvestrand <hta@chromium.org>
Cr-Commit-Position: refs/heads/master@{#719106}
parent 80c2a793
...@@ -5905,6 +5905,3 @@ crbug.com/1028116 virtual/gpu-rasterization/images/yuv-decode-eligible/color-pro ...@@ -5905,6 +5905,3 @@ crbug.com/1028116 virtual/gpu-rasterization/images/yuv-decode-eligible/color-pro
crbug.com/1028116 virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image.html [ Pass Failure ] crbug.com/1028116 virtual/gpu-rasterization/images/yuv-decode-eligible/color-profile-image.html [ Pass Failure ]
crbug.com/1028116 virtual/gpu-rasterization/images/yuv-decode-eligible/webp-color-profile-lossy.html [ Pass Failure ] crbug.com/1028116 virtual/gpu-rasterization/images/yuv-decode-eligible/webp-color-profile-lossy.html [ Pass Failure ]
crbug.com/1025557 external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-rollback.html [ Failure Pass ]
crbug.com/1025557 virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-rollback.html [ Failure Pass ]
This is a testharness.js-based test.
PASS setRemoteDescription(rollback) in have-remote-offer state should revert to stable state
PASS setRemoteDescription(rollback) from stable state should reject with InvalidStateError
PASS setRemoteDescription(rollback) should ignore invalid sdp content and succeed
PASS local offer created before setRemoteDescription(remote offer) then rollback should still be usable
PASS local offer created before setRemoteDescription(remote offer) with different transceiver level assignments then rollback should still be usable
PASS rollback of a remote offer should remove a transceiver
FAIL rollback of a remote offer should remove touched transceiver assert_equals: expected 0 but got 1
PASS rollback of a remote offer should keep a transceiver
FAIL rollback of a remote offer should keep a transceiver without tracks assert_equals: expected 1 but got 0
PASS rollback local offer explicitly
PASS implicit rollback of a local offer should visit stable state and fire negotiationneeded
PASS rollback of a remote offer to negotiated stable state should enable applying of a local offer
PASS rollback of a local offer to negotiated stable state should enable applying of a remote offer
PASS rollback a local offer with audio direction change to negotiated stable state and then add video receiver
PASS two transceivers with same mids
PASS onremovetrack fires during remote rollback
FAIL rollback of a remote offer with stream changes assert_equals: expected 1 but got 0
Harness: the test ran to completion.
...@@ -216,9 +216,33 @@ ...@@ -216,9 +216,33 @@
await pc2.setRemoteDescription({type: "rollback"}); await pc2.setRemoteDescription({type: "rollback"});
assert_equals(pc2.getTransceivers().length, 1); assert_equals(pc2.getTransceivers().length, 1);
assert_equals(pc2.getTransceivers()[0].mid, null) assert_equals(pc2.getTransceivers()[0].mid, null);
assert_equals(pc2.getTransceivers()[0].receiver.transport, null);
}, "rollback of a remote offer should keep a transceiver"); }, "rollback of a remote offer should keep a transceiver");
promise_test(async t => {
const pc1 = new RTCPeerConnection();
t.add_cleanup(() => pc1.close());
const pc2 = new RTCPeerConnection();
t.add_cleanup(() => pc2.close());
const stream = await getNoiseStream({video: true});
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
pc1.addTrack(stream.getTracks()[0], stream);
const stream2 = await getNoiseStream({video: true});
t.add_cleanup(() => stream2.getTracks().forEach(track => track.stop()));
pc2.addTrack(stream2.getTracks()[0], stream2);
await pc2.setRemoteDescription(await pc1.createOffer());
assert_equals(pc2.getTransceivers().length, 1);
await pc2.setRemoteDescription({type: "rollback"});
assert_equals(pc2.getTransceivers().length, 1);
assert_equals(pc2.getTransceivers()[0].mid, null);
assert_equals(pc2.getTransceivers()[0].receiver.transport, null);
}, "rollback of a remote offer should keep a transceiver created by addtrack");
promise_test(async t => { promise_test(async t => {
const pc1 = new RTCPeerConnection(); const pc1 = new RTCPeerConnection();
t.add_cleanup(() => pc1.close()); t.add_cleanup(() => pc1.close());
...@@ -257,14 +281,16 @@ ...@@ -257,14 +281,16 @@
const offer = await pc.createOffer(); const offer = await pc.createOffer();
await pc.setLocalDescription(offer); await pc.setLocalDescription(offer);
assert_not_equals(pc.getTransceivers()[0].sender.transport, null);
await pc.setRemoteDescription({type: "rollback"}); await pc.setRemoteDescription({type: "rollback"});
assert_equals(pc.getTransceivers().length, 1); assert_equals(pc.getTransceivers().length, 1);
assert_equals(pc.getTransceivers()[0].mid, null) assert_equals(pc.getTransceivers()[0].mid, null)
assert_equals(pc.getTransceivers()[0].sender.transport, null);
await pc.setLocalDescription(offer); await pc.setLocalDescription(offer);
assert_equals(pc.getTransceivers().length, 1); assert_equals(pc.getTransceivers().length, 1);
await signalingstatechangeResolver.promise; await signalingstatechangeResolver.promise;
assert_array_equals(states, ['have-local-offer', 'stable', 'have-local-offer']); assert_array_equals(states, ['have-local-offer', 'stable', 'have-local-offer']);
}, "rollback local offer explicitly"); }, "explicit rollback of local offer should remove transceivers and transport");
promise_test(async t => { promise_test(async t => {
const pc1 = new RTCPeerConnection(); const pc1 = new RTCPeerConnection();
...@@ -486,7 +512,6 @@ ...@@ -486,7 +512,6 @@
await pc1.setLocalDescription(offer1); await pc1.setLocalDescription(offer1);
await pc2.setRemoteDescription(pc1.pendingLocalDescription); await pc2.setRemoteDescription(pc1.pendingLocalDescription);
await pc2.setLocalDescription(await pc2.createAnswer()); await pc2.setLocalDescription(await pc2.createAnswer());
await pc1.setRemoteDescription(pc2.localDescription); await pc1.setRemoteDescription(pc2.localDescription);
...@@ -505,8 +530,11 @@ ...@@ -505,8 +530,11 @@
assert_equals(remoteStreams[0].getTracks().length, 0); assert_equals(remoteStreams[0].getTracks().length, 0);
assert_equals(remoteStreams[1].getTracks()[0].id, track.id); assert_equals(remoteStreams[1].getTracks()[0].id, track.id);
await pc2.setRemoteDescription({type: "rollback"}); await pc2.setRemoteDescription({type: "rollback"});
assert_equals(remoteStreams[0].getTracks().length, 1); assert_equals(remoteStreams.length, 3);
assert_equals(remoteStreams[0].getTracks()[0].id, track.id); assert_equals(remoteStreams[0].id, remoteStreams[2].id);
assert_equals(remoteStreams[1].getTracks().length, 0);
assert_equals(remoteStreams[2].getTracks().length, 1);
assert_equals(remoteStreams[2].getTracks()[0].id, track.id);
}, "rollback of a remote offer with stream changes"); }, "rollback of a remote offer with stream changes");
......
...@@ -7,8 +7,9 @@ FAIL local offer created before setRemoteDescription(remote offer) with differen ...@@ -7,8 +7,9 @@ FAIL local offer created before setRemoteDescription(remote offer) with differen
FAIL rollback of a remote offer should remove a transceiver assert_equals: expected 1 but got 0 FAIL rollback of a remote offer should remove a transceiver assert_equals: expected 1 but got 0
FAIL rollback of a remote offer should remove touched transceiver assert_equals: expected 1 but got 0 FAIL rollback of a remote offer should remove touched transceiver assert_equals: expected 1 but got 0
FAIL rollback of a remote offer should keep a transceiver assert_equals: expected 1 but got 0 FAIL rollback of a remote offer should keep a transceiver assert_equals: expected 1 but got 0
FAIL rollback of a remote offer should keep a transceiver created by addtrack assert_equals: expected 1 but got 0
FAIL rollback of a remote offer should keep a transceiver without tracks assert_equals: expected 1 but got 0 FAIL rollback of a remote offer should keep a transceiver without tracks assert_equals: expected 1 but got 0
FAIL rollback local offer explicitly promise_test: Unhandled rejection with value: object "OperationError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Rollback not supported in Plan B" FAIL explicit rollback of local offer should remove transceivers and transport promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'sender' of undefined"
FAIL implicit rollback of a local offer should visit stable state and fire negotiationneeded promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote offer sdp: Called in wrong state: kHaveLocalOffer" FAIL implicit rollback of a local offer should visit stable state and fire negotiationneeded promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote offer sdp: Called in wrong state: kHaveLocalOffer"
FAIL rollback of a remote offer to negotiated stable state should enable applying of a local offer promise_test: Unhandled rejection with value: object "OperationError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Rollback not supported in Plan B" FAIL rollback of a remote offer to negotiated stable state should enable applying of a local offer promise_test: Unhandled rejection with value: object "OperationError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Rollback not supported in Plan B"
FAIL rollback of a local offer to negotiated stable state should enable applying of a remote offer assert_equals: expected 2 but got 0 FAIL rollback of a local offer to negotiated stable state should enable applying of a remote offer assert_equals: expected 2 but got 0
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment