Skip to content

Commit c445947

Browse files
authored
Merge pull request #55 from themasch/bep-0023-compact-peers
Test correct handling of compacted peer lists [BEP 0023]
2 parents d31b80b + b31e00d commit c445947

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

test/BEP-0023.test.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
var bencode = require('..')
2+
var path = require('path')
3+
var fs = require('fs')
4+
var test = require('tape').test
5+
6+
// @see http://www.bittorrent.org/beps/bep_0023.html
7+
test('BEP 0023', function (t) {
8+
t.test('should be able to handle an compacted peer announce', function (t) {
9+
var filename = path.join(__dirname, 'data', 'announce-compacted-peers.bin')
10+
var announce = fs.readFileSync(filename)
11+
var data = bencode.decode(announce)
12+
13+
console.log(data)
14+
15+
t.plan(1)
16+
t.deepEqual(data, {
17+
complete: 4,
18+
incomplete: 3,
19+
interval: 1800,
20+
'min interval': 1800,
21+
peers: new Buffer('2ebd1b641a1f51d54c0546cc342190401a1f626ee9c6c8d5cb0d92131a1fac4e689a3c6b180f3d5746db', 'hex')
22+
})
23+
})
24+
25+
t.test('should be able to handle an compacted peer announce when decoding strings', function (t) {
26+
var filename = path.join(__dirname, 'data', 'announce-compacted-peers.bin')
27+
var announce = fs.readFileSync(filename)
28+
var data = bencode.decode(announce, 'utf8')
29+
30+
console.log(data)
31+
32+
t.plan(1)
33+
t.deepEqual(data, {
34+
complete: 4,
35+
incomplete: 3,
36+
interval: 1800,
37+
'min interval': 1800,
38+
peers: '.�\u001bd\u001a\u001fQ�L\u0005F�4!�@\u001a\u001fbn�����\r�\u0013\u001a\u001f�Nh�<k\u0018\u000f=WF�'
39+
})
40+
})
41+
})

test/data/announce-compacted-peers.bin

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
d8:completei4e10:incompletei3e8:intervali1800e12:min intervali1800e5:peers42:.�dQ�LF�4!�@bn�������Nh�<k=WF�e

0 commit comments

Comments
 (0)