polymech-astro/packages/node-murmurhash-native/test/persistent/test.gc.incremental.js
2025-08-25 08:22:26 +02:00

40 lines
871 B
JavaScript

"use strict";
if (!global.gc)
throw new Error("run with --expose-gc");
var gc = global.gc;
var kMaxLength = require('buffer').kMaxLength || 0x3fffffff;
var test = require("tap").test
, incr = require('../../incremental')
;
[
incr.MurmurHash,
incr.MurmurHash128x64,
incr.MurmurHash128x86
].forEach(function(MurmurHash) {
test(MurmurHash.name + " should not crash while under gc stress", function(t) {
var bigone = Buffer.allocUnsafeSlow(kMaxLength);
MurmurHash().update(bigone, function(err) {
t.error(err);
gc(); gc(); gc(); gc();
setImmediate(gc);
setImmediate(function(){ t.end(); });
});
bigone = undefined;
gc(); gc(); gc(); gc();
gc(); gc(); gc(); gc();
gc(); gc(); gc(); gc();
setImmediate(gc);
setImmediate(gc);
setImmediate(gc);
setImmediate(gc);
setImmediate(gc);
});
});