Commit a89135a1e760fdee52632c1be4d8c2fd312faee8
update tests to use ssb-ebt instead of legacy replication
Dominic Tarr committed on 3/5/2018, 8:05:07 AMParent: 0f633f3396be68d6207ec3d2fd1d1f180f2a4662
Files changed
test/block.js | changed |
test/block2.js | changed |
test/block3.js | changed |
test/random.js | changed |
test/realtime.js | changed |
test/server.js | changed |
test/block.js | ||
---|---|---|
@@ -6,8 +6,9 @@ | ||
6 | 6 … | |
7 | 7 … | var createSbot = require('../') |
8 | 8 … | .use(require('../plugins/replicate')) |
9 | 9 … | .use(require('ssb-friends')) |
10 … | + .use(require('ssb-ebt')) | |
10 | 11 … | |
11 | 12 … | var toAddress = require('../lib/util').toAddress |
12 | 13 … | |
13 | 14 … | function once (fn) { |
@@ -25,41 +26,39 @@ | ||
25 | 26 … | // 1. when bob tries to connect to alice, she refuses. |
26 | 27 … | // 2. alice never tries to connect to bob. (removed from peers) |
27 | 28 … | // 3. carol will not give bob any, she will not give him any data from alice. |
28 | 29 … | |
30 … | +var crypto = require('crypto') | |
31 … | +function seed (name) { | |
32 … | + return crypto.createHash('sha256').update(name).digest() | |
33 … | +} | |
34 … | + | |
29 | 35 … | var alice = createSbot({ |
30 | 36 … | temp:'test-block-alice', timeout: 1400, |
31 | - keys:ssbKeys.generate() | |
37 … | + keys:ssbKeys.generate(null, seed('alice')), | |
38 … | + replicate: { legacy: false } | |
32 | 39 … | }) |
33 | 40 … | |
34 | 41 … | var bob = createSbot({ |
35 | 42 … | temp: 'test-block-bob', timeout: 600, |
36 | - keys:ssbKeys.generate() | |
43 … | + keys:ssbKeys.generate(null, seed('bob')), | |
44 … | + replicate: { legacy: false } | |
37 | 45 … | }) |
38 | 46 … | |
39 | 47 … | var carol = createSbot({ |
40 | 48 … | temp: 'test-block-carol', timeout: 600, |
41 | - keys:ssbKeys.generate() | |
49 … | + keys:ssbKeys.generate(null, seed('carol')), | |
50 … | + replicate: { legacy: false } | |
51 … | + | |
42 | 52 … | }) |
43 | 53 … | |
44 | -//carol.post(function (data) { | |
45 | -// console.log('CAROL RECEIVED', names[data.value.author]) | |
46 | -// console.log(data.value) | |
47 | -//}) | |
48 | - | |
49 | 54 … | var names = {} |
50 | 55 … | names[alice.id] = 'alice' |
51 | 56 … | names[bob.id] = 'bob' |
52 | 57 … | names[carol.id] = 'carol' |
53 | 58 … | |
54 | 59 … | tape('alice blocks bob, and bob cannot connect to alice', function (t) { |
55 | 60 … | |
56 | -// console.log({ | |
57 | -// alice: alice.id, | |
58 | -// bob: bob.id, | |
59 | -// carol: carol.id | |
60 | -// }) | |
61 | - | |
62 | 61 … | //in the beginning alice and bob follow each other |
63 | 62 … | cont.para([ |
64 | 63 … | cont(alice.publish)(u.follow(bob.id)), |
65 | 64 … | cont(bob .publish)(u.follow(alice.id)), |
@@ -77,17 +76,15 @@ | ||
77 | 76 … | |
78 | 77 … | //get the next messages that are replicated to alice and bob, |
79 | 78 … | //and check that these are the correct follow messages. |
80 | 79 … | var bobCancel = bob.post(once(function (op) { |
81 | - console.log('BOB_POST', op) | |
82 | 80 … | //should be the alice's follow(bob) message. |
83 | 81 … | t.equal(op.value.author, alice.id, 'bob expected message from alice') |
84 | 82 … | t.equal(op.value.content.contact, bob.id, 'bob expected message to be about bob') |
85 | 83 … | next() |
86 | 84 … | }), false) |
87 | 85 … | |
88 | 86 … | var aliceCancel = alice.post(once(function (op) { |
89 | - console.log('ALICE_POST', op) | |
90 | 87 … | //should be the bob's follow(alice) message. |
91 | 88 … | t.equal(op.value.author, bob.id, 'alice expected to receive a message from bob') |
92 | 89 … | t.equal(op.value.content.contact, alice.id, 'alice expected received message to be about alice') |
93 | 90 … | next() |
@@ -96,12 +93,8 @@ | ||
96 | 93 … | if(--n) return |
97 | 94 … | |
98 | 95 … | rpc.close(true, function () { |
99 | 96 … | aliceCancel(); bobCancel() |
100 | - console.log('ALICE BLOCKS BOB', { | |
101 | - source: alice.id, dest: bob.id | |
102 | - }) | |
103 | - | |
104 | 97 … | alice.publish(u.block(bob.id)) |
105 | 98 … | (function (err) { |
106 | 99 … | if(err) throw err |
107 | 100 … | |
@@ -129,9 +122,8 @@ | ||
129 | 122 … | t.ok(err, 'bob is blocked, should fail to connect to alice') |
130 | 123 … | |
131 | 124 … | |
132 | 125 … | var carolCancel = carol.post(function (msg) { |
133 | - console.log('CAROL RECV', msg, alice.id) | |
134 | 126 … | if(msg.author === alice.id) { |
135 | 127 … | if(msg.sequence == 2) |
136 | 128 … | t.end() |
137 | 129 … | } |
@@ -139,9 +131,8 @@ | ||
139 | 131 … | |
140 | 132 … | //but carol, should, because she is not blocked. |
141 | 133 … | carol.connect(alice.getAddress(), function (err, rpc) { |
142 | 134 … | if(err) throw err |
143 | - console.log('CAROL CONNECTED TO ALICE', carol.id, alice.id) | |
144 | 135 … | rpc.on('closed', function () { |
145 | 136 … | carolCancel() |
146 | 137 … | pull( |
147 | 138 … | carol.createHistoryStream({id: alice.id, seq: 0, live: false}), |
@@ -168,11 +159,9 @@ | ||
168 | 159 … | tape('carol does not let bob replicate with alice', function (t) { |
169 | 160 … | //first, carol should have already replicated with alice. |
170 | 161 … | //emits this event when did not allow bob to get this data. |
171 | 162 … | bob.once('replicate:finish', function (vclock) { |
172 | - console.log('BOB REPLICATED FROM CAROL') | |
173 | 163 … | t.equal(vclock[alice.id], 1) |
174 | - console.log('ALICE:', alice.id) | |
175 | 164 … | //t.end() |
176 | 165 … | }) |
177 | 166 … | bob.connect(carol.getAddress(), function(err, rpc) { |
178 | 167 … | if(err) throw err |
@@ -181,11 +170,10 @@ | ||
181 | 170 … | }) |
182 | 171 … | }) |
183 | 172 … | }) |
184 | 173 … | |
185 | - | |
186 | 174 … | tape('alice does not replicate messages from bob, but carol does', function (t) { |
187 | - | |
175 … | + console.log("**********************************************************") | |
188 | 176 … | var friends = 0 |
189 | 177 … | carol.friends.get(console.log) |
190 | 178 … | pull(carol.friends.createFriendStream({meta: true, live: true}), pull.drain(function (v) { |
191 | 179 … | friends ++ |
@@ -195,31 +183,25 @@ | ||
195 | 183 … | cont.para([ |
196 | 184 … | cont(alice.publish)(u.follow(carol.id)), |
197 | 185 … | cont(bob.publish)({type:'post', text: 'hello'}), |
198 | 186 … | cont(carol.publish)(u.follow(bob.id)) |
199 | - ]) (function () { | |
187 … | + ]) (function (err, r) { | |
200 | 188 … | var recv = {alice: 0, carol: 0} |
201 | - | |
202 | 189 … | carol.post(function (msg) { |
203 | 190 … | recv.carol ++ |
204 | 191 … | //will receive one message from bob and carol |
205 | 192 … | }, false) |
206 | 193 … | |
207 | 194 … | alice.post(function (msg) { |
208 | 195 … | recv.alice ++ |
209 | 196 … | //alice will only receive the message from carol, but not bob. |
210 | - console.log("ALICE_RECV", names[msg.value.author], msg) | |
211 | 197 … | t.equal(msg.value.author, carol.id) |
212 | 198 … | }, false) |
213 | 199 … | |
214 | - console.log("carol's friends") | |
215 | 200 … | carol.friends.get(function (err, g) { |
216 | 201 … | t.ok(g[carol.id][bob.id]) |
217 | 202 … | }) |
218 | - console.log("alices friends") | |
219 | - alice.friends.get(console.log) | |
220 | 203 … | |
221 | - | |
222 | 204 … | var n = 2 |
223 | 205 … | carol.connect(alice.getAddress(), cb) |
224 | 206 … | carol.connect(bob.getAddress(), cb) |
225 | 207 … | |
@@ -232,12 +214,16 @@ | ||
232 | 214 … | pull( |
233 | 215 … | carol.createLogStream(), |
234 | 216 … | pull.collect(function (err, ary) { |
235 | 217 … | if(err) throw err |
236 | - console.log(ary) | |
237 | - t.deepEqual(recv, {carol: 2, alice: 2}) | |
238 | - t.equal(friends, 3, "carol's createFriendStream has 3 peers") | |
239 | - t.end() | |
218 … | + carol.getVectorClock(function (err, vclock) { | |
219 … | + t.equals(vclock[alice.id], 3) | |
220 … | + t.equals(vclock[bob.id], 2) | |
221 … | + t.equals(vclock[carol.id], 2) | |
222 … | + | |
223 … | + t.equal(friends, 3, "carol's createFriendStream has 3 peers") | |
224 … | + t.end() | |
225 … | + }) | |
240 | 226 … | }) |
241 | 227 … | ) |
242 | 228 … | } |
243 | 229 … | }) |
@@ -259,4 +245,21 @@ | ||
259 | 245 … | |
260 | 246 … | |
261 | 247 … | |
262 | 248 … | |
249 … | + | |
250 … | + | |
251 … | + | |
252 … | + | |
253 … | + | |
254 … | + | |
255 … | + | |
256 … | + | |
257 … | + | |
258 … | + | |
259 … | + | |
260 … | + | |
261 … | + | |
262 … | + | |
263 … | + | |
264 … | + | |
265 … | + |
test/block2.js | ||
---|---|---|
@@ -6,8 +6,9 @@ | ||
6 | 6 … | |
7 | 7 … | var createSbot = require('../') |
8 | 8 … | .use(require('../plugins/replicate')) |
9 | 9 … | .use(require('ssb-friends')) |
10 … | + .use(require('ssb-ebt')) | |
10 | 11 … | |
11 | 12 … | var alice = createSbot({ |
12 | 13 … | temp: 'test-block-alice', //timeout: 1400, |
13 | 14 … | keys: ssbKeys.generate() |
@@ -58,4 +59,6 @@ | ||
58 | 59 … | }) |
59 | 60 … | |
60 | 61 … | |
61 | 62 … | |
63 … | + | |
64 … | + |
test/block3.js | ||
---|---|---|
@@ -19,8 +19,9 @@ | ||
19 | 19 … | |
20 | 20 … | var createSbot = require('../') |
21 | 21 … | .use(require('../plugins/replicate')) |
22 | 22 … | .use(require('ssb-friends')) |
23 … | + .use(require('ssb-ebt')) | |
23 | 24 … | |
24 | 25 … | var alice = createSbot({ |
25 | 26 … | temp: 'test-block-alice', timeout: 1000, |
26 | 27 … | keys: ssbKeys.generate() |
@@ -83,4 +84,5 @@ | ||
83 | 84 … | |
84 | 85 … | |
85 | 86 … | |
86 | 87 … | |
88 … | + |
test/random.js | ||
---|---|---|
@@ -37,8 +37,9 @@ | ||
37 | 37 … | |
38 | 38 … | var createSbot = require('../') |
39 | 39 … | .use(require('../plugins/replicate')) |
40 | 40 … | .use(require('ssb-friends')) |
41 … | + .use(require('ssb-ebt')) | |
41 | 42 … | .use(require('../plugins/gossip')) |
42 | 43 … | |
43 | 44 … | function generateAnimals (sbot, feed, f, n, cb) { |
44 | 45 … | var a = [feed] |
@@ -130,9 +131,9 @@ | ||
130 | 131 … | |
131 | 132 … | var animalNetwork = createSbot({ |
132 | 133 … | temp: 'test-random-animals', |
133 | 134 … | port: 45451, host: 'localhost', timeout: 20001, |
134 | - replication: {hops: 3}, keys: alice | |
135 … | + replication: {hops: 3, legacy: false}, keys: alice | |
135 | 136 … | }) |
136 | 137 … | |
137 | 138 … | pull( |
138 | 139 … | animalNetwork.replicate.changes(), |
@@ -234,9 +235,9 @@ | ||
234 | 235 … | var start = Date.now() |
235 | 236 … | var animalFriends = createSbot({ |
236 | 237 … | temp: 'test-random-animals2', |
237 | 238 … | port: 45452, host: 'localhost', timeout: 20001, |
238 | - replication: {hops: 3}, | |
239 … | + replicate: {hops: 3, legacy: false}, | |
239 | 240 … | progress: true, |
240 | 241 … | seeds: [animalNetwork.getAddress()], |
241 | 242 … | keys: bob |
242 | 243 … | }) |
@@ -253,25 +254,40 @@ | ||
253 | 254 … | }) |
254 | 255 … | |
255 | 256 … | var drain |
256 | 257 … | |
257 | - pull( | |
258 | - animalFriends.replicate.changes(), | |
259 | - drain = pull.drain(function (prog) { | |
260 | - prog.id = 'animal friends' | |
258 … | +// pull( | |
259 … | +// animalFriends.replicate.changes(), | |
260 … | +// drain = pull.drain(function (prog) { | |
261 … | +// prog.id = 'animal friends' | |
262 … | +// var target = F+N+3 | |
263 … | +// process.stdout.write(bar(prog)) | |
264 … | +// if(prog.progress === target) { | |
265 … | +// console.log("DONE!!!!") | |
266 … | +// var time = (Date.now() - start) / 1000 | |
267 … | +// console.log('replicated', target, 'messages in', time, 'at rate',target/time) | |
268 … | +// t.equal(c, 1, 'everything replicated within a single connection') | |
269 … | +// animalFriends.close(true) | |
270 … | +// drain.abort() | |
271 … | +// t.end() | |
272 … | +// } | |
273 … | +// }) | |
274 … | +// ) | |
275 … | + | |
276 … | + require('../lib/progress')(animalFriends.progress) | |
277 … | + | |
278 … | + var int = setInterval(function () { | |
279 … | + var prog = animalFriends.progress() | |
280 … | + if(prog.ebt && prog.ebt.current === prog.ebt.target) { | |
261 | 281 … | var target = F+N+3 |
262 | - process.stdout.write(bar(prog)) | |
263 | - if(prog.progress === target) { | |
264 | - console.log("DONE!!!!") | |
265 | - var time = (Date.now() - start) / 1000 | |
266 | - console.log('replicated', target, 'messages in', time, 'at rate',target/time) | |
267 | - t.equal(c, 1, 'everything replicated within a single connection') | |
268 | - animalFriends.close(true) | |
269 | - drain.abort() | |
270 | - t.end() | |
271 | - } | |
272 | - }) | |
273 | - ) | |
282 … | + var time = (Date.now() - start) / 1000 | |
283 … | + console.log('replicated', target, 'messages in', time, 'at rate',target/time) | |
284 … | + clearInterval(int) | |
285 … | + t.equal(c, 1, 'everything replicated within a single connection') | |
286 … | + animalFriends.close(true) | |
287 … | + t.end() | |
288 … | + } | |
289 … | + }, 200) | |
274 | 290 … | |
275 | 291 … | animalFriends.logging = true |
276 | 292 … | |
277 | 293 … | if(!animalFriends.friends) |
@@ -293,4 +309,9 @@ | ||
293 | 309 … | t.end() |
294 | 310 … | }) |
295 | 311 … | |
296 | 312 … | |
313 … | + | |
314 … | + | |
315 … | + | |
316 … | + | |
317 … | + |
test/realtime.js | ||
---|---|---|
@@ -7,22 +7,25 @@ | ||
7 | 7 … | var ssbKeys = require('ssb-keys') |
8 | 8 … | |
9 | 9 … | var createSbot = require('../') |
10 | 10 … | .use(require('../plugins/replicate')) |
11 … | + .use(require('ssb-ebt')) | |
11 | 12 … | .use(require('ssb-friends')) |
12 | 13 … | |
13 | 14 … | tape('replicate between 3 peers', function (t) { |
14 | 15 … | |
15 | 16 … | var bob = createSbot({ |
16 | 17 … | temp: 'test-bob', |
17 | 18 … | // port: 45452, host: 'localhost', |
19 … | + replicate: {legacy: false}, | |
18 | 20 … | keys: ssbKeys.generate() |
19 | 21 … | }) |
20 | 22 … | |
21 | 23 … | var alice = createSbot({ |
22 | 24 … | temp: 'test-alice', |
23 | 25 … | // port: 45453, host: 'localhost', |
24 | 26 … | seeds: [bob.getAddress()], |
27 … | + replicate: {legacy: false}, | |
25 | 28 … | keys: ssbKeys.generate() |
26 | 29 … | }) |
27 | 30 … | |
28 | 31 … | cont.para([ |
@@ -68,4 +71,5 @@ | ||
68 | 71 … | |
69 | 72 … | }) |
70 | 73 … | }) |
71 | 74 … | |
75 … | + |
test/server.js | ||
---|---|---|
@@ -12,8 +12,9 @@ | ||
12 | 12 … | // and get them to follow each other... |
13 | 13 … | |
14 | 14 … | var createSbot = require('../') |
15 | 15 … | .use(require('../plugins/replicate')) |
16 … | +// .use(require('ssb-ebt')) | |
16 | 17 … | .use(require('ssb-friends')) |
17 | 18 … | .use(require('../plugins/gossip')) |
18 | 19 … | .use(require('../plugins/logging')) |
19 | 20 … | |
@@ -23,22 +24,25 @@ | ||
23 | 24 … | var dbA = createSbot({ |
24 | 25 … | temp: 'server-alice', |
25 | 26 … | port: 45451, timeout: 1400, |
26 | 27 … | keys: alice = ssbKeys.generate(), |
28 … | + //replicate: {legacy: false}, | |
27 | 29 … | level: 'info' |
28 | 30 … | }) |
29 | 31 … | var dbB = createSbot({ |
30 | 32 … | temp: 'server-bob', |
31 | 33 … | port: 45452, timeout: 1400, |
32 | 34 … | keys: bob = ssbKeys.generate(), |
33 | 35 … | seeds: [dbA.getAddress()], |
36 … | + //replicate: {legacy: false}, | |
34 | 37 … | level: 'info' |
35 | 38 … | }) |
36 | 39 … | var dbC = createSbot({ |
37 | 40 … | temp: 'server-carol', |
38 | 41 … | port: 45453, timeout: 1400, |
39 | 42 … | keys: carol = ssbKeys.generate(), |
40 | 43 … | seeds: [dbA.getAddress()], |
44 … | + //replicate: {legacy: false}, | |
41 | 45 … | level: 'info' |
42 | 46 … | }) |
43 | 47 … | |
44 | 48 … | var apub = cont(dbA.publish) |
@@ -89,8 +93,4 @@ | ||
89 | 93 … | } |
90 | 94 … | }) |
91 | 95 … | }) |
92 | 96 … | |
93 | - | |
94 | - | |
95 | - | |
96 | - |
Built with git-ssb-web