-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
36 lines (32 loc) · 987 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const latencyMeter = require('./latency-meter')
const allSuites = require('./suites')
latencyMeter.start()
.then(() => runSuites(allSuites))
.then(() => latencyMeter.stop())
async function runSuites(suites) {
return new Promise(resolve => {
if (suites.length === 0) {
return resolve()
}
const [suite, ...followingSuites] = suites
suite
.on('start', () => {
console.log(suite.name)
latencyMeter.beginMeasurement()
})
.on('cycle', event => {
const latencyStats = latencyMeter.endMeasurement()
console.log(' ', String(event.target))
console.log(' ', String(latencyStats))
latencyMeter.beginMeasurement()
})
.on('complete', async () => {
latencyMeter.endMeasurement()
console.log('Fastest is ' + suite.filter('fastest').map('name').join(' or '))
console.log('---')
await runSuites(followingSuites)
resolve()
})
.run()
})
}