-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy patht.js
More file actions
41 lines (37 loc) · 1012 Bytes
/
t.js
File metadata and controls
41 lines (37 loc) · 1012 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var util = require('util'),
fs = require('fs'),
assert = require('assert'),
iptrie = require('iptrie');
var lookup = new iptrie.IPTrie();
var expectations = {
'1.2.3.4': null,
'10.120.2.1': 'rfc1918',
'10.80.117.4': 'my special place',
'2001:470:0:76::2': 'website',
'2001:470:0:76::3': 'he',
'2620:0:0:0::2': null,
'2620:1f:0:1::1': 'omniti',
'75.49.14.236': 'boom'
};
fs.readFile("test/test.cidr", 'utf-8', function(err, data) {
var count = 0;
var lines = data.split(/\n/);
for (var i=0; i<lines.length; i++) {
var m = /^([^\/]+)\/(\d+)\s+(.*)/.exec(lines[i]);
if(m) {
try {
lookup.add(m[1],parseInt(m[2]),m[3]);
count++;
}
catch(e) {
util.puts(e,m);
}
}
}
assert.equal(count, 9, "loaded entries");
for(var target in expectations) {
var result = lookup.find(target);
assert.equal(result, expectations[target],
"test "+target + " ["+result+" != "+expectations[target]+"]");
}
});