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.
		
		
		
		
		
			
		
			
				
					
					
						
							55 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							55 lines
						
					
					
						
							1.2 KiB
						
					
					
				| var binary = require('../');
 | |
| var test = require('tap').test;
 | |
| 
 | |
| test('parse', function (t) {
 | |
|     t.plan(6);
 | |
|     var res = binary.parse(new Buffer([ 97, 98, 99, 99, 99, 99, 1, 2, 3 ]))
 | |
|         .word8('a')
 | |
|         .word16be('bc')
 | |
|         .skip(3)
 | |
|         .buffer('def', 3)
 | |
|         .tap(function (vars) {
 | |
|             t.equal(vars.a, 97);
 | |
|             t.equal(vars.bc, 25187);
 | |
|             t.same(
 | |
|                 [].slice.call(vars.def),
 | |
|                 [].slice.call(new Buffer([ 1, 2, 3]))
 | |
|             );
 | |
|         })
 | |
|         .vars
 | |
|     ;
 | |
|     t.equal(res.a, 97);
 | |
|     t.equal(res.bc, 25187);
 | |
|     t.same(
 | |
|         [].slice.call(res.def),
 | |
|         [].slice.call(new Buffer([ 1, 2, 3 ]))
 | |
|     );
 | |
| });
 | |
| 
 | |
| test('loop', function (t) {
 | |
|     t.plan(2);
 | |
|     var res = binary.parse(new Buffer([ 97, 98, 99, 4, 5, 2, -3, 9 ]))
 | |
|         .word8('a')
 | |
|         .word16be('bc')
 | |
|         .loop(function (end) {
 | |
|             var x = this.word8s('x').vars.x;
 | |
|             if (x < 0) end();
 | |
|         })
 | |
|         .tap(function (vars) {
 | |
|             t.same(vars, {
 | |
|                 a : 97,
 | |
|                 bc : 25187,
 | |
|                 x : -3,
 | |
|             });
 | |
|         })
 | |
|         .word8('y')
 | |
|         .vars
 | |
|     ;
 | |
|     t.same(res, {
 | |
|         a : 97,
 | |
|         bc : 25187,
 | |
|         x : -3,
 | |
|         y : 9,
 | |
|     });
 | |
| });
 |