UNPKG

1.21 kBtext/coffeescriptView Raw
1# Performance test for pumping 10million data items from one buffer to another.
2#
3# To run this test, type in terminal:
4# ```shell
5# mocha --compilers coffee:coffee-script/register perftest/pump10m.coffee
6# ```
7#
8Pump = require('../src/Pump.coffee')
9Buffer = require('../src/Buffer.coffee')
10
11describe 'Pump (performance test)', ->
12 it 'should be able to pump 10 million items from one buffer to another', (done) ->
13 @timeout 200000
14
15 created = 0
16 pumped = 0
17 limit = 10000000
18
19 source = new Buffer
20 size: 10000
21
22 pump = new Pump
23 pump
24 .from source
25 .process (data) ->
26 pumped++
27 if !(pumped % 1000000)
28 console.log 'Pumped ' + (pumped / 1000000) + ' million items'
29 @copy data
30
31 pump.on 'end', ->
32 if pumped == limit && created == limit
33 do done
34 else
35 throw new Error('Pump failed')
36
37 write = ->
38 source.write
39 message: 'test data'
40 foo: 'bar'
41 ++created
42
43 while !source.isFull()
44 do write
45
46 source.on 'release', ->
47 do write if created < limit
48
49 source.on 'empty', ->
50 do source.seal
51
52 pump.buffer().on 'write', ->
53 pump.buffer().read()
54
55 do pump.start