mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 11:42:04 +08:00
Made two memory leak tests async so that GC could be triggered.
This commit is contained in:
@ -94,7 +94,7 @@ export function test_handlerIsCalled_WithTargetAsThis() {
|
|||||||
TKUnit.assert(callbackCalled, "Handler not called.");
|
TKUnit.assert(callbackCalled, "Handler not called.");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function test_listnerDoesNotRetainTarget() {
|
export function test_listnerDoesNotRetainTarget(done) {
|
||||||
var source = new observable.Observable();
|
var source = new observable.Observable();
|
||||||
var target = new Target();
|
var target = new Target();
|
||||||
|
|
||||||
@ -102,12 +102,22 @@ export function test_listnerDoesNotRetainTarget() {
|
|||||||
|
|
||||||
var targetRef = new WeakRef(target);
|
var targetRef = new WeakRef(target);
|
||||||
target = undefined;
|
target = undefined;
|
||||||
helper.forceGC();
|
|
||||||
|
|
||||||
TKUnit.assert(!targetRef.get(), "Target should be released after GC");
|
TKUnit.waitUntilReady(() => {
|
||||||
|
helper.forceGC();
|
||||||
|
return !targetRef.get();
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
TKUnit.assert(!targetRef.get(), "Target should be released after GC");
|
||||||
|
done(null);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
done(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function test_listnerDoesNotRetainSource() {
|
export function test_listnerDoesNotRetainSource(done) {
|
||||||
var source = new observable.Observable();
|
var source = new observable.Observable();
|
||||||
var target = new Target();
|
var target = new Target();
|
||||||
|
|
||||||
@ -115,9 +125,19 @@ export function test_listnerDoesNotRetainSource() {
|
|||||||
|
|
||||||
var sourceRef = new WeakRef(source);
|
var sourceRef = new WeakRef(source);
|
||||||
source = undefined;
|
source = undefined;
|
||||||
helper.forceGC();
|
|
||||||
|
|
||||||
TKUnit.assert(!sourceRef.get(), "Source should be released after GC");
|
TKUnit.waitUntilReady(() => {
|
||||||
|
helper.forceGC();
|
||||||
|
return !sourceRef.get();
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
TKUnit.assert(!sourceRef.get(), "Source should be released after GC");
|
||||||
|
done(null);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
done(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function test_handlerIsDetached_WhenAllListenersAreRemoved() {
|
export function test_handlerIsDetached_WhenAllListenersAreRemoved() {
|
||||||
|
Reference in New Issue
Block a user