0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-11-24 08:30:56 +01:00

SERVER-24248 Run multiversion tests with different storage engines

This reverts commit 45d31b50bd.
This commit is contained in:
Jonathan Abrahams 2016-08-25 09:40:16 -04:00
parent 15050f4936
commit 657074a4ea
18 changed files with 179 additions and 68 deletions

View File

@ -2,8 +2,11 @@ selector:
js_test:
roots:
- jstests/multiVersion/*.js
exclude_files:
# TODO: SERVER-21578
exclude_files:
# Multi storageEngine tests
- jstests/multiVersion/mixed_storage_version_replication.js
- jstests/multiVersion/transitioning_to_and_from_WT.js
# TODO: SERVER-21578
- jstests/multiVersion/balancer_multiVersion_detect.js
# Multiversion tests start their own mongod's.

View File

@ -0,0 +1,13 @@
selector:
js_test:
roots:
- jstests/multiVersion/mixed_storage_version_replication.js
- jstests/multiVersion/transitioning_to_and_from_WT.js
# Multiversion tests start their own mongod's.
executor:
js_test:
config:
shell_options:
eval: "load('jstests/libs/override_methods/multiversion_override_balancer_control.js');"
nodb: ''

View File

@ -1773,7 +1773,29 @@ tasks:
- func: "run tests"
vars:
path_prefix: PATH=$PATH:/data/multiversion
resmoke_args: --suites=multiversion
resmoke_args: --suites=multiversion --storageEngine=mmapv1 --excludeWithAnyTags=requires_wiredtiger
run_multiple_jobs: true
- <<: *task_template
name: multiversion_WT
commands:
- func: "do setup"
- func: "do multiversion setup"
- func: "run tests"
vars:
path_prefix: PATH=$PATH:/data/multiversion
resmoke_args: --suites=multiversion --storageEngine=wiredTiger --excludeWithAnyTags=requires_mmapv1
run_multiple_jobs: true
- <<: *task_template
name: multiversion_multistorage_engine
commands:
- func: "do setup"
- func: "do multiversion setup"
- func: "run tests"
vars:
path_prefix: PATH=$PATH:/data/multiversion
resmoke_args: --suites=multiversion_multistorage_engine
run_multiple_jobs: true
- <<: *task_template
@ -2970,6 +2992,8 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: multiversion_multistorage_engine
- name: noPassthrough
- name: noPassthrough_WT
- name: noPassthroughWithMongod
@ -3364,6 +3388,7 @@ buildvariants:
- name: mongosTest
- name: mmap
- name: multiversion
- name: multiversion_WT
- name: noPassthrough
- name: noPassthrough_WT
- name: noPassthroughWithMongod
@ -3484,6 +3509,7 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: noPassthrough
- name: noPassthrough_WT
- name: noPassthroughWithMongod
@ -3601,6 +3627,7 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: noPassthrough
- name: noPassthrough_WT
- name: noPassthroughWithMongod
@ -4133,6 +4160,7 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: noPassthrough
- name: noPassthrough_WT
- name: noPassthroughWithMongod
@ -4361,6 +4389,8 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: multiversion_multistorage_engine
- name: noPassthrough
- name: noPassthrough_WT
- name: noPassthroughWithMongod
@ -5166,6 +5196,8 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: multiversion_multistorage_engine
- name: noPassthrough
- name: noPassthroughWithMongod
- name: noPassthroughWithMongod_WT
@ -5387,6 +5419,7 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: noPassthrough
- name: noPassthrough_WT
- name: noPassthroughWithMongod
@ -5505,6 +5538,7 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: noPassthrough
- name: noPassthrough_WT
- name: noPassthroughWithMongod
@ -6294,6 +6328,7 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: noPassthrough
- name: noPassthrough_WT
- name: noPassthroughWithMongod
@ -6555,6 +6590,7 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: noPassthrough
- name: noPassthrough_WT
- name: noPassthroughWithMongod
@ -6874,6 +6910,7 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: noPassthrough
- name: noPassthrough_WT
- name: noPassthroughWithMongod
@ -6994,6 +7031,7 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: noPassthrough
- name: noPassthrough_WT
- name: noPassthroughWithMongod
@ -7529,6 +7567,8 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: multiversion_multistorage_engine
- name: noPassthrough
- name: noPassthroughWithMongod
- name: noPassthroughWithMongod_WT
@ -7695,6 +7735,8 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: multiversion_multistorage_engine
- name: noPassthrough
- name: noPassthroughWithMongod
- name: noPassthroughWithMongod_WT
@ -7842,6 +7884,7 @@ buildvariants:
- name: mmap
- name: mongosTest
- name: multiversion
- name: multiversion_WT
- name: noPassthrough
- name: noPassthroughWithMongod
- name: noPassthroughWithMongod_WT

View File

@ -1,5 +1,8 @@
// Test the downgrade of a replica set from latest version
// to last-stable version succeeds, while reads and writes continue.
//
// @tags: [requires_mmapv1]
// Note - downgrade from 3.3 to 3.2 is not possible for wiredTiger (SERVER-19703 & SERVER-23960).
load('./jstests/multiVersion/libs/multi_rs.js');
load('./jstests/libs/test_background_ops.js');
@ -14,7 +17,8 @@ var nodes = {
n3: {binVersion: newVersion}
};
var rst = new ReplSetTest({name: name, nodes: nodes, nodeOptions: {storageEngine: 'mmapv1'}});
var storageEngine = "mmapv1";
var rst = new ReplSetTest({name: name, nodes: nodes, nodeOptions: {storageEngine: storageEngine}});
rst.startSet();
var replSetConfig = rst.getReplSetConfig();
replSetConfig.protocolVersion = 0;
@ -41,7 +45,7 @@ jsTest.log("Starting parallel operations during downgrade..");
var joinFindInsert = startParallelOps(primary, insertDocuments, [rst.getURL(), coll]);
jsTest.log("Downgrading replica set..");
rst.upgradeSet({binVersion: oldVersion});
rst.upgradeSet({binVersion: oldVersion, storageEngine: storageEngine});
jsTest.log("Downgrade complete.");
primary = rst.getPrimary();

View File

@ -18,6 +18,7 @@ var singleNodeTests = {
'dumpDir': [dumpDir],
'testDbpath': [testDbpath],
'dumpType': ["mongod"],
'restoreType': ["mongod"]
'restoreType': ["mongod"],
'storageEngine': [jsTest.options().storageEngine || "wiredTiger"]
};
runAllDumpRestoreTests(singleNodeTests);

View File

@ -16,7 +16,8 @@ var shardedDumpTests = {
'dumpDir': [dumpDir],
'testDbpath': [testDbpath],
'dumpType': ["mongos"],
'restoreType': ["mongod"]
'restoreType': ["mongod"],
'storageEngine': [jsTest.options().storageEngine || "wiredTiger"]
};
runAllDumpRestoreTests(shardedDumpTests);
@ -29,6 +30,7 @@ var shardedRestoreTests = {
'dumpDir': [dumpDir],
'testDbpath': [testDbpath],
'dumpType': ["mongod"],
'restoreType': ["mongos"]
'restoreType': ["mongos"],
'storageEngine': [jsTest.options().storageEngine || "wiredTiger"]
};
runAllDumpRestoreTests(shardedRestoreTests);

View File

@ -1,5 +1,7 @@
// Tests upgrade/downgrade between 2dsphere index versions 2 and 3
// @tags: [requires_mmapv1]
function generatePoint() {
var longitude = Math.random() * 10 - 5;
var latitude = Math.random() * 10 - 5;
@ -49,7 +51,9 @@ function get2dsphereIndexVersion(coll) {
var nearQuery = {geometry: {$near: {$geometry: {type: "Point", coordinates: [0, 0]}}}};
var mongod = MongoRunner.runMongod({binVersion: "3.0"});
// SERVER-25129 - Only runs in mmapv1
var storageEngine = "mmapv1";
var mongod = MongoRunner.runMongod({binVersion: "3.0", storageEngine: storageEngine});
var coll = getCollection(mongod);
var res = coll.insert(generatePoints(10));
res = coll.insert(generatePolygons(10));
@ -60,7 +64,8 @@ assert.eq(res.itcount(), 20);
// Version 2 index should still work fine in latest
MongoRunner.stopMongod(mongod);
mongod = MongoRunner.runMongod({binVersion: "latest", restart: mongod});
mongod =
MongoRunner.runMongod({binVersion: "latest", restart: mongod, storageEngine: storageEngine});
coll = getCollection(mongod);
assert.eq(2, get2dsphereIndexVersion(coll));
res = coll.find(nearQuery);
@ -75,18 +80,20 @@ assert.eq(res.itcount(), 20);
// downgrading shouldn't be able to startup because of assertion error
MongoRunner.stopMongod(mongod);
var failed_mongod = MongoRunner.runMongod({binVersion: "3.0", restart: mongod});
var failed_mongod =
MongoRunner.runMongod({binVersion: "3.0", restart: mongod, storageEngine: storageEngine});
assert.eq(failed_mongod, null);
// upgrade, reindex, then downgrade to fix
mongod = MongoRunner.runMongod({binVersion: "latest", restart: mongod});
mongod =
MongoRunner.runMongod({binVersion: "latest", restart: mongod, storageEngine: storageEngine});
coll = getCollection(mongod);
assert.eq(3, get2dsphereIndexVersion(coll));
res = coll.dropIndex({geometry: "2dsphere"});
res = coll.createIndex({geometry: "2dsphere"}, {"2dsphereIndexVersion": 2});
assert.eq(2, get2dsphereIndexVersion(coll));
MongoRunner.stopMongod(mongod);
mongod = MongoRunner.runMongod({binVersion: "3.0", restart: mongod});
mongod = MongoRunner.runMongod({binVersion: "3.0", restart: mongod, storageEngine: storageEngine});
assert.neq(mongod, null);
coll = getCollection(mongod);
assert.eq(2, get2dsphereIndexVersion(coll));

View File

@ -25,6 +25,7 @@
var defaultOptions = {
dbpath: dbpath,
noCleanData: true,
storageEngine: jsTest.options().storageEngine
};
// Start the old version.

View File

@ -14,7 +14,8 @@ load('./jstests/multiVersion/libs/verify_collection_data.js');
// 'dumpDir' : dumpDir,
// 'testDbpath' : testDbpath,
// 'dumpType' : "mongos",
// 'restoreType' : "mongod" // "mongos" also supported
// 'restoreType' : "mongod", // "mongos" also supported
// 'storageEngine': [ "mmapv1" ]
// }
//
// The first four fields are which versions of the various binaries to use in the test.
@ -37,7 +38,8 @@ function multiVersionDumpRestoreTest(configObj) {
'dumpDir',
'testDbpath',
'dumpType',
'restoreType'
'restoreType',
'storageEngine'
];
var i;
@ -53,7 +55,10 @@ function multiVersionDumpRestoreTest(configObj) {
var shardingTestConfig = {
name: testBaseName + "_sharded_source",
mongos: [{binVersion: configObj.serverSourceVersion}],
shards: [{binVersion: configObj.serverSourceVersion}],
shards: [{
binVersion: configObj.serverSourceVersion,
storageEngine: configObj.storageEngine
}],
config: [{binVersion: configObj.serverSourceVersion}],
// TODO: SERVER-24163 remove after v3.4
waitForCSRSSecondaries: false
@ -61,8 +66,11 @@ function multiVersionDumpRestoreTest(configObj) {
var shardingTest = new ShardingTest(shardingTestConfig);
var serverSource = shardingTest.s;
} else {
var serverSource = MongoRunner.runMongod(
{binVersion: configObj.serverSourceVersion, dbpath: configObj.testDbpath});
var serverSource = MongoRunner.runMongod({
binVersion: configObj.serverSourceVersion,
dbpath: configObj.testDbpath,
storageEngine: configObj.storageEngine
});
}
var sourceDB = serverSource.getDB(testBaseName);
@ -102,7 +110,8 @@ function multiVersionDumpRestoreTest(configObj) {
// Restore using the specified version of mongorestore
if (configObj.restoreType === "mongod") {
var serverDest = MongoRunner.runMongod({binVersion: configObj.serverDestVersion});
var serverDest = MongoRunner.runMongod(
{binVersion: configObj.serverDestVersion, storageEngine: configObj.storageEngine});
MongoRunner.runMongoTool("mongorestore", {
dir: configObj.dumpDir + "/" + testBaseName,
@ -114,7 +123,8 @@ function multiVersionDumpRestoreTest(configObj) {
var shardingTestConfig = {
name: testBaseName + "_sharded_dest",
mongos: [{binVersion: configObj.serverDestVersion}],
shards: [{binVersion: configObj.serverDestVersion}],
shards:
[{binVersion: configObj.serverDestVersion, storageEngine: configObj.storageEngine}],
config: [{binVersion: configObj.serverDestVersion}],
// TODO: SERVER-24163 remove after v3.4
waitForCSRSSecondaries: false
@ -234,7 +244,8 @@ function getPermutationIterator(permsObj) {
// 'dumpDir' : [ dumpDir ],
// 'testDbpath' : [ testDbpath ],
// 'dumpType' : [ "mongod", "mongos" ],
// 'restoreType' : [ "mongod", "mongos" ]
// 'restoreType' : [ "mongod", "mongos" ],
// 'storageEngine': [ "mmapv1" ]
// }
//
// This function will run a test for each possible combination of the parameters. See comments on

View File

@ -3,8 +3,8 @@
//
/**
* Restarts the specified binaries in options to the binVersion. Note: this does not
* perform any upgrade operations.
* Restarts the specified binaries in options with the specified binVersion.
* Note: this does not perform any upgrade operations.
*
* @param binVersion {string}
* @param options {Object} format:

View File

@ -1,5 +1,6 @@
// Test the downgrade of a replica set from latest version
// to last-stable version succeeds, while reads and writes continue.
// @tags: [requires_mmapv1]
load('./jstests/multiVersion/libs/multi_rs.js');
load('./jstests/libs/test_background_ops.js');
@ -15,7 +16,9 @@ var nodes = {
n3: {binVersion: newVersion}
};
var rst = new ReplSetTest({name: name, nodes: nodes, nodeOptions: {storageEngine: 'mmapv1'}});
// SERVER-25132 - Only runs in mmapv1
var storageEngine = "mmapv1";
var rst = new ReplSetTest({name: name, nodes: nodes, nodeOptions: {storageEngine: storageEngine}});
rst.startSet();
var replSetConfig = rst.getReplSetConfig();
replSetConfig.protocolVersion = 0;
@ -42,7 +45,7 @@ jsTest.log("Starting parallel operations during downgrade..");
var joinFindInsert = startParallelOps(primary, insertDocuments, [rst.getURL(), coll]);
jsTest.log("Downgrading replica set..");
rst.upgradeSet({binVersion: oldVersion});
rst.upgradeSet({binVersion: oldVersion, storageEngine: storageEngine});
jsTest.log("Downgrade complete.");
primary = rst.getPrimary();

View File

@ -1,6 +1,8 @@
/**
* Test the upgrade process for 2.6 ~~> 3.2 and 3.0 ~~> 3.2, where mmapv1 should continue to be the
* default storage engine. Repeat the process with --directoryperdb set.
*
* @tags: [requires_mmapv1]
*/
(function() {
'use strict';
@ -22,6 +24,11 @@
},
];
// Since this test requires not specifying the storageEngine, delete it before invoking test.
if (typeof TestData === "object" && TestData !== null) {
delete TestData.storageEngine;
}
// The mongod should start up with mmapv1 when the --storageEngine flag is omitted, or when
// --storageEngine=mmapv1 is explicitly specified.
testCases.forEach(function(testCase) {

View File

@ -30,7 +30,7 @@
noCleanData: true,
// We explicitly set the storage engine as part of the options because not all versions
// being tested automatically detect it from the storage.bson file.
storageEngine: jsTest.options().storageEngine || "wiredTiger",
storageEngine: jsTest.options().storageEngine,
};
if (defaultOptions.storageEngine === "mmapv1") {

View File

@ -31,6 +31,7 @@
var defaultOptions = {
dbpath: dbpath,
noCleanData: true,
storageEngine: jsTest.options().storageEngine
};
// Start the old version.

View File

@ -4,7 +4,9 @@
(function() {
'use strict';
var conn30 = MongoRunner.runMongod({binVersion: '3.0'});
var storageEngine = jsTest.options().storageEngine;
var conn30 = MongoRunner.runMongod({binVersion: '3.0', storageEngine: storageEngine});
assert.neq(conn30, null, 'unable to start 3.0 mongod');
// Force writeMode to "commands" so that we can check the results of write operations.
@ -32,7 +34,7 @@
// With the latest version of mongod, forcing the readMode to "compatibility" and then asking
// for the readMode should cause the shell to resolve the readMode to "commands".
var connLatest = MongoRunner.runMongod({});
var connLatest = MongoRunner.runMongod({storageEngine: storageEngine});
assert.neq(connLatest, null, 'unable to start 3.2 mongod');
connLatest.forceReadMode('compatibility');
assert.eq('commands', connLatest.readMode());

View File

@ -15,9 +15,11 @@ load('./jstests/multiVersion/libs/verify_versions.js');
var versionsNotSubjectToSERVER23299 = ['latest', '3.0'];
function doTest(priorVersion, expectTempToDrop) {
var storageEngine = jsTest.options().storageEngine;
jsTest.log((expectTempToDrop ? "" : " not") + " expecting temp collections created in " +
priorVersion + " to be dropped when starting latest mongod version");
var mongod = MongoRunner.runMongod({binVersion: priorVersion});
var mongod =
MongoRunner.runMongod({binVersion: priorVersion, storageEngine: storageEngine});
assert.binVersion(mongod, priorVersion);
assert.commandWorked(mongod.getDB("test").createCollection("tempcoll", {temp: true}));
assert.writeOK(mongod.getDB("test").tempcoll.insert({_id: 0}));
@ -25,8 +27,9 @@ load('./jstests/multiVersion/libs/verify_versions.js');
MongoRunner.stopMongod(mongod);
var newOpts = Object.extend({}, mongod.fullOptions);
mongod = MongoRunner.runMongod(Object.extend(Object.extend({}, mongod.fullOptions),
{restart: true, binVersion: "latest"}));
mongod = MongoRunner.runMongod(
Object.extend(Object.extend({}, mongod.fullOptions),
{restart: true, binVersion: "latest", storageEngine: storageEngine}));
assert.binVersion(mongod, "latest");
assert.eq(expectTempToDrop ? 0 : 1, mongod.getDB("test").tempcoll.find().itcount());
}

View File

@ -2,6 +2,8 @@
* Creates a replica set with a 3.2 primary and a 3.0 secondary. Tests that the
* "indexOptionDefaults" specified to collection creation are replicated by the 3.2 primary, but
* ignored by the 3.0 secondary.
*
* @tags: [requires_wiredtiger]
*/
(function() {
'use strict';

View File

@ -906,9 +906,11 @@ var MongoRunner, _startMongod, startMongoProgram, runMongoProgram, startMongoPro
* Returns a new argArray with any test-specific arguments added.
*/
function appendSetParameterArgs(argArray) {
// programName includes the version, e.g., mongod-3.2.
// baseProgramName is the program name without any version information, e.g., mongod.
var programName = argArray[0];
if (programName.endsWith('mongod') || programName.endsWith('mongos') ||
programName.startsWith('mongod-') || programName.startsWith('mongos-')) {
var [baseProgramName, programVersion] = programName.split("-");
if (baseProgramName === 'mongod' || baseProgramName === 'mongos') {
if (jsTest.options().enableTestCommands) {
argArray.push(...['--setParameter', "enableTestCommands=1"]);
}
@ -931,7 +933,8 @@ var MongoRunner, _startMongod, startMongoProgram, runMongoProgram, startMongoPro
argArray.push(...['--setParameter', "enableLocalhostAuthBypass=false"]);
}
// mongos only options. Note: excludes mongos with version suffix (ie. mongos-3.0).
// Since options may not be backward compatible, mongos options are not
// set on older versions, e.g., mongos-3.0.
if (programName.endsWith('mongos')) {
// apply setParameters for mongos
if (jsTest.options().setParametersMongos) {
@ -943,45 +946,50 @@ var MongoRunner, _startMongod, startMongoProgram, runMongoProgram, startMongoPro
});
}
}
}
// mongod only options. Note: excludes mongos with version suffix (ie. mongos-3.0).
else if (programName.endsWith('mongod')) {
// set storageEngine for mongod
if (jsTest.options().storageEngine) {
} else if (baseProgramName === 'mongod') {
// Set storageEngine for mongod. There was no storageEngine parameter before 3.0.
if (jsTest.options().storageEngine &&
(!programVersion || parseInt(programVersion.split(".")[0]) >= 3)) {
if (argArray.indexOf("--storageEngine") < 0) {
argArray.push(...['--storageEngine', jsTest.options().storageEngine]);
}
}
if (jsTest.options().storageEngineCacheSizeGB) {
if (jsTest.options().storageEngine === "rocksdb") {
argArray.push(
...['--rocksdbCacheSizeGB', jsTest.options().storageEngineCacheSizeGB]);
} else if (jsTest.options().storageEngine === "wiredTiger" ||
!jsTest.options().storageEngine) {
argArray.push(...['--wiredTigerCacheSizeGB',
jsTest.options().storageEngineCacheSizeGB]);
// Since options may not be backward compatible, mongod options are not
// set on older versions, e.g., mongod-3.0.
if (programName.endsWith('mongod')) {
if (jsTest.options().storageEngine === "wiredTiger" ||
!jsTest.options().storageEngine) {
if (jsTest.options().storageEngineCacheSizeGB) {
argArray.push(...['--wiredTigerCacheSizeGB',
jsTest.options().storageEngineCacheSizeGB]);
}
if (jsTest.options().wiredTigerEngineConfigString) {
argArray.push(...['--wiredTigerEngineConfigString',
jsTest.options().wiredTigerEngineConfigString]);
}
if (jsTest.options().wiredTigerCollectionConfigString) {
argArray.push(...['--wiredTigerCollectionConfigString',
jsTest.options().wiredTigerCollectionConfigString]);
}
if (jsTest.options().wiredTigerIndexConfigString) {
argArray.push(...['--wiredTigerIndexConfigString',
jsTest.options().wiredTigerIndexConfigString]);
}
} else if (jsTest.options().storageEngine === "rocksdb") {
if (jsTest.options().storageEngineCacheSizeGB) {
argArray.push(...['--rocksdbCacheSizeGB',
jsTest.options().storageEngineCacheSizeGB]);
}
}
}
if (jsTest.options().wiredTigerEngineConfigString) {
argArray.push(...['--wiredTigerEngineConfigString',
jsTest.options().wiredTigerEngineConfigString]);
}
if (jsTest.options().wiredTigerCollectionConfigString) {
argArray.push(...['--wiredTigerCollectionConfigString',
jsTest.options().wiredTigerCollectionConfigString]);
}
if (jsTest.options().wiredTigerIndexConfigString) {
argArray.push(...['--wiredTigerIndexConfigString',
jsTest.options().wiredTigerIndexConfigString]);
}
// apply setParameters for mongod
if (jsTest.options().setParameters) {
var params = jsTest.options().setParameters.split(",");
if (params && params.length > 0) {
params.forEach(function(p) {
if (p)
argArray.push(...['--setParameter', p]);
});
// apply setParameters for mongod
if (jsTest.options().setParameters) {
var params = jsTest.options().setParameters.split(",");
if (params && params.length > 0) {
params.forEach(function(p) {
if (p)
argArray.push(...['--setParameter', p]);
});
}
}
}
}