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
			| 
											2 years ago
										 | 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, | ||
|  |     }); | ||
|  | }); |