2021-01-12 09:56:37 +00:00
|
|
|
import std/os
|
|
|
|
import pkg/asynctest
|
|
|
|
import pkg/chronos
|
|
|
|
import pkg/dagger
|
2021-01-11 09:57:27 +00:00
|
|
|
|
2021-01-12 09:56:37 +00:00
|
|
|
suite "integration":
|
2021-01-11 09:57:27 +00:00
|
|
|
|
2021-01-12 09:56:37 +00:00
|
|
|
let address = initTAddress("127.0.0.1:48952")
|
|
|
|
|
|
|
|
var peer1, peer2: DaggerPeer
|
|
|
|
var input, output: File
|
|
|
|
|
|
|
|
proc setupPeers =
|
|
|
|
peer1 = newDaggerPeer()
|
|
|
|
peer2 = newDaggerPeer()
|
|
|
|
peer1.listen(address)
|
|
|
|
peer2.dial(address)
|
|
|
|
|
|
|
|
proc setupFiles =
|
|
|
|
input = open("tests/input.txt", fmReadWrite)
|
|
|
|
output = open("tests/output.txt", fmReadWrite)
|
|
|
|
input.write("foo")
|
|
|
|
input.setFilePos(0)
|
|
|
|
|
|
|
|
proc teardownPeers =
|
|
|
|
peer1.close()
|
|
|
|
peer2.close()
|
|
|
|
|
|
|
|
proc teardownFiles =
|
|
|
|
input.close()
|
|
|
|
output.close()
|
|
|
|
removeFile("tests/input.txt")
|
|
|
|
removeFile("tests/output.txt")
|
|
|
|
|
|
|
|
setup:
|
|
|
|
setupPeers()
|
|
|
|
setupFiles()
|
|
|
|
|
|
|
|
teardown:
|
|
|
|
teardownPeers()
|
|
|
|
teardownFiles()
|
|
|
|
|
|
|
|
test "file can be transferred from one peer to another":
|
|
|
|
let identifier = await peer1.upload(input)
|
|
|
|
await peer2.download(identifier, output)
|
|
|
|
|
|
|
|
input.setFilePos(0)
|
|
|
|
output.setFilePos(0)
|
|
|
|
check output.readAll() == input.readAll()
|