| 
									
										
										
										
											2017-02-02 21:19:59 -07:00
										 |  |  | ;(function () { | 
					
						
							|  |  |  |   'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-11 15:41:01 -07:00
										 |  |  |   var fs = require('fs'); | 
					
						
							| 
									
										
										
										
											2017-02-23 16:35:19 -07:00
										 |  |  |   //var path = require('path');
 | 
					
						
							| 
									
										
										
										
											2017-02-11 15:41:01 -07:00
										 |  |  |   var dnsjs = require('../').DNSPacket; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-16 10:26:15 -07:00
										 |  |  |   //var dirname = path.join(__dirname, 'fixtures');
 | 
					
						
							|  |  |  |   //var expected; // shim
 | 
					
						
							| 
									
										
										
										
											2017-02-11 15:41:01 -07:00
										 |  |  |   var onefile = process.argv[2]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-16 10:26:15 -07:00
										 |  |  |   if (!onefile) { | 
					
						
							|  |  |  |     console.error(''); | 
					
						
							|  |  |  |     console.error('Usage:'); | 
					
						
							|  |  |  |     console.error('node test/packer.js <test/fixtures/packet.type.json>'); | 
					
						
							|  |  |  |     console.error('Example:'); | 
					
						
							|  |  |  |     console.error('node test/packer.js test/fixtures/www.linode.com.a.json'); | 
					
						
							|  |  |  |     console.error(''); | 
					
						
							|  |  |  |     process.exit(1); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-11 15:41:01 -07:00
										 |  |  |   var json = JSON.parse(fs.readFileSync(onefile, 'utf8')); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-23 16:35:19 -07:00
										 |  |  |   var ab = dnsjs.write(json).buffer; | 
					
						
							| 
									
										
										
										
											2017-02-11 15:41:01 -07:00
										 |  |  |   //console.log(ab);
 | 
					
						
							|  |  |  |   //console.log(ui8);
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-17 18:52:15 -07:00
										 |  |  |   function hexdump(ab) { | 
					
						
							|  |  |  |     var ui8 = new Uint8Array(ab); | 
					
						
							|  |  |  |     var bytecount = 0; | 
					
						
							| 
									
										
										
										
											2017-02-17 18:47:21 -07:00
										 |  |  |     var head = '        0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F'; | 
					
						
							|  |  |  |     var trail; | 
					
						
							|  |  |  |     var str = [].slice.call(ui8).map(function (i) { | 
					
						
							|  |  |  |       var h = i.toString(16); | 
					
						
							|  |  |  |       if (h.length < 2) { | 
					
						
							|  |  |  |         h = '0' + h; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       return h; | 
					
						
							|  |  |  |     }).join('').match(/.{1,2}/g).join(' ').match(/.{1,48}/g).map(function (str) { | 
					
						
							|  |  |  |       var lead = bytecount.toString(16); | 
					
						
							|  |  |  |       bytecount += 16; | 
					
						
							| 
									
										
										
										
											2017-02-11 15:41:01 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-17 18:47:21 -07:00
										 |  |  |       while (lead.length < 7) { | 
					
						
							|  |  |  |         lead = '0' + lead; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       return lead + ' ' + str; | 
					
						
							|  |  |  |     }).join('\n'); | 
					
						
							|  |  |  |     trail = ab.byteLength.toString(16); | 
					
						
							|  |  |  |     while (trail.length < 7) { | 
					
						
							|  |  |  |       trail = '0' + trail; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2017-02-17 18:52:15 -07:00
										 |  |  |     return head + '\n' + str + '\n' + trail; | 
					
						
							| 
									
										
										
										
											2017-02-11 15:41:01 -07:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   console.log(''); | 
					
						
							|  |  |  |   console.log('DEBUG with hexdump: '); | 
					
						
							|  |  |  |   console.log('hexdump ' + onefile.replace(/\.[^\.]*$/, '.bin')); | 
					
						
							|  |  |  |   console.log(''); | 
					
						
							| 
									
										
										
										
											2017-02-17 18:52:15 -07:00
										 |  |  |   console.log(hexdump(ab)); | 
					
						
							| 
									
										
										
										
											2017-02-11 15:41:01 -07:00
										 |  |  |   console.log(''); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-16 14:16:21 -07:00
										 |  |  |   console.error(''); | 
					
						
							|  |  |  |   console.error('!!!'); | 
					
						
							|  |  |  |   console.error('Test implementation not complete.'); | 
					
						
							|  |  |  |   console.error('!!!'); | 
					
						
							|  |  |  |   console.error(''); | 
					
						
							| 
									
										
										
										
											2017-02-16 10:26:15 -07:00
										 |  |  |   process.exit(1); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-02 21:19:59 -07:00
										 |  |  | }()); | 
					
						
							|  |  |  | 
 |