UNPKG

libxmljs

Version:

libxml bindings for v8 javascript engine

31 lines 1.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var libxml = require("../index"); if (!global.gc) { throw new Error("must run with --expose_gc for memory management tests"); } module.exports.detect_leaks = function (assert) { collectGarbage(5); if (libxml.nodeCount() > 0) { console.log("tests leak " + libxml.nodeCount() + " nodes"); assert.ok(false); } assert.done(); }; function collectGarbage(minCycles, maxCycles) { var _a; minCycles = minCycles || 3; maxCycles = maxCycles || 10; var cycles = 0; var freedRss = 0; var usage = process.memoryUsage(); do { (_a = global.gc) === null || _a === void 0 ? void 0 : _a.call(global); var usageAfterGc = process.memoryUsage(); freedRss = usage.rss - usageAfterGc.rss; usage = usageAfterGc; cycles++; } while (cycles < minCycles || (freedRss !== 0 && cycles < maxCycles)); return usage; } //# sourceMappingURL=z_memory_leak.js.map