X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=ts%2Ftest%2Ftests.mts;h=b72703e7bc5727bc59b714a5f5941300d0ffb7f9;hb=cf5dbd06f37b9e98d391a93e9b9299aed0c95995;hp=7c3716535f34f77e7e0789a45b646985333c1766;hpb=b55840f98398537f649f40959e8403dc49b4d48e;p=ldk-java diff --git a/ts/test/tests.mts b/ts/test/tests.mts index 7c371653..b72703e7 100644 --- a/ts/test/tests.mts +++ b/ts/test/tests.mts @@ -12,18 +12,11 @@ tests.push(async () => { console.assert(rawldk.CResult_boolLightningErrorZ_is_ok(result)); console.assert(rawldk.CResult_boolLightningErrorZ_get_ok(result)); rawldk.CResult_boolLightningErrorZ_free(result); - console.assert(rawldk.CResult_boolLightningErrorZ_ok(false) == result); // malloc doesn't need to guarantee this, but currently does - console.assert(rawldk.CResult_boolLightningErrorZ_is_ok(result)); - console.assert(!rawldk.CResult_boolLightningErrorZ_get_ok(result)); - rawldk.CResult_boolLightningErrorZ_free(result); + const second_res = rawldk.CResult_boolLightningErrorZ_ok(false); + console.assert(rawldk.CResult_boolLightningErrorZ_is_ok(second_res)); + console.assert(!rawldk.CResult_boolLightningErrorZ_get_ok(second_res)); + rawldk.CResult_boolLightningErrorZ_free(second_res); - /*var pk_arr = []; - for (var i = 0; i < 33; i++) { pk_arr[i] = 42; } - const pk_bytes = encodeUint8Array(pk_arr); - const pk_res = wasm.TS_CResult_PublicKeyErrorZ_ok(pk_bytes); - console.assert(wasm.TS_CResult_PublicKeyErrorZ_is_ok(pk_res)); - const pk_res_bytes = wasm.TS_LDKCResult_PublicKeyErrorZ_get_ok(pk_res); - wasm.TS_CResult_PublicKeyErrorZ_free(pk_res);*/ return true; }); @@ -169,5 +162,19 @@ export async function run_tests(wasm_path: string) { console.log("test results: " + results); const result = results.every((v) => { return v === true }); console.log("all tests passed: " + result); - return result; + if (result !== true) { return result; } + + const allocs_finished = new Promise((resolve, reject) => { + var loop_count = 0; + const interval_id = setInterval(() => { + const alloc_count = rawldk.getRemainingAllocationCount(); + if (loop_count % 20 == 0) + console.log("Remaining LDK allocation count: " + alloc_count); + // Note that there are currently 9 leaks in the above tests. At least some are known - look for XXX in bindings.c + if (alloc_count <= 10) { resolve(true); clearInterval(interval_id); } + loop_count += 1; + if (loop_count > 30*2) { resolve(false); clearInterval(interval_id); rawldk.debugPrintRemainingAllocs(); } + }, 500); + }); + return allocs_finished; }