Skip to content
This repository was archived by the owner on Aug 1, 2023. It is now read-only.

Commit

Permalink
test: check pnet peers after attempted connections
Browse files Browse the repository at this point in the history
  • Loading branch information
jacobheun committed Jul 5, 2018
1 parent ab26a4e commit 74419bf
Showing 1 changed file with 108 additions and 38 deletions.
146 changes: 108 additions & 38 deletions test/pnet.js
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,10 @@ describe('Private network', function () {
jsId2 = ids[1]
cb()
}),
(cb) => jsPrivateDaemon.api.swarm.connect(jsId2.addresses[0], cb),
(cb) => jsSameNetworkDaemon.api.swarm.connect(jsId.addresses[0], cb),
(cb) => parallel([
(cb) => jsPrivateDaemon.api.swarm.connect(jsId2.addresses[0], cb),
(cb) => jsSameNetworkDaemon.api.swarm.connect(jsId.addresses[0], cb)
], cb),
(cb) => parallel([
(cb) => jsPrivateDaemon.api.swarm.peers(cb),
(cb) => jsSameNetworkDaemon.api.swarm.peers(cb)
Expand Down Expand Up @@ -194,8 +196,10 @@ describe('Private network', function () {
goId = ids[1]
cb()
}),
(cb) => goSameNetworkDaemon.api.swarm.connect(jsId.addresses[0], cb),
(cb) => jsPrivateDaemon.api.swarm.connect(goId.addresses[0], cb),
(cb) => parallel([
(cb) => goSameNetworkDaemon.api.swarm.connect(jsId.addresses[0], cb),
(cb) => jsPrivateDaemon.api.swarm.connect(goId.addresses[0], cb)
], cb),
(cb) => parallel([
(cb) => goSameNetworkDaemon.api.swarm.peers(cb),
(cb) => jsPrivateDaemon.api.swarm.peers(cb)
Expand Down Expand Up @@ -254,8 +258,10 @@ describe('Private network', function () {
goSameNetId = ids[1]
cb()
}),
(cb) => goSameNetworkDaemon.api.swarm.connect(goId.addresses[0], cb),
(cb) => goPrivateDaemon.api.swarm.connect(goSameNetId.addresses[0], cb),
(cb) => parallel([
(cb) => goSameNetworkDaemon.api.swarm.connect(goId.addresses[0], cb),
(cb) => goPrivateDaemon.api.swarm.connect(goSameNetId.addresses[0], cb)
], cb),
(cb) => parallel([
(cb) => goSameNetworkDaemon.api.swarm.peers(cb),
(cb) => goPrivateDaemon.api.swarm.peers(cb)
Expand Down Expand Up @@ -287,6 +293,7 @@ describe('Private network', function () {

describe('go <-> js on different private networks', () => {
it('should NOT be able to connect go <-> js', (done) => {
let jsId
let goId

series([
Expand All @@ -295,21 +302,31 @@ describe('Private network', function () {
(cb) => goDiffNetworkDaemon.api.id(cb)
], (err, ids) => {
expect(err).to.not.exist()
goId = ids[1]
jsId = ids.shift()
goId = ids.shift()
cb()
}),
(cb) => jsPrivateDaemon.api.swarm.connect(goId.addresses[0], cb)
], (err) => {
// These errors are currently a bit random depending on who sends data first
// This could be muxing errors, overreading errors, or stream destroyed errors
expect(err).to.exist()
(cb) => parallel([
(cb) => jsPrivateDaemon.api.swarm.connect(goId.addresses[0], cb),
(cb) => goDiffNetworkDaemon.api.swarm.connect(jsId.addresses[0], cb)
], cb),
(cb) => parallel([
(cb) => jsPrivateDaemon.api.swarm.peers(cb),
(cb) => goDiffNetworkDaemon.api.swarm.peers(cb)
], (err, peers) => {
expect(peers[0].map((p) => p.peer.toB58String())).to.not.include(goId.id)
expect(peers[1].map((p) => p.peer.toB58String())).to.not.include(jsId.id)
cb(err)
})
], () => {
done()
})
})
})

describe('js <-> js on different private networks', () => {
it('should NOT be able to connect js <-> js', (done) => {
let jsId
let jsDiffId

series([
Expand All @@ -318,14 +335,23 @@ describe('Private network', function () {
(cb) => jsDiffNetworkDaemon.api.id(cb)
], (err, ids) => {
expect(err).to.not.exist()
jsDiffId = ids[1]
jsId = ids.shift()
jsDiffId = ids.shift()
cb()
}),
(cb) => jsPrivateDaemon.api.swarm.connect(jsDiffId.addresses[0], cb)
], (err) => {
// These errors are currently a bit random depending on who sends data first
// This could be muxing errors, overreading errors, or stream destroyed errors
expect(err).to.exist()
(cb) => parallel([
(cb) => jsPrivateDaemon.api.swarm.connect(jsDiffId.addresses[0], cb),
(cb) => jsDiffNetworkDaemon.api.swarm.connect(jsId.addresses[0], cb)
], cb),
(cb) => parallel([
(cb) => jsPrivateDaemon.api.swarm.peers(cb),
(cb) => jsDiffNetworkDaemon.api.swarm.peers(cb)
], (err, peers) => {
expect(peers[0].map((p) => p.peer.toB58String())).to.not.include(jsDiffId.id)
expect(peers[1].map((p) => p.peer.toB58String())).to.not.include(jsId.id)
cb(err)
})
], () => {
done()
})
})
Expand All @@ -334,6 +360,7 @@ describe('Private network', function () {
// This will currently timeout, as go will not error
describe.skip('go <-> go on different private networks', () => {
it('should NOT be able to connect go <-> go', (done) => {
let goId
let goDiffId

series([
Expand All @@ -342,19 +369,31 @@ describe('Private network', function () {
(cb) => goDiffNetworkDaemon.api.id(cb)
], (err, ids) => {
expect(err).to.not.exist()
goDiffId = ids[1]
goId = ids.shift()
goDiffId = ids.shift()
cb()
}),
(cb) => goPrivateDaemon.api.swarm.connect(goDiffId.addresses[0], cb)
], (err) => {
expect(err).to.exist()
(cb) => parallel([
(cb) => goPrivateDaemon.api.swarm.connect(goDiffId.addresses[0], cb),
(cb) => goDiffNetworkDaemon.api.swarm.connect(goId.addresses[0], cb)
], cb),
(cb) => parallel([
(cb) => jsPrivateDaemon.api.swarm.peers(cb),
(cb) => goDiffNetworkDaemon.api.swarm.peers(cb)
], (err, peers) => {
expect(peers[0].map((p) => p.peer.toB58String())).to.not.include(goDiffId.id)
expect(peers[1].map((p) => p.peer.toB58String())).to.not.include(goId.id)
cb(err)
})
], () => {
done()
})
})
})

describe('js private network <-> go public network', () => {
it('should NOT be able to connect js <-> go', (done) => {
let jsId
let goPubId

series([
Expand All @@ -363,21 +402,31 @@ describe('Private network', function () {
(cb) => goPublicNetworkDaemon.api.id(cb)
], (err, ids) => {
expect(err).to.not.exist()
goPubId = ids[1]
jsId = ids.shift()
goPubId = ids.shift()
cb()
}),
(cb) => jsPrivateDaemon.api.swarm.connect(goPubId.addresses[0], cb)
], (err) => {
// These errors are currently a bit random depending on who sends data first
// This could be muxing errors, bad nonce, or stream destroyed errors
expect(err).to.exist()
(cb) => parallel([
(cb) => jsPrivateDaemon.api.swarm.connect(goPubId.addresses[0], cb),
(cb) => goPublicNetworkDaemon.api.swarm.connect(jsId.addresses[0], cb)
], cb),
(cb) => parallel([
(cb) => jsPrivateDaemon.api.swarm.peers(cb),
(cb) => goPublicNetworkDaemon.api.swarm.peers(cb)
], (err, peers) => {
expect(peers[0].map((p) => p.peer.toB58String())).to.not.include(goPubId.id)
expect(peers[1].map((p) => p.peer.toB58String())).to.not.include(jsId.id)
cb(err)
})
], () => {
done()
})
})
})

describe('js private network <-> js public network', () => {
it('should NOT be able to connect js <-> js', (done) => {
let jsId
let jsPubId

series([
Expand All @@ -386,14 +435,23 @@ describe('Private network', function () {
(cb) => jsPublicNetworkDaemon.api.id(cb)
], (err, ids) => {
expect(err).to.not.exist()
jsPubId = ids[1]
jsId = ids.shift()
jsPubId = ids.shift()
cb()
}),
(cb) => jsPrivateDaemon.api.swarm.connect(jsPubId.addresses[0], cb)
], (err) => {
// These errors are currently a bit random depending on who sends data first
// This could be muxing errors, bad nonce, or stream destroyed errors
expect(err).to.exist()
(cb) => parallel([
(cb) => jsPrivateDaemon.api.swarm.connect(jsPubId.addresses[0], cb),
(cb) => jsPublicNetworkDaemon.api.swarm.connect(jsId.addresses[0], cb)
], cb),
(cb) => parallel([
(cb) => jsPrivateDaemon.api.swarm.peers(cb),
(cb) => jsPublicNetworkDaemon.api.swarm.peers(cb)
], (err, peers) => {
expect(peers[0].map((p) => p.peer.toB58String())).to.not.include(jsPubId.id)
expect(peers[1].map((p) => p.peer.toB58String())).to.not.include(jsId.id)
cb(err)
})
], () => {
done()
})
})
Expand All @@ -402,6 +460,7 @@ describe('Private network', function () {
// This will currently timeout, as go will not error
describe.skip('go private network <-> go public network', () => {
it('should NOT be able to connect go <-> go', (done) => {
let goId
let goPubId

series([
Expand All @@ -410,12 +469,23 @@ describe('Private network', function () {
(cb) => goPublicNetworkDaemon.api.id(cb)
], (err, ids) => {
expect(err).to.not.exist()
goPubId = ids[1]
goId = ids.shift()
goPubId = ids.shift()
cb()
}),
(cb) => goPrivateDaemon.api.swarm.connect(goPubId.addresses[0], cb)
], (err) => {
expect(err).to.exist()
(cb) => parallel([
(cb) => goPrivateDaemon.api.swarm.connect(goPubId.addresses[0], cb),
(cb) => goPublicNetworkDaemon.api.swarm.connect(goId.addresses[0], cb)
], cb),
(cb) => parallel([
(cb) => goPrivateDaemon.api.swarm.peers(cb),
(cb) => goPublicNetworkDaemon.api.swarm.peers(cb)
], (err, peers) => {
expect(peers[0].map((p) => p.peer.toB58String())).to.not.include(goPubId.id)
expect(peers[1].map((p) => p.peer.toB58String())).to.not.include(goId.id)
cb(err)
})
], () => {
done()
})
})
Expand Down

0 comments on commit 74419bf

Please sign in to comment.