mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-04-16 22:22:14 +00:00
chore: remove pdd test stories (#546)
This commit is contained in:
parent
f4ec459a7b
commit
141cf90ca0
@ -1,3 +0,0 @@
|
|||||||
# PDD Test Stories Implementation
|
|
||||||
|
|
||||||
> Implementation of the Compliance tests from https://github.com/libp2p/interop
|
|
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "pdd-impl",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"description": "PDD Test Stories implementation",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": " "
|
|
||||||
},
|
|
||||||
"keywords": [
|
|
||||||
"PDD",
|
|
||||||
"libp2p"
|
|
||||||
],
|
|
||||||
"author": "David Dias <daviddias@ipfs.io>",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"libp2p": "file:./..",
|
|
||||||
"libp2p-interop": "github:libp2p/interop#master",
|
|
||||||
"tape": "^4.8.0"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,104 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
|
|
||||||
const test = require('tape')
|
|
||||||
const libp2p = require('libp2p')
|
|
||||||
const TCP = require('libp2p-tcp')
|
|
||||||
const WebSockets = require('libp2p-websockets')
|
|
||||||
const SECIO = require('libp2p-secio')
|
|
||||||
const Multiplex = require('libp2p-multiplex')
|
|
||||||
const Railing = require('libp2p-railing')
|
|
||||||
const MulticastDNS = require('libp2p-mdns')
|
|
||||||
const KadDHT = require('libp2p-kad-dht')
|
|
||||||
const PeerInfo = require('peer-info')
|
|
||||||
const pull = require('pull-stream')
|
|
||||||
const waterfall = require('async/waterfall')
|
|
||||||
const series = require('async/series')
|
|
||||||
const PeerA = require('libp2p-interop/peer-a.json')
|
|
||||||
const PeerB = require('libp2p-interop/peer-b.json')
|
|
||||||
|
|
||||||
class IPFSBundle extends libp2p {
|
|
||||||
constructor (peerInfo, options) {
|
|
||||||
options = Object.assign({ bootstrap: [] }, options)
|
|
||||||
|
|
||||||
const modules = {
|
|
||||||
transport: [
|
|
||||||
new TCP(),
|
|
||||||
new WebSockets()
|
|
||||||
],
|
|
||||||
connection: {
|
|
||||||
muxer: [
|
|
||||||
Multiplex
|
|
||||||
],
|
|
||||||
crypto: [
|
|
||||||
SECIO
|
|
||||||
]
|
|
||||||
},
|
|
||||||
discovery: [
|
|
||||||
new MulticastDNS(peerInfo, 'ipfs.local'),
|
|
||||||
new Railing(options.bootstrap)
|
|
||||||
],
|
|
||||||
DHT: KadDHT
|
|
||||||
}
|
|
||||||
|
|
||||||
super(modules, peerInfo, undefined, options)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
test('story 1 - peerA', (t) => {
|
|
||||||
t.plan(10)
|
|
||||||
let node
|
|
||||||
|
|
||||||
waterfall([
|
|
||||||
(cb) => PeerInfo.create(PeerA, cb),
|
|
||||||
(peerInfo, cb) => {
|
|
||||||
peerInfo.multiaddrs.add('/ip4/127.0.0.1/tcp/10000')
|
|
||||||
node = new IPFSBundle(peerInfo)
|
|
||||||
node.start(cb)
|
|
||||||
}
|
|
||||||
], (err) => {
|
|
||||||
t.ifErr(err, 'created Node successfully')
|
|
||||||
t.ok(node.isStarted(), 'PeerA is Running')
|
|
||||||
|
|
||||||
const peerBAddr = `/ip4/127.0.0.1/tcp/10001/p2p/${PeerB.id}`
|
|
||||||
|
|
||||||
node.handle('/time/1.0.0', (protocol, conn) => {
|
|
||||||
pull(
|
|
||||||
pull.values([Date.now().toString()]),
|
|
||||||
conn,
|
|
||||||
pull.onEnd((err) => {
|
|
||||||
t.ifErr(err)
|
|
||||||
t.pass('Sent time successfully')
|
|
||||||
})
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
series([
|
|
||||||
(cb) => setTimeout(cb, 5 * 1000), // time to run both scripts
|
|
||||||
(cb) => node.ping(peerBAddr, (err, p) => {
|
|
||||||
t.ifErr(err, 'initiated Ping to PeerB')
|
|
||||||
p.once('error', (err) => t.ifErr(err, 'Ping should not fail'))
|
|
||||||
p.once('ping', (time) => {
|
|
||||||
t.pass('ping PeerB successfully')
|
|
||||||
p.stop()
|
|
||||||
cb()
|
|
||||||
})
|
|
||||||
}),
|
|
||||||
(cb) => node.dial(peerBAddr, '/echo/1.0.0', (err, conn) => {
|
|
||||||
t.ifErr(err, 'dial successful')
|
|
||||||
|
|
||||||
const data = Buffer.from('Hey')
|
|
||||||
|
|
||||||
pull(
|
|
||||||
pull.values([data]),
|
|
||||||
conn,
|
|
||||||
pull.collect((err, values) => {
|
|
||||||
t.ifErr(err, 'Received echo back')
|
|
||||||
t.deepEqual(values[0], data)
|
|
||||||
cb()
|
|
||||||
})
|
|
||||||
)
|
|
||||||
}),
|
|
||||||
(cb) => setTimeout(cb, 2 * 1000) // time to both finish
|
|
||||||
], () => node.stop((err) => t.ifErr(err, 'PeerA has stopped')))
|
|
||||||
})
|
|
||||||
})
|
|
@ -1,98 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
|
|
||||||
const test = require('tape')
|
|
||||||
const libp2p = require('libp2p')
|
|
||||||
const TCP = require('libp2p-tcp')
|
|
||||||
const WebSockets = require('libp2p-websockets')
|
|
||||||
const SECIO = require('libp2p-secio')
|
|
||||||
const Multiplex = require('libp2p-multiplex')
|
|
||||||
const Railing = require('libp2p-railing')
|
|
||||||
const MulticastDNS = require('libp2p-mdns')
|
|
||||||
const KadDHT = require('libp2p-kad-dht')
|
|
||||||
const PeerInfo = require('peer-info')
|
|
||||||
const pull = require('pull-stream')
|
|
||||||
const waterfall = require('async/waterfall')
|
|
||||||
const series = require('async/series')
|
|
||||||
const PeerA = require('libp2p-interop/peer-a.json')
|
|
||||||
const PeerB = require('libp2p-interop/peer-b.json')
|
|
||||||
|
|
||||||
class IPFSBundle extends libp2p {
|
|
||||||
constructor (peerInfo, options) {
|
|
||||||
options = Object.assign({ bootstrap: [] }, options)
|
|
||||||
|
|
||||||
const modules = {
|
|
||||||
transport: [
|
|
||||||
new TCP(),
|
|
||||||
new WebSockets()
|
|
||||||
],
|
|
||||||
connection: {
|
|
||||||
muxer: [
|
|
||||||
Multiplex
|
|
||||||
],
|
|
||||||
crypto: [
|
|
||||||
SECIO
|
|
||||||
]
|
|
||||||
},
|
|
||||||
discovery: [
|
|
||||||
new MulticastDNS(peerInfo, 'ipfs.local'),
|
|
||||||
new Railing(options.bootstrap)
|
|
||||||
],
|
|
||||||
DHT: KadDHT
|
|
||||||
}
|
|
||||||
|
|
||||||
super(modules, peerInfo, undefined, options)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
test('story 1 - peerA', (t) => {
|
|
||||||
t.plan(8)
|
|
||||||
let node
|
|
||||||
|
|
||||||
waterfall([
|
|
||||||
(cb) => PeerInfo.create(PeerB, cb),
|
|
||||||
(peerInfo, cb) => {
|
|
||||||
peerInfo.multiaddrs.add('/ip4/127.0.0.1/tcp/10001')
|
|
||||||
node = new IPFSBundle(peerInfo)
|
|
||||||
node.start(cb)
|
|
||||||
}
|
|
||||||
], (err) => {
|
|
||||||
t.ifErr(err, 'created Node successfully')
|
|
||||||
t.ok(node.isStarted(), 'PeerB is Running')
|
|
||||||
|
|
||||||
const peerAAddr = `/ip4/127.0.0.1/tcp/10000/p2p/${PeerA.id}`
|
|
||||||
|
|
||||||
node.handle('/echo/1.0.0', (protocol, conn) => {
|
|
||||||
pull(
|
|
||||||
conn,
|
|
||||||
conn,
|
|
||||||
pull.onEnd((err) => t.ifErr(err, 'echo was successful'))
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
series([
|
|
||||||
(cb) => setTimeout(cb, 5 * 1000), // time to run both scripts
|
|
||||||
(cb) => node.ping(peerAAddr, (err, p) => {
|
|
||||||
t.ifErr(err, 'initiated Ping to PeerA')
|
|
||||||
p.once('error', (err) => t.ifErr(err, 'Ping should not fail'))
|
|
||||||
p.once('ping', (time) => {
|
|
||||||
t.pass('ping PeerA successfully')
|
|
||||||
p.stop()
|
|
||||||
cb()
|
|
||||||
})
|
|
||||||
}),
|
|
||||||
(cb) => node.dial(peerAAddr, '/time/1.0.0', (err, conn) => {
|
|
||||||
t.ifErr(err, 'dial successful')
|
|
||||||
|
|
||||||
pull(
|
|
||||||
pull.values([]),
|
|
||||||
conn,
|
|
||||||
pull.collect((err, values) => {
|
|
||||||
t.ifErr(err, 'Received time')
|
|
||||||
cb()
|
|
||||||
})
|
|
||||||
)
|
|
||||||
}),
|
|
||||||
(cb) => setTimeout(cb, 2 * 1000) // time to both finish
|
|
||||||
], () => node.stop((err) => t.ifErr(err, 'PeerB has stopped')))
|
|
||||||
})
|
|
||||||
})
|
|
@ -1,54 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
|
|
||||||
const test = require('tape')
|
|
||||||
const libp2p = require('libp2p')
|
|
||||||
const TCP = require('libp2p-tcp')
|
|
||||||
const PeerInfo = require('peer-info')
|
|
||||||
const waterfall = require('async/waterfall')
|
|
||||||
const pull = require('pull-stream')
|
|
||||||
const PeerA = require('libp2p-interop/peer-a.json')
|
|
||||||
const PeerB = require('libp2p-interop/peer-b.json')
|
|
||||||
|
|
||||||
class MyBundle extends libp2p {
|
|
||||||
constructor (peerInfo) {
|
|
||||||
const modules = {
|
|
||||||
transport: [new TCP()]
|
|
||||||
}
|
|
||||||
super(modules, peerInfo)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
test('story 1 - peerA', (t) => {
|
|
||||||
t.plan(6)
|
|
||||||
let node
|
|
||||||
|
|
||||||
waterfall([
|
|
||||||
(cb) => PeerInfo.create(PeerA, cb),
|
|
||||||
(peerInfo, cb) => {
|
|
||||||
peerInfo.multiaddrs.add('/ip4/127.0.0.1/tcp/10000')
|
|
||||||
node = new MyBundle(peerInfo)
|
|
||||||
node.start(cb)
|
|
||||||
}
|
|
||||||
], (err) => {
|
|
||||||
t.ifErr(err, 'created Node')
|
|
||||||
t.ok(node.isStarted(), 'PeerA is running')
|
|
||||||
|
|
||||||
const PeerBAddr = `/ip4/127.0.0.1/tcp/10001/p2p/${PeerB.id}`
|
|
||||||
|
|
||||||
node.dial(PeerBAddr, '/echo/1.0.0', (err, conn) => {
|
|
||||||
t.ifErr(err, 'dial successful')
|
|
||||||
|
|
||||||
const data = Buffer.from('Heey')
|
|
||||||
|
|
||||||
pull(
|
|
||||||
pull.values([data]),
|
|
||||||
conn,
|
|
||||||
pull.collect((err, values) => {
|
|
||||||
t.ifErr(err, 'Received echo back')
|
|
||||||
t.deepEqual(values[0], data)
|
|
||||||
node.stop((err) => t.ifErr(err, 'PeerA has stopped'))
|
|
||||||
})
|
|
||||||
)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
@ -1,49 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
|
|
||||||
const test = require('tape')
|
|
||||||
const libp2p = require('libp2p')
|
|
||||||
const TCP = require('libp2p-tcp')
|
|
||||||
const PeerInfo = require('peer-info')
|
|
||||||
const waterfall = require('async/waterfall')
|
|
||||||
const pull = require('pull-stream')
|
|
||||||
const PeerB = require('libp2p-interop/peer-b.json')
|
|
||||||
|
|
||||||
class MyBundle extends libp2p {
|
|
||||||
constructor (peerInfo) {
|
|
||||||
const modules = {
|
|
||||||
transport: [new TCP()]
|
|
||||||
}
|
|
||||||
super(modules, peerInfo)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
test('story 1 - peerB', (t) => {
|
|
||||||
t.plan(5)
|
|
||||||
let node
|
|
||||||
|
|
||||||
waterfall([
|
|
||||||
(cb) => PeerInfo.create(PeerB, cb),
|
|
||||||
(peerInfo, cb) => {
|
|
||||||
peerInfo.multiaddrs.add('/ip4/127.0.0.1/tcp/10001')
|
|
||||||
node = new MyBundle(peerInfo)
|
|
||||||
node.start(cb)
|
|
||||||
}
|
|
||||||
], (err) => {
|
|
||||||
t.ifErr(err)
|
|
||||||
t.ok(node.isStarted(), 'PeerB is running')
|
|
||||||
|
|
||||||
node.handle('/echo/1.0.0', (protocol, conn) => {
|
|
||||||
pull(
|
|
||||||
conn,
|
|
||||||
conn,
|
|
||||||
pull.onEnd((err) => {
|
|
||||||
t.ifErr(err)
|
|
||||||
t.pass('Received End of Connection')
|
|
||||||
node.stop((err) => {
|
|
||||||
t.ifErr(err, 'PeerB has stopped')
|
|
||||||
})
|
|
||||||
})
|
|
||||||
)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
@ -1,54 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
|
|
||||||
const test = require('tape')
|
|
||||||
const libp2p = require('libp2p')
|
|
||||||
const WebSockets = require('libp2p-websockets')
|
|
||||||
const PeerInfo = require('peer-info')
|
|
||||||
const waterfall = require('async/waterfall')
|
|
||||||
const pull = require('pull-stream')
|
|
||||||
const PeerA = require('libp2p-interop/peer-a.json')
|
|
||||||
const PeerB = require('libp2p-interop/peer-b.json')
|
|
||||||
|
|
||||||
class MyBundle extends libp2p {
|
|
||||||
constructor (peerInfo) {
|
|
||||||
const modules = {
|
|
||||||
transport: [new WebSockets()]
|
|
||||||
}
|
|
||||||
super(modules, peerInfo)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
test('story 2 - peerA', (t) => {
|
|
||||||
t.plan(6)
|
|
||||||
let node
|
|
||||||
|
|
||||||
waterfall([
|
|
||||||
(cb) => PeerInfo.create(PeerA, cb),
|
|
||||||
(peerInfo, cb) => {
|
|
||||||
peerInfo.multiaddrs.add('/ip4/127.0.0.1/tcp/10000/ws')
|
|
||||||
node = new MyBundle(peerInfo)
|
|
||||||
node.start(cb)
|
|
||||||
}
|
|
||||||
], (err) => {
|
|
||||||
t.ifErr(err, 'created Node')
|
|
||||||
t.ok(node.isStarted(), 'PeerA is running')
|
|
||||||
|
|
||||||
const PeerBAddr = `/ip4/127.0.0.1/tcp/10001/p2p/${PeerB.id}`
|
|
||||||
|
|
||||||
node.dial(PeerBAddr, '/echo/1.0.0', (err, conn) => {
|
|
||||||
t.ifErr(err, 'dial successful')
|
|
||||||
|
|
||||||
const data = Buffer.from('Heey')
|
|
||||||
|
|
||||||
pull(
|
|
||||||
pull.values([data]),
|
|
||||||
conn,
|
|
||||||
pull.collect((err, values) => {
|
|
||||||
t.ifErr(err, 'Received echo back')
|
|
||||||
t.deepEqual(values[0], data)
|
|
||||||
node.stop((err) => t.ifErr(err, 'PeerA has stopped'))
|
|
||||||
})
|
|
||||||
)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
@ -1,49 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
|
|
||||||
const test = require('tape')
|
|
||||||
const libp2p = require('libp2p')
|
|
||||||
const WebSockets = require('libp2p-websockets')
|
|
||||||
const PeerInfo = require('peer-info')
|
|
||||||
const waterfall = require('async/waterfall')
|
|
||||||
const pull = require('pull-stream')
|
|
||||||
const PeerB = require('libp2p-interop/peer-b.json')
|
|
||||||
|
|
||||||
class MyBundle extends libp2p {
|
|
||||||
constructor (peerInfo) {
|
|
||||||
const modules = {
|
|
||||||
transport: [new WebSockets()]
|
|
||||||
}
|
|
||||||
super(modules, peerInfo)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
test('story 2 - peerB', (t) => {
|
|
||||||
t.plan(5)
|
|
||||||
let node
|
|
||||||
|
|
||||||
waterfall([
|
|
||||||
(cb) => PeerInfo.create(PeerB, cb),
|
|
||||||
(peerInfo, cb) => {
|
|
||||||
peerInfo.multiaddrs.add('/ip4/127.0.0.1/tcp/10001/ws')
|
|
||||||
node = new MyBundle(peerInfo)
|
|
||||||
node.start(cb)
|
|
||||||
}
|
|
||||||
], (err) => {
|
|
||||||
t.ifErr(err)
|
|
||||||
t.ok(node.isStarted(), 'PeerB is running')
|
|
||||||
|
|
||||||
node.handle('/echo/1.0.0', (protocol, conn) => {
|
|
||||||
pull(
|
|
||||||
conn,
|
|
||||||
pull.through(v => v, err => {
|
|
||||||
t.ifErr(err)
|
|
||||||
t.pass('Received End of Connection')
|
|
||||||
node.stop((err) => {
|
|
||||||
t.ifErr(err, 'PeerB has stopped')
|
|
||||||
})
|
|
||||||
}),
|
|
||||||
conn
|
|
||||||
)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
@ -1,42 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
|
|
||||||
const test = require('tape')
|
|
||||||
const libp2p = require('libp2p')
|
|
||||||
const TCP = require('libp2p-tcp')
|
|
||||||
const PeerInfo = require('peer-info')
|
|
||||||
const waterfall = require('async/waterfall')
|
|
||||||
const PeerA = require('libp2p-interop/peer-a.json')
|
|
||||||
const PeerB = require('libp2p-interop/peer-b.json')
|
|
||||||
|
|
||||||
class MyBundle extends libp2p {
|
|
||||||
constructor (peerInfo) {
|
|
||||||
const modules = {
|
|
||||||
transport: [new TCP()]
|
|
||||||
}
|
|
||||||
super(modules, peerInfo)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
test('story 3 - peerA', (t) => {
|
|
||||||
t.plan(4)
|
|
||||||
let node
|
|
||||||
|
|
||||||
waterfall([
|
|
||||||
(cb) => PeerInfo.create(PeerA, cb),
|
|
||||||
(peerInfo, cb) => {
|
|
||||||
peerInfo.multiaddrs.add('/ip4/127.0.0.1/tcp/10000')
|
|
||||||
node = new MyBundle(peerInfo)
|
|
||||||
node.start(cb)
|
|
||||||
}
|
|
||||||
], (err) => {
|
|
||||||
t.ifErr(err, 'created Node')
|
|
||||||
t.ok(node.isStarted(), 'PeerA is running')
|
|
||||||
|
|
||||||
const PeerBAddr = `/ip4/127.0.0.1/tcp/10001/ws/p2p/${PeerB.id}`
|
|
||||||
|
|
||||||
setTimeout(() => node.dial(PeerBAddr, '/echo/1.0.0', (err, conn) => {
|
|
||||||
t.ok(err, 'dial failed')
|
|
||||||
node.stop((err) => t.ifErr(err, 'PeerA has stopped'))
|
|
||||||
}), 1000)
|
|
||||||
})
|
|
||||||
})
|
|
@ -1,42 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
|
|
||||||
const test = require('tape')
|
|
||||||
const libp2p = require('libp2p')
|
|
||||||
const WebSockets = require('libp2p-websockets')
|
|
||||||
const PeerInfo = require('peer-info')
|
|
||||||
const waterfall = require('async/waterfall')
|
|
||||||
const PeerA = require('libp2p-interop/peer-a.json')
|
|
||||||
const PeerB = require('libp2p-interop/peer-b.json')
|
|
||||||
|
|
||||||
class MyBundle extends libp2p {
|
|
||||||
constructor (peerInfo) {
|
|
||||||
const modules = {
|
|
||||||
transport: [new WebSockets()]
|
|
||||||
}
|
|
||||||
super(modules, peerInfo)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
test('story 3 - peerB', (t) => {
|
|
||||||
t.plan(4)
|
|
||||||
let node
|
|
||||||
|
|
||||||
waterfall([
|
|
||||||
(cb) => PeerInfo.create(PeerB, cb),
|
|
||||||
(peerInfo, cb) => {
|
|
||||||
peerInfo.multiaddrs.add('/ip4/127.0.0.1/tcp/10000/ws')
|
|
||||||
node = new MyBundle(peerInfo)
|
|
||||||
node.start(cb)
|
|
||||||
}
|
|
||||||
], (err) => {
|
|
||||||
t.ifErr(err, 'created Node')
|
|
||||||
t.ok(node.isStarted(), 'PeerA is running')
|
|
||||||
|
|
||||||
const PeerAAddr = `/ip4/127.0.0.1/tcp/10000/ws/p2p/${PeerA.id}`
|
|
||||||
|
|
||||||
setTimeout(() => node.dial(PeerAAddr, '/echo/1.0.0', (err, conn) => {
|
|
||||||
t.ok(err, 'dial failed')
|
|
||||||
node.stop((err) => t.ifErr(err, 'PeerA has stopped'))
|
|
||||||
}), 1000)
|
|
||||||
})
|
|
||||||
})
|
|
Loading…
x
Reference in New Issue
Block a user