summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2017-09-12 07:56:07 -0400
committerBruno de Oliveira Abinader <bruno@mapbox.com>2017-09-12 07:56:07 -0400
commita0ed056f6191482f8a087726e66ade9cefb647a4 (patch)
tree315aa027467768fabbdd4ebd3140527e2266ccbc
parent8e01f52dd212c57646a9b0fa1c65039a003b78cc (diff)
downloadqtlocation-mapboxgl-upstream/shuffle-seed.tar.gz
[node] Shuffle seed supportupstream/shuffle-seed
-rw-r--r--platform/node/test/render.test.js28
1 files changed, 27 insertions, 1 deletions
diff --git a/platform/node/test/render.test.js b/platform/node/test/render.test.js
index ce549c1e27..b4933ce59e 100644
--- a/platform/node/test/render.test.js
+++ b/platform/node/test/render.test.js
@@ -7,6 +7,19 @@ const ignores = require('./ignores.json');
let tests;
let shuffle = false;
let recycleMap = false;
+let seed;
+
+// https://stackoverflow.com/a/1349426/229714
+function makeHash() {
+ const array = [];
+ const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+
+ for (let i = 0; i < 10; ++i)
+ array.push(possible.charAt(Math.floor(Math.random() * possible.length)));
+
+ // join array elements without commas.
+ return array.join('');
+}
function checkParameter(param) {
const index = tests.indexOf(param);
@@ -16,10 +29,23 @@ function checkParameter(param) {
return true;
}
+function checkValueParameter(defaultValue, param) {
+ const index = tests.findIndex((elem) => { return String(elem).startsWith(param); });
+ if (index === -1)
+ return defaultValue;
+
+ const split = String(tests.splice(index, 1)).split('=');
+ if (split.length !== 2)
+ return defaultValue;
+
+ return split[1];
+}
+
if (process.argv[1] === __filename && process.argv.length > 2) {
tests = process.argv.slice(2).filter((value, index, self) => { return self.indexOf(value) === index; });
shuffle = checkParameter('--shuffle');
+ seed = checkValueParameter(makeHash(), '--seed');
recycleMap = checkParameter('--recycle-map');
}
-suite.run('native', {tests, ignores, shuffle, recycleMap}, suiteImplementation);
+suite.run('native', { tests, ignores, shuffle, seed, recycleMap }, suiteImplementation);