@@ -17,6 +17,11 @@ function showHelp() {
17
17
console . log ( " --no-headless : disable headless mode" ) ;
18
18
console . log ( " --help : show this message then quit" ) ;
19
19
console . log ( " --tests-folder [PATH] : location of the .GOML tests folder" ) ;
20
+ console . log ( " --jobs [NUMBER] : number of threads to run tests on" ) ;
21
+ }
22
+
23
+ function isNumeric ( s ) {
24
+ return / ^ \d + $ / . test ( s ) ;
20
25
}
21
26
22
27
function parseOptions ( args ) {
@@ -27,6 +32,7 @@ function parseOptions(args) {
27
32
"debug" : false ,
28
33
"show_text" : false ,
29
34
"no_headless" : false ,
35
+ "jobs" : - 1 ,
30
36
} ;
31
37
var correspondances = {
32
38
"--doc-folder" : "doc_folder" ,
@@ -39,13 +45,21 @@ function parseOptions(args) {
39
45
for ( var i = 0 ; i < args . length ; ++ i ) {
40
46
if ( args [ i ] === "--doc-folder"
41
47
|| args [ i ] === "--tests-folder"
42
- || args [ i ] === "--file" ) {
48
+ || args [ i ] === "--file"
49
+ || args [ i ] === "--jobs" ) {
43
50
i += 1 ;
44
51
if ( i >= args . length ) {
45
52
console . log ( "Missing argument after `" + args [ i - 1 ] + "` option." ) ;
46
53
return null ;
47
54
}
48
- if ( args [ i - 1 ] !== "--file" ) {
55
+ if ( args [ i - 1 ] === "--jobs" ) {
56
+ if ( ! isNumeric ( args [ i ] ) ) {
57
+ console . log (
58
+ "`--jobs` option expects a positive number, found `" + args [ i ] + "`" ) ;
59
+ return null ;
60
+ }
61
+ opts [ "jobs" ] = parseInt ( args [ i ] ) ;
62
+ } else if ( args [ i - 1 ] !== "--file" ) {
49
63
opts [ correspondances [ args [ i - 1 ] ] ] = args [ i ] ;
50
64
} else {
51
65
opts [ "files" ] . push ( args [ i ] ) ;
@@ -158,7 +172,11 @@ async function main(argv) {
158
172
files . sort ( ) ;
159
173
160
174
console . log ( `Running ${ files . length } rustdoc-gui tests...` ) ;
161
- process . setMaxListeners ( files . length + 1 ) ;
175
+ if ( opts [ "jobs" ] < 1 ) {
176
+ process . setMaxListeners ( files . length + 1 ) ;
177
+ } else {
178
+ process . setMaxListeners ( opts [ "jobs" ] ) ;
179
+ }
162
180
let tests = [ ] ;
163
181
let results = {
164
182
successful : [ ] ,
0 commit comments