You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					39 lines
				
				877 B
			
		
		
			
		
	
	
					39 lines
				
				877 B
			| 
								 
											3 years ago
										 
									 | 
							
								var binary = require('../');
							 | 
						||
| 
								 | 
							
								var test = require('tap').test;
							 | 
						||
| 
								 | 
							
								var EventEmitter = require('events').EventEmitter;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								test('interval', function (t) {
							 | 
						||
| 
								 | 
							
								    t.plan(1);
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    var em = new EventEmitter;
							 | 
						||
| 
								 | 
							
								    var i = 0;
							 | 
						||
| 
								 | 
							
								    var iv = setInterval(function () {
							 | 
						||
| 
								 | 
							
								        var buf = new Buffer(1000);
							 | 
						||
| 
								 | 
							
								        buf[0] = 0xff;
							 | 
						||
| 
								 | 
							
								        if (++i >= 1000) {
							 | 
						||
| 
								 | 
							
								            clearInterval(iv);
							 | 
						||
| 
								 | 
							
								            buf[0] = 0;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        em.emit('data', buf);
							 | 
						||
| 
								 | 
							
								    }, 1);
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    var loops = 0;
							 | 
						||
| 
								 | 
							
								    binary(em)
							 | 
						||
| 
								 | 
							
								        .loop(function (end) {
							 | 
						||
| 
								 | 
							
								            this
							 | 
						||
| 
								 | 
							
								            .word8('x')
							 | 
						||
| 
								 | 
							
								            .word8('y')
							 | 
						||
| 
								 | 
							
								            .word32be('z')
							 | 
						||
| 
								 | 
							
								            .word32le('w')
							 | 
						||
| 
								 | 
							
								            .buffer('buf', 1000 - 10)
							 | 
						||
| 
								 | 
							
								            .tap(function (vars) {
							 | 
						||
| 
								 | 
							
								                loops ++;
							 | 
						||
| 
								 | 
							
								                if (vars.x == 0) end();
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								        .tap(function () {
							 | 
						||
| 
								 | 
							
								            t.same(loops, 1000);
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								    ;
							 | 
						||
| 
								 | 
							
								});
							 |