]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - test/utils.js
4 var child_process
= require('child_process')
5 var fork
= child_process
.fork
6 var exec
= child_process
.exec
8 function runMultipleServers (total_servers
, serversRun
) {
13 function anotherServerDone (number
, app
, url
) {
14 apps
[number
- 1] = app
15 urls
[number
- 1] = url
17 if (i
=== total_servers
) {
18 serversRun(apps
, urls
)
22 flushTests(function () {
23 for (var j
= 1; j
<= total_servers
; j
++) {
24 (function (k
) { // TODO: ES6 with let
25 // For the virtual buffer
26 setTimeout(function () {
27 runServer(k
, function (app
, url
) {
28 anotherServerDone(k
, app
, url
)
36 function runServer (number
, callback
) {
37 var port
= 9000 + number
38 var server_run_string
= {
39 'Connected to mongodb': false,
40 'Server listening on port': false
43 // Share the environment
44 var env
= Object
.create(process
.env
)
46 env
.NODE_APP_INSTANCE
= number
53 var app
= fork(__dirname
+ '/../server.js', [], options
)
54 app
.stdout
.on('data', function onStdout (data
) {
55 var dont_continue
= false
56 // Check if all required sentences are here
57 for (var key
of Object
.keys(server_run_string
)) {
58 if (data
.toString().indexOf(key
) !== -1) server_run_string
[key
] = true
59 if (server_run_string
[key
] === false) dont_continue
= true
62 // If no, there is maybe one thing not already initialized (mongodb...)
63 if (dont_continue
=== true) return
65 app
.stdout
.removeListener('data', onStdout
)
66 callback(app
, 'http://localhost:' + port
)
70 function flushTests (callback
) {
71 exec(__dirname
+ '/../scripts/clean_test.sh', function () {
77 runMultipleServers: runMultipleServers
,
79 flushTests: flushTests