diff --git a/tests/app/profiling/profiling-tests.ts b/tests/app/profiling/profiling-tests.ts index 125bf1dab..e8bb9eb6f 100644 --- a/tests/app/profiling/profiling-tests.ts +++ b/tests/app/profiling/profiling-tests.ts @@ -1,4 +1,4 @@ -import { assert, assertEqual, assertFalse, assertTrue, assertThrows } from "../TKUnit"; +import { assert, assertEqual, assertFalse, assertNull, assertTrue, assertThrows } from "../TKUnit"; import { enable, disable, profile, time, start, stop, timer, isRunning, resetProfiles } from "tns-core-modules/profiling"; enable(); @@ -99,6 +99,19 @@ export function test_isRunning_withReentrancy() { assertFalse(isRunning(name), "isRunning should be false after second stop"); } +export function test_reset_profiles() { + resetProfiles(); + const name = "test_reset_profiles"; + + start(name); + stop(name); + resetProfiles(); + + const res = timer(name); + + assertNull(res); +} + export function test_start_stop() { resetProfiles(); const name = "test_start_stop"; diff --git a/tns-core-modules/profiling/profiling.ts b/tns-core-modules/profiling/profiling.ts index 9d767e8fa..dd8bb5257 100644 --- a/tns-core-modules/profiling/profiling.ts +++ b/tns-core-modules/profiling/profiling.ts @@ -46,6 +46,7 @@ export function start(name: string): void { runCount: 1 }; timers[name] = info; + profileNames.push(name); } } @@ -94,7 +95,7 @@ export function isRunning(name: string): boolean { function countersProfileFunctionFactory(fn: F, name: string, type: MemberType = MemberType.Instance): F { profileNames.push(name); - return function() { + return function () { start(name); try { return fn.apply(this, arguments); @@ -105,7 +106,7 @@ function countersProfileFunctionFactory(fn: F, name: string, } function timelineProfileFunctionFactory(fn: F, name: string, type: MemberType = MemberType.Instance): F { - return type === MemberType.Instance ? function() { + return type === MemberType.Instance ? function () { const start = time(); try { return fn.apply(this, arguments); @@ -113,7 +114,7 @@ function timelineProfileFunctionFactory(fn: F, name: string, const end = time(); console.log(`Timeline: Modules: ${name} ${this} (${start}ms. - ${end}ms.)`); } - } : function() { + } : function () { const start = time(); try { return fn.apply(this, arguments); @@ -154,10 +155,10 @@ try { if (appConfig && appConfig.profiling) { enable(appConfig.profiling); } -} catch(e1) { +} catch (e1) { try { console.log("Profiling startup failed to figure out defaults from package.json, error: " + e1); - } catch(e2) { + } catch (e2) { // We can get here if an exception is thrown in the mksnapshot as there is no console there. } }