diff options
Diffstat (limited to 'cli/tests/unit/performance_test.ts')
-rw-r--r-- | cli/tests/unit/performance_test.ts | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/cli/tests/unit/performance_test.ts b/cli/tests/unit/performance_test.ts index 89b7cad8b..b7ade50a2 100644 --- a/cli/tests/unit/performance_test.ts +++ b/cli/tests/unit/performance_test.ts @@ -1,5 +1,10 @@ // Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. -import { unitTest, assert, createResolvable } from "./test_util.ts"; +import { + unitTest, + assert, + assertEquals, + createResolvable, +} from "./test_util.ts"; unitTest({ perms: { hrtime: false } }, async function performanceNow(): Promise< void @@ -13,3 +18,42 @@ unitTest({ perms: { hrtime: false } }, async function performanceNow(): Promise< }, 10); await resolvable; }); + +unitTest(function performanceMark() { + const mark = performance.mark("test"); + assert(mark instanceof PerformanceMark); + assertEquals(mark.detail, null); + assertEquals(mark.name, "test"); + assertEquals(mark.entryType, "mark"); + assert(mark.startTime > 0); + assertEquals(mark.duration, 0); + const entries = performance.getEntries(); + assert(entries[entries.length - 1] === mark); + const markEntries = performance.getEntriesByName("test", "mark"); + assert(markEntries[markEntries.length - 1] === mark); +}); + +unitTest(function performanceMeasure() { + const mark = performance.mark("test"); + return new Promise((resolve, reject) => { + setTimeout(() => { + try { + const measure = performance.measure("test", "test"); + assert(measure instanceof PerformanceMeasure); + assertEquals(measure.detail, null); + assertEquals(measure.name, "test"); + assertEquals(measure.entryType, "measure"); + assert(measure.startTime > 0); + assertEquals(mark.startTime, measure.startTime); + assert(measure.duration >= 100 && measure.duration < 200); + const entries = performance.getEntries(); + assert(entries[entries.length - 1] === measure); + const measureEntries = performance.getEntriesByName("test", "measure"); + assert(measureEntries[measureEntries.length - 1] === measure); + } catch (e) { + return reject(e); + } + resolve(); + }, 100); + }); +}); |