summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Morris <mikemorris@users.noreply.github.com>2016-07-12 16:18:02 -0400
committerMike Morris <mikemorris@users.noreply.github.com>2016-07-13 00:02:14 -0400
commit9af3de60262b99c25b83b5e7ea25df1e72c4d2db (patch)
tree42e2184d4ba5913b8ffac9f6b85ab178e3617ed7
parent3613c71cfb68d47c3509f2f2350b0e239790e086 (diff)
downloadqtlocation-mapboxgl-9af3de60262b99c25b83b5e7ea25df1e72c4d2db.tar.gz
[node] move memory growth test into separate npm script
-rw-r--r--Makefile1
-rw-r--r--package.json1
-rw-r--r--platform/node/test/memory.test.js (renamed from platform/node/test/js/memory.test.js)24
3 files changed, 15 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index 165dbb8cce..4b10a77233 100644
--- a/Makefile
+++ b/Makefile
@@ -222,6 +222,7 @@ xnode: $(NODE_OUTPUT_PATH)/config.gypi $(GYP_DEPENDENCIES)
.PHONY: test-node
test-node: node
npm test
+ npm run test-memory
npm run test-suite
#### Qt targets #####################################################
diff --git a/package.json b/package.json
index ac3cd446c5..b6da164f09 100644
--- a/package.json
+++ b/package.json
@@ -35,6 +35,7 @@
"preinstall": "npm install node-pre-gyp",
"install": "node-pre-gyp install --fallback-to-build=false || make node",
"test": "tape platform/node/test/js/**/*.test.js",
+ "test-memory": "node --expose-gc platform/node/test/memory.test.js",
"test-suite": "node platform/node/test/render.test.js && node platform/node/test/query.test.js"
},
"gypfile": true,
diff --git a/platform/node/test/js/memory.test.js b/platform/node/test/memory.test.js
index 536342a649..ae165c1644 100644
--- a/platform/node/test/js/memory.test.js
+++ b/platform/node/test/memory.test.js
@@ -1,16 +1,15 @@
'use strict';
var fs = require('fs');
-var mbgl = require('../../../../lib/mapbox-gl-native');
+var mbgl = require('../../../lib/mapbox-gl-native');
var path = require('path');
var test = require('tape');
var testParams = {
mapPoolSize: 10,
- numRenderings: 30,
- heapGrowthThreshould: 256 * 1024, // 256 KB
-
- ratio: 2,
+ numRenderings: 100,
+ heapGrowthThreshold: 0,
+ ratio: 2
};
function readFixture(file) {
@@ -28,6 +27,11 @@ var tile_raster = readFixture('raster.tile');
var tile_vector = readFixture('vector.tile');
test('Memory', function(t) {
+ // Trigger garbage collection before starting test, then initialize
+ // heap size
+ if (typeof gc === 'function') gc();
+ var lastHeapSize = process.memoryUsage()['heapUsed'];
+
var options = {
request: function(req, callback) {
if (req.url == null) {
@@ -62,7 +66,6 @@ test('Memory', function(t) {
var renderCount = 0;
var heapGrowth = 0;
- var lastHeapSize = 0;
var interval = setInterval(function () {
if (mapPool.length == 0) {
@@ -81,22 +84,21 @@ test('Memory', function(t) {
mapPool.push(map);
if (renderCount % (testParams.numRenderings / 10) == 0) {
+ // Manually trigger garbage collection
+ if (typeof gc === 'function') gc();
+
var currentHeapSize = process.memoryUsage()['heapUsed'];
// Print some progress, so slow build bots don't timeout.
t.comment("Rendering (" + renderCount.toString() +
"/" + testParams.numRenderings.toString() + ")");
- if (lastHeapSize == 0) {
- lastHeapSize = currentHeapSize;
- }
-
heapGrowth = heapGrowth + currentHeapSize - lastHeapSize;
lastHeapSize = currentHeapSize;
}
if (++renderCount == testParams.numRenderings) {
- t.ok(heapGrowth < testParams.heapGrowthThreshould, heapGrowth);
+ t.ok(heapGrowth < testParams.heapGrowthThreshold, heapGrowth);
t.end();
clearInterval(interval);