Skip to content

Commit 577f7ac

Browse files
committed
pass arguments to isolate performance tests
1 parent d2baf67 commit 577f7ac

File tree

3 files changed

+70
-43
lines changed

3 files changed

+70
-43
lines changed

tasks/test_performance.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@ glob(pathToJasminePerformanceTests + '/*.js').then(function(files) {
2020
'karma', 'start',
2121
path.join(constants.pathToRoot, 'test', 'jasmine', 'karma.conf.js'),
2222
'--performanceTest=' + path.basename(file),
23-
'--nowatch'
23+
'--nowatch',
24+
'--tracesType=scattergl',
25+
'--tracesMode=markers',
26+
'--tracesCount=1',
27+
'--tracesPoints=1000',
2428
].join(' ');
2529

2630
console.log('Running: ' + cmd);

test/jasmine/karma.conf.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ var hasSpecReporter = reporters.indexOf('spec') !== -1;
156156
if(!hasSpecReporter && argv.showSkipped) reporters.push('spec');
157157
if(argv.verbose) reporters.push('verbose');
158158

159-
function func(config) {
159+
var func = function(config) {
160160
// level of logging
161161
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
162162
//
@@ -172,8 +172,18 @@ function func(config) {
172172
level: 'debug'
173173
};
174174

175+
if(isPerformanceTest) {
176+
func.defaultConfig.client = func.defaultConfig.client || {};
177+
func.defaultConfig.client.testCase = {
178+
tracesType: config.tracesType,
179+
tracesMode: config.tracesMode,
180+
tracesCount: config.tracesCount,
181+
tracesPoints: config.tracesPoints,
182+
};
183+
}
184+
175185
config.set(func.defaultConfig);
176-
}
186+
};
177187

178188
func.defaultConfig = {
179189

test/jasmine/performance_tests/all_test.js

Lines changed: 53 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -276,59 +276,72 @@ describe('Performance test various traces', function() {
276276
});
277277

278278
tests.forEach(function(spec, index) {
279-
samples.forEach(function(t) {
280-
it(
281-
spec.nTraces + ' ' + spec.traceType +
282-
(spec.mode ? ' | mode: ' + spec.mode : '') +
283-
' | size:' + spec.n + ' | turn: ' + t, function(done) {
284-
if(t === 0) {
285-
tests[index].raw = [];
286-
}
287-
288-
var timerID;
289-
var requestID1, requestID2;
290-
291-
var startTime, endTime;
292-
293-
requestID1 = requestAnimationFrame(function() {
294-
// Wait for actual rendering instead of promise
295-
requestID2 = requestAnimationFrame(function() {
296-
endTime = performance.now();
279+
var testIt = true;
280+
281+
var testCase = __karma__.config.testCase;
282+
283+
if(testCase) {
284+
if(testCase.tracesType && testCase.tracesType !== spec.traceType) testIt = false;
285+
if(testCase.tracesCount && testCase.tracesCount !== spec.nTraces) testIt = false;
286+
if(testCase.tracesMode && testCase.tracesMode !== spec.mode) testIt = false;
287+
if(testCase.tracesPoints && testCase.tracesPoints !== spec.n) testIt = false;
288+
}
289+
290+
if(testIt) {
291+
samples.forEach(function(t) {
292+
it(
293+
spec.nTraces + ' ' + spec.traceType +
294+
(spec.mode ? ' | mode: ' + spec.mode : '') +
295+
' | size:' + spec.n + ' | turn: ' + t, function(done) {
296+
if(t === 0) {
297+
tests[index].raw = [];
298+
}
299+
300+
var timerID;
301+
var requestID1, requestID2;
302+
303+
var startTime, endTime;
297304

298-
var delta = endTime - startTime;
305+
requestID1 = requestAnimationFrame(function() {
306+
// Wait for actual rendering instead of promise
307+
requestID2 = requestAnimationFrame(function() {
308+
endTime = performance.now();
299309

300-
if(tests[index].raw[t] === undefined) {
301-
tests[index].raw[t] = delta;
302-
}
310+
var delta = endTime - startTime;
303311

304-
if(spec.selector) {
305-
var nodes = d3SelectAll(spec.selector);
306-
expect(nodes.size()).toEqual(spec.nTraces);
307-
}
312+
if(tests[index].raw[t] === undefined) {
313+
tests[index].raw[t] = delta;
314+
}
308315

309-
clearTimeout(timerID);
316+
if(spec.selector) {
317+
var nodes = d3SelectAll(spec.selector);
318+
expect(nodes.size()).toEqual(spec.nTraces);
319+
}
310320

311-
done();
321+
clearTimeout(timerID);
322+
323+
done();
324+
});
312325
});
313-
});
314326

315-
var mock = generateMock(spec);
327+
var mock = generateMock(spec);
316328

317-
timerID = setTimeout(() => {
318-
endTime = performance.now();
329+
timerID = setTimeout(() => {
330+
endTime = performance.now();
319331

320-
tests[index].raw[t] = 'none';
332+
tests[index].raw[t] = 'none';
321333

322-
cancelAnimationFrame(requestID2);
323-
cancelAnimationFrame(requestID1);
334+
cancelAnimationFrame(requestID2);
335+
cancelAnimationFrame(requestID1);
324336

325-
done.fail('Takes too much time: ' + (endTime - startTime));
326-
}, MAX_RENDERING_TIME);
337+
done.fail('Takes too much time: ' + (endTime - startTime));
338+
}, MAX_RENDERING_TIME);
327339

328-
startTime = performance.now();
340+
startTime = performance.now();
329341

330-
Plotly.newPlot(gd, mock);
342+
Plotly.newPlot(gd, mock);
343+
});
331344
});
332-
});
345+
}
333346
});
334347
});

0 commit comments

Comments
 (0)