summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Morris <mikemorris@users.noreply.github.com>2016-05-12 14:58:51 -0400
committerMike Morris <mikemorris@users.noreply.github.com>2016-05-12 14:58:51 -0400
commitf6692ff7393661171861cc4a422479db0cc37e90 (patch)
treef3545750aede323064fc184696c4aa81637ff9ed
parent9567c1699d8035ecfedf7dfc631b817a12ee584f (diff)
downloadqtlocation-mapboxgl-f6692ff7393661171861cc4a422479db0cc37e90.tar.gz
add simple leak test
-rw-r--r--.travis.yml5
-rw-r--r--package.json3
-rw-r--r--platform/node/test/js/leak.test.js30
3 files changed, 34 insertions, 4 deletions
diff --git a/.travis.yml b/.travis.yml
index f362a8a72e..2cc5b057d8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -46,7 +46,7 @@ after_script:
matrix:
include:
- # Clang 3.5 - Release - Node
+ # Clang 3.5 - Debug - Node
- os: linux
sudo: false
language: node
@@ -56,8 +56,7 @@ matrix:
script:
- make node
- nvm use system
- - ASAN_OPTIONS=detect_leaks=1 npm test
- - ASAN_OPTIONS=detect_leaks=1 npm run test-suite
+ - ASAN_OPTIONS=detect_leaks=1 npm run leak
after_script:
- ccache --show-stats
- ./platform/node/scripts/after_script.sh ${TRAVIS_JOB_NUMBER} ${TRAVIS_TAG:-}
diff --git a/package.json b/package.json
index c7d82f1e15..0baa87beec 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,8 @@
"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-suite": "node platform/node/test/render.test.js"
+ "test-suite": "node platform/node/test/render.test.js",
+ "leak": "node platform/node/test/js/leak.test.js"
},
"gypfile": true,
"binary": {
diff --git a/platform/node/test/js/leak.test.js b/platform/node/test/js/leak.test.js
new file mode 100644
index 0000000000..5ffe8d2880
--- /dev/null
+++ b/platform/node/test/js/leak.test.js
@@ -0,0 +1,30 @@
+'use strict';
+
+var test = require('tape');
+var mbgl = require('../../../../lib/mapbox-gl-native');
+var fs = require('fs');
+var path = require('path');
+var style = require('../fixtures/style.json');
+
+var options = {
+ request: function(req, callback) {
+ fs.readFile(path.join(__dirname, '..', req.url), function(err, data) {
+ callback(err, { data: data });
+ });
+ }
+};
+
+test('Leak', function(t) {
+ t.test('returns an image', function(t) {
+ var map = new mbgl.Map(options);
+ map.load(style);
+ map.render({}, function(err, pixels) {
+ t.error(err);
+ map.release();
+ t.ok(pixels);
+ t.ok(pixels instanceof Buffer);
+ t.equal(pixels.length, 512 * 512 * 4)
+ t.end();
+ });
+ });
+});