OLD | NEW |
(Empty) | |
| 1 (async function(testRunner) { |
| 2 let {page, session, dp} = await testRunner.startHTML(` |
| 3 <style> |
| 4 div#test { |
| 5 display: none; |
| 6 background-color: blue; |
| 7 width: 100px; |
| 8 height: 100px; |
| 9 } |
| 10 </style> |
| 11 <div id='test'> |
| 12 </div> |
| 13 `, ''); |
| 14 |
| 15 var TracingHelper = await testRunner.loadScript('../resources/tracing-test.js'
); |
| 16 var tracingHelper = new TracingHelper(testRunner, session); |
| 17 await tracingHelper.startTracingAndSaveAsStream(); |
| 18 await session.evaluate(` |
| 19 (function performActions() { |
| 20 var element = document.getElementById('test'); |
| 21 element.style.display = 'block'; |
| 22 var unused = element.clientWidth; |
| 23 })(); |
| 24 `); |
| 25 |
| 26 var streamHandle = await tracingHelper.stopTracingAndReturnStream(); |
| 27 var data1 = await tracingHelper.retrieveStream(streamHandle, null, null); |
| 28 var data2 = await tracingHelper.retrieveStream(streamHandle, 0, 1000); |
| 29 if (data1 !== data2) |
| 30 testRunner.log('FAIL: got different data for cunked vs. non-chunked reads'); |
| 31 var response = await dp.IO.close({ handle: streamHandle }); |
| 32 testRunner.log('Error after legit close: ' + JSON.stringify(response.error)); |
| 33 response = await dp.IO.read({ handle: streamHandle }); |
| 34 testRunner.log('Error after illegal read: ' + JSON.stringify(response.error)); |
| 35 response = await dp.IO.close({ handle: streamHandle }); |
| 36 testRunner.log('Error after illegal close: ' + JSON.stringify(response.error))
; |
| 37 var trace = JSON.parse(data1); |
| 38 performEventsSanityCheck(trace['traceEvents']); |
| 39 testRunner.log('Metadata: ' + typeof trace['metadata'] + (trace['metadata'] ?
', not null' : '')); |
| 40 testRunner.completeTest(); |
| 41 |
| 42 function assertGreaterOrEqual(a, b, message) { |
| 43 if (a >= b) |
| 44 return; |
| 45 testRunner.log(message + ' (' + a + ' < ' + b + ')'); |
| 46 testRunner.completeTest(); |
| 47 } |
| 48 |
| 49 function performEventsSanityCheck(events) { |
| 50 var phaseComplete = 0; |
| 51 |
| 52 var knownEvents = { |
| 53 'MessageLoop::PostTask': 0, |
| 54 'FunctionCall': 0, |
| 55 'UpdateLayoutTree': 0, |
| 56 'Layout': 0 |
| 57 }; |
| 58 |
| 59 for (var i = 0; i < events.length; ++i) { |
| 60 var event = events[i]; |
| 61 if (event.phase === 'X') |
| 62 ++phaseComplete; |
| 63 if (event.name in knownEvents) |
| 64 ++knownEvents[event.name]; |
| 65 } |
| 66 assertGreaterOrEqual(events.length, 10, 'Too few trace events recorded'); |
| 67 assertGreaterOrEqual(knownEvents['UpdateLayoutTree'], 1, 'Too few UpdateLayo
utTree events'); |
| 68 assertGreaterOrEqual(knownEvents['Layout'], 1, 'Too few Layout events'); |
| 69 testRunner.log('Event sanity test done'); |
| 70 } |
| 71 }) |
OLD | NEW |