| Nicolas Pena | 5170483 | 2018-04-12 19:56:32 | [diff] [blame] | 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 |  | 
| Liquan(Max) Gu | d8a5025 | 2019-04-26 18:47:32 | [diff] [blame] | 22 |  mark_names.forEach(function(name) { | 
 | 23 |  context.mark(name); | 
 | 24 |  }); | 
| Nicolas Pena | 5170483 | 2018-04-12 19:56:32 | [diff] [blame] | 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); | 
| Liquan(Max) Gu | d8a5025 | 2019-04-26 18:47:32 | [diff] [blame] | 43 |  mark_names.forEach(function(name) { | 
 | 44 |  context.mark(name); | 
 | 45 |  }); | 
| Nicolas Pena | 5170483 | 2018-04-12 19:56:32 | [diff] [blame] | 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> |