Skip to content

Commit 229ec3d

Browse files
committed
Add load_test executable
Copied from make_baseline.js; will be modified.
1 parent 13cafac commit 229ec3d

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

test/image/load_test

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
var fs = require('fs');
2+
3+
var getMockList = require('./assets/get_mock_list');
4+
var getRequestOpts = require('./assets/get_image_request_options');
5+
var getImagePaths = require('./assets/get_image_paths');
6+
7+
// packages inside the image server docker
8+
var request = require('request');
9+
10+
// wait time between each baseline generation
11+
var QUEUE_WAIT = 10;
12+
13+
/**
14+
* Baseline image generation script.
15+
*
16+
* Called by `tasks/baseline.sh in `npm run baseline`.
17+
*
18+
* CLI arguments:
19+
*
20+
* 1. 'pattern' : glob determining the baseline(s) to be generated
21+
*
22+
* Examples:
23+
*
24+
* Generate or (re-generate) all baselines (in queue):
25+
*
26+
* npm run baseline
27+
*
28+
* Generate or (re-generate) the 'contour_nolines' baseline:
29+
*
30+
* npm run baseline -- contour_nolines
31+
*
32+
* Generate or (re-generate) all gl3d baseline (in queue):
33+
*
34+
* npm run baseline -- gl3d_*
35+
*
36+
*/
37+
var pattern = process.argv[2];
38+
var mockList = getMockList(pattern);
39+
40+
if(mockList.length === 0) {
41+
throw new Error('No mocks found with pattern ' + pattern);
42+
}
43+
44+
// main
45+
console.log('test run starting');
46+
runInQueue(mockList);
47+
48+
function runInQueue(mockList) {
49+
var index = 0;
50+
51+
run(mockList[index]);
52+
53+
function run(mockName) {
54+
makeBaseline(mockName, function() {
55+
console.log('generated ' + mockName + ' successfully');
56+
57+
index++;
58+
if(index < mockList.length) {
59+
setTimeout(function() {
60+
run(mockList[index]);
61+
}, QUEUE_WAIT);
62+
}
63+
});
64+
}
65+
}
66+
67+
function makeBaseline(mockName, cb) {
68+
var requestOpts = getRequestOpts({ mockName: mockName }),
69+
imagePaths = getImagePaths(mockName),
70+
saveImageStream = fs.createWriteStream(imagePaths.baseline);
71+
72+
function checkFormat(err, res) {
73+
if(err) throw err;
74+
if(res.headers['content-type'] !== 'image/png') {
75+
throw new Error('Generated image is not a valid png');
76+
}
77+
}
78+
79+
request(requestOpts, checkFormat)
80+
.pipe(saveImageStream)
81+
.on('close', cb);
82+
}

0 commit comments

Comments
 (0)