[node] Shuffle seed support

This commit is contained in:
Bruno de Oliveira Abinader
2017-09-12 07:56:07 -04:00
parent 161c5ed4f5
commit bed96c800c

View File

@@ -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);