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.
		
		
		
		
		
			
		
			
				
					64 lines
				
				1.6 KiB
			
		
		
			
		
	
	
					64 lines
				
				1.6 KiB
			| 
											3 years ago
										 | var assert = require('assert'); | ||
|  | var Dicer = require('..'), | ||
|  |     boundary = '-----------------------------168072824752491622650073', | ||
|  |     d = new Dicer({ boundary: boundary }), | ||
|  |     mb = 100, | ||
|  |     buffer = createMultipartBuffer(boundary, mb * 1024 * 1024), | ||
|  |     callbacks = | ||
|  |       { partBegin: -1, | ||
|  |         partEnd: -1, | ||
|  |         headerField: -1, | ||
|  |         headerValue: -1, | ||
|  |         partData: -1, | ||
|  |         end: -1, | ||
|  |       }; | ||
|  | 
 | ||
|  | 
 | ||
|  | d.on('part', function(p) { | ||
|  |   callbacks.partBegin++; | ||
|  |   p.on('header', function(header) { | ||
|  |     /*for (var h in header) | ||
|  |       console.log('Part header: k: ' + inspect(h) + ', v: ' + inspect(header[h]));*/ | ||
|  |   }); | ||
|  |   p.on('data', function(data) { | ||
|  |     callbacks.partData++; | ||
|  |     //console.log('Part data: ' + inspect(data.toString()));
 | ||
|  |   }); | ||
|  |   p.on('end', function() { | ||
|  |     //console.log('End of part\n');
 | ||
|  |     callbacks.partEnd++; | ||
|  |   }); | ||
|  | }); | ||
|  | d.on('end', function() { | ||
|  |   //console.log('End of parts');
 | ||
|  |   callbacks.end++; | ||
|  | }); | ||
|  | 
 | ||
|  | var start = +new Date(), | ||
|  |     nparsed = d.write(buffer), | ||
|  |     duration = +new Date - start, | ||
|  |     mbPerSec = (mb / (duration / 1000)).toFixed(2); | ||
|  | 
 | ||
|  | console.log(mbPerSec+' mb/sec'); | ||
|  | 
 | ||
|  | //assert.equal(nparsed, buffer.length);
 | ||
|  | 
 | ||
|  | function createMultipartBuffer(boundary, size) { | ||
|  |   var head = | ||
|  |         '--'+boundary+'\r\n' | ||
|  |       + 'content-disposition: form-data; name="field1"\r\n' | ||
|  |       + '\r\n' | ||
|  |     , tail = '\r\n--'+boundary+'--\r\n' | ||
|  |     , buffer = new Buffer(size); | ||
|  | 
 | ||
|  |   buffer.write(head, 'ascii', 0); | ||
|  |   buffer.write(tail, 'ascii', buffer.length - tail.length); | ||
|  |   return buffer; | ||
|  | } | ||
|  | 
 | ||
|  | process.on('exit', function() { | ||
|  |   /*for (var k in callbacks) { | ||
|  |     assert.equal(0, callbacks[k], k+' count off by '+callbacks[k]); | ||
|  |   }*/ | ||
|  | }); |