iOS owner pattern changed to use WeakRef in order to prevent memory leaks.

Optimized list-view-tests.
Added time per test.
This commit is contained in:
hshristov
2015-10-22 10:26:59 +03:00
parent 9c0ac9e471
commit f72d79e65a
22 changed files with 863 additions and 791 deletions

View File

@@ -29,12 +29,23 @@ export interface TestInfoEntry {
testTimeout: number;
}
export function time(): number {
if (global.android) {
return java.lang.System.nanoTime() / 1000000; // 1 ms = 1000000 ns
}
else {
return CACurrentMediaTime() * 1000;
}
}
export var write = function write(message: string, type?: number) {
//console.log(message);
trace.write(message, trace.categories.Test, type);
}
var runTest = function (testInfo: TestInfoEntry) {
let start = time();
let duration;
try {
if (testInfo.instance) {
testInfo.testFunc.apply(testInfo.instance);
@@ -44,13 +55,15 @@ var runTest = function (testInfo: TestInfoEntry) {
}
if (testInfo.isTest) {
write("--- [" + testInfo.testName + "] OK", trace.messageType.info);
duration = time() - start;
write("--- [" + testInfo.testName + "] OK, duration: " + duration, trace.messageType.info);
testInfo.isPassed = true;
}
}
catch (e) {
if (testInfo.isTest) {
write("--- [" + testInfo.testName + "] FAILED: " + e.message, trace.messageType.error);
duration = time() - start;
write("--- [" + testInfo.testName + "] FAILED: " + e.message + ", duration: " + duration, trace.messageType.error);
testInfo.isPassed = false;
testInfo.errorMessage = e.message;
}
@@ -78,7 +91,7 @@ function runAsync(testInfo: TestInfoEntry, recursiveIndex: number, testTimeout?:
var error;
var isDone = false;
var handle;
var testStartTime = new Date().getTime();
var testStartTime = time();
//write("--- [" + testInfo.testName + "] Started at: " + testStartTime, trace.messageType.info);
var doneCallback = function (e: Error) {
if (e) {
@@ -93,23 +106,25 @@ function runAsync(testInfo: TestInfoEntry, recursiveIndex: number, testTimeout?:
testTimeout = defaultTimeout;
}
let duration;
var checkFinished = function () {
duration = time() - testStartTime;
if (isDone) {
write("--- [" + testInfo.testName + "] OK", trace.messageType.info);
write("--- [" + testInfo.testName + "] OK, duration: " + duration, trace.messageType.info);
//write("--- [" + testInfo.testName + "] took: " + (new Date().getTime() - testStartTime), trace.messageType.info);
testInfo.isPassed = true;
runTests(testsQueue, recursiveIndex + 1);
}
else if (error) {
write("--- [" + testInfo.testName + "] FAILED: " + error.message, trace.messageType.error);
write("--- [" + testInfo.testName + "] FAILED: " + error.message + ", duration: " + duration, trace.messageType.error);
//write("--- [" + testInfo.testName + "] took: " + (new Date().getTime() - testStartTime), trace.messageType.info);
testInfo.errorMessage = error.message;
runTests(testsQueue, recursiveIndex + 1);
}
else {
var testEndTime = new Date().getTime();
var testEndTime = time();
if (testEndTime - testStartTime > testTimeout) {
write("--- [" + testInfo.testName + "] TIMEOUT", trace.messageType.error);
write("--- [" + testInfo.testName + "] TIMEOUT, duration: " + duration, trace.messageType.error);
//write("--- [" + testInfo.testName + "] took: " + (testEndTime - testStartTime), trace.messageType.info);
testInfo.errorMessage = "Test timeout.";
runTests(testsQueue, recursiveIndex + 1);