Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
2244bb9
WIP
victorb May 17, 2018
463a3ac
Expire peers +_protect namespace if already exists when creating
victorb May 17, 2018
2a93a8b
Store to handle global namespace
victorb May 17, 2018
8573cff
WIP
victorb May 19, 2018
935f925
Make the store tests pass
victorb May 21, 2018
2556b06
feat: New state-based system
mkg20001 May 19, 2018
b5f2197
Fixes for state system
mkg20001 May 19, 2018
be3ab16
Fix a race cond in dial
mkg20001 May 19, 2018
56a6549
Add discover function
mkg20001 May 19, 2018
840a3a6
misc: lint
mkg20001 May 19, 2018
6fe96e1
test: Fix browser tests
mkg20001 May 19, 2018
6e4df35
chore: upgrade deps
mkg20001 Jun 8, 2018
050c78a
Add clearEmptyNamespaces function to store
mkg20001 Jun 8, 2018
8815ae0
Split utils in store
mkg20001 Jun 8, 2018
ddbe9aa
Begin rewriting server
mkg20001 Jun 8, 2018
8540852
Add missing handlers for discover/unregister
mkg20001 Jun 8, 2018
5325c92
Tweaks
mkg20001 Jun 8, 2018
55eae94
Finish register
mkg20001 Jun 8, 2018
dc5d317
Tweaks
mkg20001 Jun 8, 2018
baa64b2
Rm duplicate code
mkg20001 Jun 8, 2018
152d91a
Finish discover on server
mkg20001 Jun 9, 2018
f7ea0e0
WIP client rewrite
mkg20001 Jun 9, 2018
d97dca5
WIP
mkg20001 Jun 9, 2018
aa0ca21
fix
mkg20001 Jun 9, 2018
118c6cd
Client sync function
mkg20001 Jun 9, 2018
1d3f6d5
Clean
mkg20001 Jun 9, 2018
c3586f3
Work on tests
mkg20001 Jun 9, 2018
6c5b371
Clean
mkg20001 Jun 9, 2018
9c4a7f4
More work on tests
mkg20001 Jun 9, 2018
ca335b2
Rename files
mkg20001 Jun 9, 2018
8bf0ca8
Work on tests
mkg20001 Jun 9, 2018
0c3b76b
More work on tests
mkg20001 Jun 9, 2018
e14743a
fix
mkg20001 Jun 9, 2018
b754102
WIP
mkg20001 Jun 10, 2018
91e2e9a
WIP tests
mkg20001 Jun 11, 2018
d05c234
More fix
mkg20001 Jun 11, 2018
056db10
Fix tests
mkg20001 Jun 11, 2018
4981c54
Cleanup
mkg20001 Jun 11, 2018
ed735ed
Rm yarn.lock
mkg20001 Jun 11, 2018
f78da18
More cleanup
mkg20001 Jun 11, 2018
9482c06
Cleanup
mkg20001 Jun 11, 2018
0c23e11
More fixes - Libp2p discover interface
mkg20001 Jun 11, 2018
055b0f0
Better cookie
mkg20001 Jun 11, 2018
bd70e66
Sync on disconnect
mkg20001 Jun 11, 2018
5590e63
Tiny fix
mkg20001 Jun 11, 2018
9985dbb
Enable circuit - Dial test
mkg20001 Jun 12, 2018
10f6880
Merge branch 'master' into feat/improve-and-cleanup
jacobheun Feb 1, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
test: Fix browser tests
  • Loading branch information
mkg20001 committed Jun 8, 2018
commit 6fe96e1e961bed0b90b30811d3c5a0ba7c427632
24 changes: 24 additions & 0 deletions .aegir.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
'use strict'

const Utils = require('./test/utils')

let Server

function pre (done) {
Utils.createServer(require('./test/server.id.json'), ['/ip4/127.0.0.1/tcp/3236/ws'], {}, (err, server) => {
if (err) return done(err)
Server = server
done()
})
}

function post (done) {
Server.stop(done)
}

module.exports = {
hooks: {
pre,
post
}
}
6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
"test:browser": "aegir test -t browser",
"test:webworker": "aegir test -t webworker"
},
"browser": {
"test/utils.js": "./test/utils.browser.js"
},
"keywords": [
"libp2p",
"rendezvous",
Expand All @@ -30,7 +33,8 @@
"libp2p-mplex": "^0.7.0",
"libp2p-secio": "^0.10.0",
"libp2p-spdy": "^0.12.1",
"libp2p-tcp": "^0.12.0"
"libp2p-tcp": "^0.12.0",
"libp2p-websockets": "^0.12.0"
},
"repository": {
"type": "git",
Expand Down
14 changes: 7 additions & 7 deletions src/server/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Server {
this._stubNS = this.store.create(Buffer.alloc(256, '0').toString())
}

start () {
start (cb) {
this.gcIntv = setInterval(this.gc.bind(this), 60 * 1000)
this.node.handle('/rendezvous/1.0.0', (proto, conn) => {
const rpc = new RPC(this)
Expand All @@ -31,14 +31,14 @@ class Server {
this.storeRPC(rpc)
})
})
if (cb) cb()
}

stop () {
if (this && this.gcIntv) {
clearInterval(this.gcIntv)
// TODO: clear vars, shutdown conns, etc.
this.node.unhandle('/rendezvous/1.0.0')
}
stop (cb) {
clearInterval(this.gcIntv)
// TODO: clear vars, shutdown conns, etc.
this.node.unhandle('/rendezvous/1.0.0')
this.node.stop(cb)
}

storeRPC (rpc) {
Expand Down
10 changes: 6 additions & 4 deletions test/discovery.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,10 @@ describe.skip('discovery', () => {
parallel([client, client2].map(c => cb => c.stop(cb)), done)
})

it('gc', () => {
server.gc()
expect(Object.keys(server.table.NS)).to.have.lengthOf(0)
})
if (Utils.createServer) {
it('gc', () => {
server.gc()
expect(Object.keys(server.table.NS)).to.have.lengthOf(0)
})
}
})
86 changes: 86 additions & 0 deletions test/utils.browser.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
'use strict'

const Libp2p = require('libp2p')
const WS = require('libp2p-websockets')
const MPLEX = require('libp2p-mplex')
const SPDY = require('libp2p-spdy')
const SECIO = require('libp2p-secio')

const Id = require('peer-id')
const Peer = require('peer-info')

const Client = require('../src')

const Utils = module.exports = (id, addrs, cb) => {
Id.createFromJSON(id, (err, id) => {
if (err) return cb(err)
const peer = new Peer(id)
addrs.forEach(a => peer.multiaddrs.add(a))

const swarm = new Libp2p({
transport: [
new WS()
],
connection: {
muxer: [
MPLEX,
SPDY
],
crypto: [SECIO]
}
}, peer, null, {
relay: {
enabled: true,
hop: {
enabled: true,
active: false
}
}
})

swarm.start(err => {
if (err) return cb(err)
cb(null, swarm)
})
})
}

Utils.id = (id, addrs, cb) => {
Id.createFromJSON(id, (err, id) => {
if (err) return cb(err)
const peer = new Peer(id)
addrs.forEach(a => peer.multiaddrs.add(a))
cb(null, peer)
})
}

Utils.createServerMock = (id, addrs, cb) => {
Utils.id(id, addrs, (err, peerInfo) => {
if (err) return cb(err)
let swarm = {peerInfo}
let server = {node: swarm}
return cb(null, server, swarm)
})
}

Utils.createClient = (id, addrs, cb) => {
Utils(id, addrs, (err, swarm) => {
if (err) return cb(err)
const client = new Client(swarm)
client.start(err => {
if (err) return cb(err)
return cb(null, client, swarm)
})
})
}

Utils.default = cb => Utils.createServerMock(require('./server.id.json'), ['/ip4/127.0.0.1/tcp/3236/ws'], (err, server) => {
if (err) return cb(err)
Utils.createClient(require('./client.id.json'), [], (err, client) => {
if (err) return cb(err)
Utils.createClient(require('./client2.id.json'), [], (err, client2) => {
if (err) return cb(err)
return cb(null, client, server, client2)
})
})
})
14 changes: 8 additions & 6 deletions test/utils.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
'use strict'

const Libp2p = require('libp2p')
const TCP = require('libp2p-tcp')
const WS = require('libp2p-websockets')
const MPLEX = require('libp2p-mplex')
const SECIO = require('libp2p-secio')
Expand Down Expand Up @@ -128,14 +129,15 @@ const Server = require('../src/server')
const Client = require('../src')

const Utils = module.exports = (id, addrs, cb) => {
Id.createFromJSON(require(id), (err, id) => {
Id.createFromJSON(id, (err, id) => {
if (err) return cb(err)
const peer = new Peer(id)
addrs.forEach(a => peer.multiaddrs.add(a))

const swarm = new Libp2p({
transport: [
new TCP()
new TCP(),
new WS()
],
connection: {
muxer: [
Expand All @@ -162,7 +164,7 @@ const Utils = module.exports = (id, addrs, cb) => {
}

Utils.id = (id, addrs, cb) => {
Id.createFromJSON(require(id), (err, id) => {
Id.createFromJSON(id, (err, id) => {
if (err) return cb(err)
const peer = new Peer(id)
addrs.forEach(a => peer.multiaddrs.add(a))
Expand Down Expand Up @@ -190,11 +192,11 @@ Utils.createClient = (id, addrs, cb) => {
})
}

Utils.default = cb => Utils.createServer('./server.id.json', ['/ip4/0.0.0.0/tcp/0'], {}, (err, server) => {
Utils.default = cb => Utils.createServer(require('./server.id.json'), ['/ip4/0.0.0.0/tcp/0'], {}, (err, server) => {
if (err) return cb(err)
Utils.createClient('./client.id.json', ['/ip4/0.0.0.0/tcp/0'], (err, client) => {
Utils.createClient(require('./client.id.json'), ['/ip4/0.0.0.0/tcp/0'], (err, client) => {
if (err) return cb(err)
Utils.createClient('./client2.id.json', ['/ip4/0.0.0.0/tcp/0'], (err, client2) => {
Utils.createClient(require('./client2.id.json'), ['/ip4/0.0.0.0/tcp/0'], (err, client2) => {
if (err) return cb(err)
return cb(null, client, server, client2)
})
Expand Down