1
1
#! /usr/bin/env node
2
2
3
- todo = process . argv [ 2 ] ;
4
-
5
- if ( todo == '--verbose' )
6
- global . logLevel = "debug" ;
7
- else
8
- global . logLevel = "info" ;
3
+ var todo = process . argv [ 2 ] ;
9
4
5
+ if ( todo === '--verbose' ) {
6
+ global . logLevel = 'debug' ;
7
+ } else {
8
+ global . logLevel = 'info' ;
9
+ }
10
10
11
- if ( todo == 'init' ) {
11
+ if ( todo === 'init' ) {
12
12
require ( './init.js' ) ;
13
13
return ;
14
- } else if ( todo == '--version' ) {
14
+ } else if ( todo = == '--version' ) {
15
15
require ( './version.js' ) ;
16
16
return ;
17
17
}
@@ -29,11 +29,11 @@ var Log = require('../lib/logger'),
29
29
http = require ( 'http' ) ,
30
30
ConfigParser = require ( '../lib/configParser' ) . ConfigParser ,
31
31
serverPort = 8888 ,
32
+ server ,
32
33
timeout ,
33
34
activityTimeout ,
34
35
workers = { } ,
35
36
workerKeys = { } ,
36
- logLevel ,
37
37
tunnelingAgent ,
38
38
tunnel ;
39
39
@@ -69,34 +69,36 @@ function terminateAllWorkers(callback) {
69
69
}
70
70
}
71
71
}
72
- } ;
72
+ }
73
73
74
74
function cleanUpAndExit ( signal , status ) {
75
75
try {
76
76
server . close ( ) ;
77
77
} catch ( e ) {
78
- logger . debug ( " Server already closed" ) ;
78
+ logger . debug ( ' Server already closed' ) ;
79
79
}
80
80
81
- if ( statusPoller ) statusPoller . stop ( ) ;
81
+ if ( statusPoller ) {
82
+ statusPoller . stop ( ) ;
83
+ }
82
84
83
85
try {
84
86
process . kill ( tunnel . process . pid , 'SIGKILL' ) ;
85
87
} catch ( e ) {
86
- logger . debug ( " Non existent tunnel" ) ;
88
+ logger . debug ( ' Non existent tunnel' ) ;
87
89
}
88
90
try {
89
91
fs . unlinkSync ( pid_file ) ;
90
92
} catch ( e ) {
91
- logger . debug ( " Non existent pid file." ) ;
93
+ logger . debug ( ' Non existent pid file.' ) ;
92
94
}
93
95
94
- if ( signal == 'SIGTERM' ) {
95
- logger . debug ( " Exiting" ) ;
96
+ if ( signal === 'SIGTERM' ) {
97
+ logger . debug ( ' Exiting' ) ;
96
98
process . exit ( status ) ;
97
99
} else {
98
100
terminateAllWorkers ( function ( ) {
99
- logger . debug ( " Exiting" ) ;
101
+ logger . debug ( ' Exiting' ) ;
100
102
process . exit ( 1 ) ;
101
103
} ) ;
102
104
}
@@ -105,22 +107,22 @@ function cleanUpAndExit(signal, status) {
105
107
function getTestBrowserInfo ( browserString , path ) {
106
108
var info = browserString ;
107
109
if ( config . multipleTest ) {
108
- info += ", " + path ;
110
+ info += ', ' + path ;
109
111
}
110
112
return info ;
111
113
}
112
114
113
115
function launchServer ( ) {
114
- logger . debug ( " Launching server on port:" , serverPort ) ;
116
+ logger . debug ( ' Launching server on port:' , serverPort ) ;
115
117
116
- var server = new Server ( client , workers ) ;
118
+ server = new Server ( client , workers ) ;
117
119
server . listen ( parseInt ( serverPort , 10 ) ) ;
118
120
}
119
121
120
122
function launchBrowser ( browser , path ) {
121
123
var url = 'http://localhost:' + serverPort . toString ( ) + '/' + path ;
122
124
var browserString = utils . browserString ( browser ) ;
123
- logger . debug ( " [%s] Launching" , getTestBrowserInfo ( browserString , path ) ) ;
125
+ logger . debug ( ' [%s] Launching' , getTestBrowserInfo ( browserString , path ) ) ;
124
126
125
127
var key = utils . uuid ( ) ;
126
128
@@ -141,7 +143,7 @@ function launchBrowser(browser, path) {
141
143
}
142
144
143
145
if ( config . tunnelIdentifier ) {
144
- browser [ " tunnel_identifier" ] = config . tunnelIdentifier ;
146
+ browser [ ' tunnel_identifier' ] = config . tunnelIdentifier ;
145
147
}
146
148
147
149
timeout = parseInt ( config . timeout ) ;
@@ -154,9 +156,9 @@ function launchBrowser(browser, path) {
154
156
155
157
client . createWorker ( browser , function ( err , worker ) {
156
158
if ( err || typeof worker !== 'object' ) {
157
- logger . info ( " Error from BrowserStack: " , err ) ;
158
- utils . alertBrowserStack ( " Failed to launch worker" ,
159
- " Arguments: " + JSON . stringify ( {
159
+ logger . info ( ' Error from BrowserStack: ' , err ) ;
160
+ utils . alertBrowserStack ( ' Failed to launch worker' ,
161
+ ' Arguments: ' + JSON . stringify ( {
160
162
err : err ,
161
163
worker : worker
162
164
} , null , 4 ) ) ;
@@ -191,11 +193,9 @@ var statusPoller = {
191
193
start : function ( ) {
192
194
statusPoller . poller = setInterval ( function ( ) {
193
195
client . getWorkers ( function ( err , _workers ) {
194
- _workers = _workers . filter ( function ( currentValue , index , array ) {
195
- return currentValue . status == 'running' && workerKeys [ currentValue . id ] && ! workerKeys [ currentValue . id ] . marked ;
196
- } ) ;
197
- for ( var i in _workers ) {
198
- var _worker = _workers [ i ] ;
196
+ _workers . filter ( function ( currentValue ) {
197
+ return currentValue . status === 'running' && workerKeys [ currentValue . id ] && ! workerKeys [ currentValue . id ] . marked ;
198
+ } ) . forEach ( function ( _worker ) {
199
199
var workerData = workerKeys [ _worker . id ] ;
200
200
var worker = workers [ workerData . key ] ;
201
201
if ( worker . launched ) {
@@ -210,15 +210,15 @@ var statusPoller = {
210
210
211
211
worker . activityTimeout = setTimeout ( function ( ) {
212
212
if ( ! worker . acknowledged ) {
213
- var subject = " Worker inactive for too long: " + worker . string ;
214
- var content = " Worker details:\n" + JSON . stringify ( worker . config , null , 4 ) ;
213
+ var subject = ' Worker inactive for too long: ' + worker . string ;
214
+ var content = ' Worker details:\n' + JSON . stringify ( worker . config , null , 4 ) ;
215
215
utils . alertBrowserStack ( subject , content , null , function ( ) { } ) ;
216
216
delete workers [ workerData . key ] ;
217
217
delete workerKeys [ worker . id ] ;
218
218
config . status += 1 ;
219
219
if ( utils . objectSize ( workers ) === 0 ) {
220
- var color = config . status > 0 ? " red" : " green" ;
221
- logger . info ( chalk [ color ] ( " All tests done, failures: %d." ) , config . status ) ;
220
+ var color = config . status > 0 ? ' red' : ' green' ;
221
+ logger . info ( chalk [ color ] ( ' All tests done, failures: %d.' ) , config . status ) ;
222
222
223
223
if ( config . status > 0 ) {
224
224
config . status = 1 ;
@@ -231,15 +231,15 @@ var statusPoller = {
231
231
232
232
worker . testActivityTimeout = setTimeout ( function ( ) {
233
233
if ( worker . acknowledged ) {
234
- var subject = " Tests timed out on: " + worker . string ;
235
- var content = " Worker details:\n" + JSON . stringify ( worker . config , null , 4 ) ;
234
+ var subject = ' Tests timed out on: ' + worker . string ;
235
+ var content = ' Worker details:\n' + JSON . stringify ( worker . config , null , 4 ) ;
236
236
utils . alertBrowserStack ( subject , content , null , function ( ) { } ) ;
237
237
delete workers [ workerData . key ] ;
238
238
delete workerKeys [ worker . id ] ;
239
239
config . status += 1 ;
240
240
if ( utils . objectSize ( workers ) === 0 ) {
241
- var color = config . status > 0 ? " red" : " green" ;
242
- logger . info ( chalk [ color ] ( " All tests done, failures: %d." ) , config . status ) ;
241
+ var color = config . status > 0 ? ' red' : ' green' ;
242
+ logger . info ( chalk [ color ] ( ' All tests done, failures: %d.' ) , config . status ) ;
243
243
244
244
if ( config . status > 0 ) {
245
245
config . status = 1 ;
@@ -250,7 +250,7 @@ var statusPoller = {
250
250
}
251
251
} , ( activityTimeout * 1000 ) ) ;
252
252
}
253
- }
253
+ } ) ;
254
254
} ) ;
255
255
} , 2000 ) ;
256
256
} ,
@@ -277,13 +277,13 @@ function runTests() {
277
277
tunnel = new Tunnel ( config . key , serverPort , config . tunnelIdentifier , function ( ) {
278
278
statusPoller . start ( ) ;
279
279
var total_runs = config . browsers . length * ( Object . prototype . toString . call ( config . test_path ) === '[object Array]' ? config . test_path . length : 1 ) ;
280
- logger . info ( " Launching " + config . browsers . length + " worker(s) for " + total_runs + " run(s)." ) ;
280
+ logger . info ( ' Launching ' + config . browsers . length + ' worker(s) for ' + total_runs + ' run(s).' ) ;
281
281
browsers . forEach ( function ( browser ) {
282
- if ( browser . browser_version === " latest" ) {
283
- logger . debug ( " [%s] Finding version." , utils . browserString ( browser ) ) ;
282
+ if ( browser . browser_version === ' latest' ) {
283
+ logger . debug ( ' [%s] Finding version.' , utils . browserString ( browser ) ) ;
284
284
285
285
client . getLatest ( browser , function ( err , version ) {
286
- logger . debug ( " [%s] Version is %s." ,
286
+ logger . debug ( ' [%s] Version is %s.' ,
287
287
utils . browserString ( browser ) , version ) ;
288
288
browser . browser_version = version ;
289
289
// So that all latest logs come in together
@@ -307,9 +307,13 @@ try {
307
307
} ) ;
308
308
runTests ( ) ;
309
309
var pid_file = process . cwd ( ) + '/browserstack-run.pid' ;
310
- fs . writeFileSync ( pid_file , process . pid , 'utf-8' )
311
- process . on ( 'SIGINT' , function ( ) { cleanUpAndExit ( 'SIGINT' , 1 ) } ) ;
312
- process . on ( 'SIGTERM' , function ( ) { cleanUpAndExit ( 'SIGTERM' , config . status ) } ) ;
310
+ fs . writeFileSync ( pid_file , process . pid , 'utf-8' ) ;
311
+ process . on ( 'SIGINT' , function ( ) {
312
+ cleanUpAndExit ( 'SIGINT' , 1 ) ;
313
+ } ) ;
314
+ process . on ( 'SIGTERM' , function ( ) {
315
+ cleanUpAndExit ( 'SIGTERM' , config . status ) ;
316
+ } ) ;
313
317
} catch ( e ) {
314
318
console . log ( e ) ;
315
319
console . log ( 'Invalid command.' ) ;
0 commit comments