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
			| 
								 
											3 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,
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								});
							 |