| 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(); |