From 98db7babccfbf2abe5de4fee6bcaa97aa7ebfe75 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Thu, 1 Aug 2013 16:00:40 +0200 Subject: [PATCH] test: fix pummel/test-net-connect-memleak * Run the garbage collector before creating the big array. It doesn't matter now but if in the future something in node.js core creates a lot of reclaimable garbage, that will break the test's expectation. * The first RSS check was being done too late. The garbage collector might have run before the check, throwing off the 'reclaimed memory' calculation. * Due to changes in how V8 represents the big array internally, the actual memory usage is just below 256 MB on x64. Update the test's expectation. --- test/pummel/test-net-connect-memleak.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/pummel/test-net-connect-memleak.js b/test/pummel/test-net-connect-memleak.js index c3f2daac2c..3e7503864a 100644 --- a/test/pummel/test-net-connect-memleak.js +++ b/test/pummel/test-net-connect-memleak.js @@ -28,9 +28,12 @@ var net = require('net'); assert(typeof gc === 'function', 'Run this test with --expose-gc'); net.createServer(function() {}).listen(common.PORT); +var before = 0; (function() { // 2**26 == 64M entries + gc(); for (var i = 0, junk = [0]; i < 26; ++i) junk = junk.concat(junk); + before = process.memoryUsage().rss; net.createConnection(common.PORT, '127.0.0.1', function() { assert(junk.length != 0); // keep reference alive @@ -40,11 +43,10 @@ net.createServer(function() {}).listen(common.PORT); })(); function done() { - var before = process.memoryUsage().rss; gc(); var after = process.memoryUsage().rss; var reclaimed = (before - after) / 1024; console.log('%d kB reclaimed', reclaimed); - assert(reclaimed > 256 * 1024); // it's more like 512M on x64 + assert(reclaimed > 128 * 1024); // It's around 256 MB on x64. process.exit(); }