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.4 KiB
			
		
		
			
		
	
	
					64 lines
				
				1.4 KiB
			| 
											3 years ago
										 | var assert = require('assert'), | ||
|  |     nodeuuid = require('../uuid'), | ||
|  |     uuidjs = require('uuid-js'), | ||
|  |     libuuid = require('uuid').generate, | ||
|  |     util = require('util'), | ||
|  |     exec = require('child_process').exec, | ||
|  |     os = require('os'); | ||
|  | 
 | ||
|  | // On Mac Os X / macports there's only the ossp-uuid package that provides uuid
 | ||
|  | // On Linux there's uuid-runtime which provides uuidgen
 | ||
|  | var uuidCmd = os.type() === 'Darwin' ? 'uuid -1' : 'uuidgen -t'; | ||
|  | 
 | ||
|  | function compare(ids) { | ||
|  |   console.log(ids); | ||
|  |   for (var i = 0; i < ids.length; i++) { | ||
|  |     var id = ids[i].split('-'); | ||
|  |     id = [id[2], id[1], id[0]].join(''); | ||
|  |     ids[i] = id; | ||
|  |   } | ||
|  |   var sorted = ([].concat(ids)).sort(); | ||
|  | 
 | ||
|  |   if (sorted.toString() !== ids.toString()) { | ||
|  |     console.log('Warning: sorted !== ids'); | ||
|  |   } else { | ||
|  |     console.log('everything in order!'); | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | // Test time order of v1 uuids
 | ||
|  | var ids = []; | ||
|  | while (ids.length < 10e3) ids.push(nodeuuid.v1()); | ||
|  | 
 | ||
|  | var max = 10; | ||
|  | console.log('node-uuid:'); | ||
|  | ids = []; | ||
|  | for (var i = 0; i < max; i++) ids.push(nodeuuid.v1()); | ||
|  | compare(ids); | ||
|  | 
 | ||
|  | console.log(''); | ||
|  | console.log('uuidjs:'); | ||
|  | ids = []; | ||
|  | for (var i = 0; i < max; i++) ids.push(uuidjs.create(1).toString()); | ||
|  | compare(ids); | ||
|  | 
 | ||
|  | console.log(''); | ||
|  | console.log('libuuid:'); | ||
|  | ids = []; | ||
|  | var count = 0; | ||
|  | var last = function() { | ||
|  |   compare(ids); | ||
|  | } | ||
|  | var cb = function(err, stdout, stderr) { | ||
|  |   ids.push(stdout.substring(0, stdout.length-1)); | ||
|  |   count++; | ||
|  |   if (count < max) { | ||
|  |     return next(); | ||
|  |   } | ||
|  |   last(); | ||
|  | }; | ||
|  | var next = function() { | ||
|  |   exec(uuidCmd, cb); | ||
|  | }; | ||
|  | next(); |