clearMeasures.html (3630B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>functionality test of window.performance.clearMeasures</title> 6 <link rel="author" title="Intel" href="http://www.intel.com/" /> 7 <link rel="help" href="http://www.w3.org/TR/user-timing/#extensions-performance-interface"/> 8 <script src="/resources/testharness.js"></script> 9 <script src="/resources/testharnessreport.js"></script> 10 <script src="/common/performance-timeline-utils.js"></script> 11 <script src="resources/webperftestharness.js"></script> 12 <script src="resources/webperftestharnessextension.js"></script> 13 <script> 14 setup({ explicit_done: true }); 15 16 function onload_test() 17 { 18 const context = new PerformanceContext(window.performance); 19 const entrylist_checker = new performance_entrylist_checker('measure'); 20 const measure_names = measures.map(function(x) {return x[0];}); 21 22 mark_names.forEach(function(name) { 23 context.mark(name); 24 }); 25 measures.forEach(context.initialMeasures, context); 26 for (let i = 0; i < measures.length; ++i) 27 { 28 context.clearMeasures(measures[i][0]); 29 const retained_entries = context.getEntriesByType('measure'); 30 const non_retained_entries = context.getEntriesByName(measures[i][0], 'measure'); 31 entrylist_checker.entrylist_check(retained_entries, measures.length - i - 1, measure_names, 32 'First loop: checking entries after removing "' + measures[i][0] + '". '); 33 test_equals(non_retained_entries.length, 0, 34 'First loop: measure "' + measures[i][0] + '" should not exist anymore after we cleared it.'); 35 } 36 37 measures.forEach(context.initialMeasures, context); 38 context.clearMeasures(); 39 test_equals(context.getEntriesByType('measure').length, 0, 'No measures should exist after we clear all (after first loop).'); 40 41 // Following cases test clear existed measure name that is tied twice. 42 measures.forEach(context.initialMeasures, context); 43 mark_names.forEach(function(name) { 44 context.mark(name); 45 }); 46 measures.forEach(context.initialMeasures, context); 47 for (let i = 0; i < measures.length; ++i) 48 { 49 context.clearMeasures(measures[i][0]); 50 const retained_entries = context.getEntriesByType('measure'); 51 const non_retained_entries = context.getEntriesByName(measures[i][0], 'measure'); 52 entrylist_checker.entrylist_check(retained_entries, (measures.length - i - 1) * 2, measure_names, 53 'Second loop: checking entries after removing "' + measures[i][0] + '". '); 54 test_equals(non_retained_entries.length, 0, 55 'Second loop: measure "' + measures[i][0] +'" should not exist anymore after we cleared it.'); 56 } 57 58 // Following cases test clear functionality when measure names are tied twice. 59 measures.forEach(context.initialMeasures, context); 60 measures.forEach(context.initialMeasures, context); 61 const entry_number_before_useless_clear = context.getEntriesByType('measure').length; 62 context.clearMeasures('NonExist'); 63 const entry_number_after_useless_clear = context.getEntriesByType('measure').length; 64 test_equals(entry_number_before_useless_clear, entry_number_after_useless_clear, 'Nothing should happen if we clear a non-exist measure'); 65 context.clearMeasures(); 66 test_equals(context.getEntriesByType('measure').length, 0, 'No measures should exist when we clear all (after second loop).'); 67 68 done(); 69 } 70 </script> 71 </head> 72 <body onload=onload_test()> 73 <h1>Description</h1> 74 <p>This test validates functionality of the interface window.performance.clearMeasures.</p> 75 <div id="log"></div> 76 </body> 77 </html>