Revision cdf5b3962f33d0a05af040097173d8cc827a7d73 authored by Trent Apted on 12 March 2018, 04:02:04 UTC, committed by Blink WPT Bot on 12 March 2018, 04:10:37 UTC
This reverts commit af1c15b16f99d290799c83d34c111bce52447026. Reason for revert: suspected for persistent failures on Win7 Tests (dbg)(1) Unexpected Failures: * external/wpt/bluetooth/server/getPrimaryServices/blocklisted-services.https.html * external/wpt/bluetooth/service/getCharacteristic/gen-blocklisted-characteristic.https.html * external/wpt/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html * external/wpt/bluetooth/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.html * external/wpt/upgrade-insecure-requests/link-upgrade.sub.https.html since https://ci.chromium.org/buildbot/chromium.win/Win7%20Tests%20%28dbg%29%281%29/66761 errors like 15:59:42.310 5904 worker/4 external/wpt/bluetooth/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.html crashed, (stderr lines): 15:59:42.311 5904 CONSOLE MESSAGE: line 255: Web Bluetooth is experimental on this platform. See https://github.com/WebBluetoothCG/web-bluetooth/blob/gh-pages/implementation-status.md 15:59:42.327 1300 [1691/5755] external/wpt/bluetooth/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.html failed unexpectedly (content_shell crashed [pid=5644]) Original change's description: > bluetooth: Use DeviceUUID in FakeBluetooth > > This change refactors the Web Bluetooth test API to use the > DeviceUUIDs helper class defined in BluetoothDevice. Additionally, > this change finishes the implementation of SimulateGATTServicesChanged, > and as a result, tests are updated to set the next discovery response > before calling this interface. > > BUG=719826 > > Change-Id: I0f986eb7afe6fbf7ebaa80ac4b633d46a027b80d > Reviewed-on: https://chromium-review.googlesource.com/939984 > Commit-Queue: Ovidio Henriquez <odejesush@chromium.org> > Reviewed-by: Giovanni Ortuño Urquidi <ortuno@chromium.org> > Cr-Commit-Position: refs/heads/master@{#541577} TBR=cco3@chromium.org,ortuno@chromium.org,odejesush@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 719826 Change-Id: I02bb7066c6f1282191f7a24e91b3d2c5614b8104 Reviewed-on: https://chromium-review.googlesource.com/958741 Reviewed-by: Trent Apted <tapted@chromium.org> Commit-Queue: Trent Apted <tapted@chromium.org> Cr-Commit-Position: refs/heads/master@{#542421}
1 parent 9c9d8f2
interfaces.https.html
<!doctype html>
<meta charset=utf-8>
<title>WebRTC IDL Tests</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
<script src="/resources/idlharness.js"></script>
<script src="./RTCPeerConnection-helper.js"></script>
<script>
'use strict';
// The following helper functions are called from RTCPeerConnection-helper.js:
// generateAnswer()
// generateMediaStreamTrack()
// Put the global IDL test objects under a parent object.
// This allows easier search for the test cases when
// viewing the web page
const idlTestObjects = {};
// Helper function to create RTCTrackEvent object
function initTrackEvent() {
const pc = new RTCPeerConnection();
const transceiver = pc.addTransceiver('audio');
const { sender, receiver } = transceiver;
const { track } = receiver;
return new RTCTrackEvent('track', {
receiver, track, transceiver
});
}
// List of async test driver functions
const asyncInitTasks = [
asyncInitCertificate,
asyncInitTransports,
asyncInitMediaStreamTrack,
];
// Asynchronously generate an RTCCertificate
function asyncInitCertificate() {
return RTCPeerConnection.generateCertificate({
name: 'RSASSA-PKCS1-v1_5',
modulusLength: 2048,
publicExponent: new Uint8Array([1, 0, 1]),
hash: 'SHA-256'
}).then(cert => {
idlTestObjects.certificate = cert;
});
}
// Asynchronously generate instances of
// RTCSctpTransport, RTCDtlsTransport,
// and RTCIceTransport
function asyncInitTransports() {
const pc = new RTCPeerConnection();
pc.createDataChannel('test');
// setting answer description initializes pc.sctp
return pc.createOffer()
.then(offer =>
pc.setLocalDescription(offer)
.then(() => generateAnswer(offer)))
.then(answer => pc.setRemoteDescription(answer))
.then(() => {
const sctpTransport = pc.sctp;
assert_true(sctpTransport instanceof RTCSctpTransport,
'Expect pc.sctp to be instance of RTCSctpTransport');
idlTestObjects.sctpTransport = sctpTransport;
const dtlsTransport = sctpTransport.transport;
assert_true(dtlsTransport instanceof RTCDtlsTransport,
'Expect sctpTransport.transport to be instance of RTCDtlsTransport');
idlTestObjects.dtlsTransport = dtlsTransport;
const iceTransport = dtlsTransport.transport;
idlTestObjects.iceTransport = iceTransport;
});
}
// Asynchoronously generate MediaStreamTrack from getUserMedia
function asyncInitMediaStreamTrack() {
return navigator.mediaDevices.getUserMedia({ audio: true })
.then(mediaStream => {
const tracks = mediaStream.getTracks();
assert_greater_than(tracks.length, 0,
'Expect media stream to have at least one track');
idlTestObjects.mediaStreamTrack = tracks[0];
});
}
// Run all async test drivers, report and swallow any error
// thrown/rejected. Proper test for correct initialization
// of the objects are done in their respective test files.
function asyncInit() {
return Promise.all(asyncInitTasks.map(
task => {
const t = async_test(`Test driver for ${task.name}`);
let promise;
t.step(() => {
promise = task().then(
t.step_func_done(),
t.step_func(err =>
assert_unreached(`Failed to run ${task.name}: ${err}`)));
});
return promise;
}));
}
// Main function to do the IDL test, using fetched IDL text
function doIdlTest(idlText) {
const idlArray = new IdlArray();
idlArray.add_untested_idls('interface EventHandler {};');
idlArray.add_idls('interface MediaStreamTrack : EventTarget {};');
idlArray.add_idls(idlText);
idlArray.add_objects({
'RTCPeerConnection': [`new RTCPeerConnection()`],
'RTCSessionDescription': [`new RTCSessionDescription({ type: 'offer' })`],
'RTCIceCandidate': [`new RTCIceCandidate({ sdpMid: 1 })`],
'RTCDataChannel': [`new RTCPeerConnection().createDataChannel('')`],
'RTCRtpTransceiver': [`new RTCPeerConnection().addTransceiver('audio')`],
'RTCRtpSender': [`new RTCPeerConnection().addTransceiver('audio').sender`],
'RTCRtpReceiver': [`new RTCPeerConnection().addTransceiver('audio').receiver`],
'RTCPeerConnectionIceEvent': [`new RTCPeerConnectionIceEvent('ice')`],
'RTCPeerConnectionIceErrorEvent':
[`new RTCPeerConnectionIceErrorEvent('ice-error', { errorCode: 701 });`],
'RTCTrackEvent': [`initTrackEvent()`],
'RTCErrorEvent': [`new RTCErrorEvent('error')`],
'RTCDataChannelEvent': [`new RTCDataChannelEvent('channel',
{ channel: new RTCPeerConnection().createDataChannel('') })`],
// Async initialized objects below
'RTCCertificate': ['idlTestObjects.certificate'],
'RTCSctpTransport': ['idlTestObjects.sctpTransport'],
'RTCDtlsTransport': ['idlTestObjects.dtlsTransport'],
'RTCIceTransport': ['idlTestObjects.iceTransport'],
// Test on both MediaStreamTrack from getUserMedia and transceiver
'MediaStreamTrack': [
`idlTestObjects.mediaStreamTrack`,
`generateMediaStreamTrack('audio')`]
});
idlArray.test();
}
promise_test(t => {
return asyncInit()
.then(() => fetch('/interfaces/webrtc-pc.idl'))
.then(response => response.text())
.then(doIdlTest);
}, 'Main test driver');
/*
TODO
RTCRtpContributingSource
RTCRtpSynchronizationSource
RTCDTMFSender
RTCDTMFToneChangeEvent
RTCIdentityProviderRegistrar
RTCIdentityAssertion
*/
</script>
Computing file changes ...