mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-03 14:33:12 +00:00
deploy: 4c228ee47ffcf1186a6f93dbbdc7fa96e932971a
This commit is contained in:
parent
efef4a3b8a
commit
f9f0882e90
@ -8,6 +8,7 @@ import
|
||||
./v2/test_waku_filter,
|
||||
./v2/test_waku_payload,
|
||||
./v2/test_waku_swap,
|
||||
./v2/test_utils_peers,
|
||||
./v2/test_utils_pagination,
|
||||
./v2/test_message_cache,
|
||||
./v2/test_message_store_queue,
|
||||
|
||||
126
tests/v2/test_utils_peers.nim
Normal file
126
tests/v2/test_utils_peers.nim
Normal file
@ -0,0 +1,126 @@
|
||||
{.used.}
|
||||
|
||||
import
|
||||
stew/results,
|
||||
testutils/unittests,
|
||||
libp2p/multiaddress,
|
||||
libp2p/peerid,
|
||||
libp2p/errors
|
||||
import
|
||||
../../waku/v2/utils/peers
|
||||
|
||||
suite "Utils - Peers":
|
||||
|
||||
test "Peer info parses correctly":
|
||||
## Given
|
||||
let address = "/ip4/127.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
|
||||
## When
|
||||
let remotePeerInfo = parseRemotePeerInfo(address)
|
||||
|
||||
## Then
|
||||
check:
|
||||
$(remotePeerInfo.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
$(remotePeerInfo.addrs[0][0].tryGet()) == "/ip4/127.0.0.1"
|
||||
$(remotePeerInfo.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||
|
||||
test "DNS multiaddrs parsing - dns peer":
|
||||
## Given
|
||||
let address = "/dns/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
|
||||
## When
|
||||
let dnsPeer = parseRemotePeerInfo(address)
|
||||
|
||||
## Then
|
||||
check:
|
||||
$(dnsPeer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
$(dnsPeer.addrs[0][0].tryGet()) == "/dns/localhost"
|
||||
$(dnsPeer.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||
|
||||
test "DNS multiaddrs parsing - dnsaddr peer":
|
||||
## Given
|
||||
let address = "/dnsaddr/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
|
||||
## When
|
||||
let dnsAddrPeer = parseRemotePeerInfo(address)
|
||||
|
||||
## Then
|
||||
check:
|
||||
$(dnsAddrPeer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
$(dnsAddrPeer.addrs[0][0].tryGet()) == "/dnsaddr/localhost"
|
||||
$(dnsAddrPeer.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||
|
||||
test "DNS multiaddrs parsing - dns4 peer":
|
||||
## Given
|
||||
let address = "/dns4/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
|
||||
## When
|
||||
let dns4Peer = parseRemotePeerInfo(address)
|
||||
|
||||
# Then
|
||||
check:
|
||||
$(dns4Peer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
$(dns4Peer.addrs[0][0].tryGet()) == "/dns4/localhost"
|
||||
$(dns4Peer.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||
|
||||
test "DNS multiaddrs parsing - dns6 peer":
|
||||
## Given
|
||||
let address = "/dns6/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
|
||||
## When
|
||||
let dns6Peer = parseRemotePeerInfo(address)
|
||||
|
||||
## Then
|
||||
check:
|
||||
$(dns6Peer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
$(dns6Peer.addrs[0][0].tryGet()) == "/dns6/localhost"
|
||||
$(dns6Peer.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||
|
||||
test "Multiaddr parsing should fail with invalid address":
|
||||
## Given
|
||||
let address = "/p2p/$UCH GIBBER!SH"
|
||||
|
||||
## Then
|
||||
expect LPError:
|
||||
discard parseRemotePeerInfo(address)
|
||||
|
||||
test "Multiaddr parsing should fail with leading whitespace":
|
||||
## Given
|
||||
let address = " /ip4/127.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
|
||||
## Then
|
||||
expect LPError:
|
||||
discard parseRemotePeerInfo(address)
|
||||
|
||||
test "Multiaddr parsing should fail with trailing whitespace":
|
||||
## Given
|
||||
let address = "/ip4/127.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc "
|
||||
|
||||
## Then
|
||||
expect LPError:
|
||||
discard parseRemotePeerInfo(address)
|
||||
|
||||
test "Multiaddress parsing should fail with invalid IP address":
|
||||
## Given
|
||||
let address = "/ip4/127.0.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
|
||||
## Then
|
||||
expect LPError:
|
||||
discard parseRemotePeerInfo(address)
|
||||
|
||||
test "Multiaddress parsing should fail with no peer ID":
|
||||
## Given
|
||||
let address = "/ip4/127.0.0.1/tcp/60002"
|
||||
|
||||
# Then
|
||||
expect LPError:
|
||||
discard parseRemotePeerInfo(address)
|
||||
|
||||
test "Multiaddress parsing should fail with unsupported transport":
|
||||
## Given
|
||||
let address = "/ip4/127.0.0.1/udp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
|
||||
## Then
|
||||
expect ValueError:
|
||||
discard parseRemotePeerInfo(address)
|
||||
|
||||
@ -5,7 +5,6 @@ import
|
||||
chronicles, chronos, stew/shims/net as stewNet, stew/byteutils, std/os,
|
||||
libp2p/crypto/crypto,
|
||||
libp2p/crypto/secp,
|
||||
libp2p/peerid,
|
||||
libp2p/multiaddress,
|
||||
libp2p/switch,
|
||||
libp2p/protocols/pubsub/rpc/messages,
|
||||
@ -519,70 +518,6 @@ procSuite "WakuNode":
|
||||
await node1.stop()
|
||||
await node2.stop()
|
||||
|
||||
asyncTest "Peer info parses correctly":
|
||||
## This is such an important utility function for wakunode2
|
||||
## that it deserves its own test :)
|
||||
|
||||
# First test the `happy path` expected case
|
||||
let
|
||||
addrStr = "/ip4/127.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
remotePeerInfo = parseRemotePeerInfo(addrStr)
|
||||
|
||||
check:
|
||||
$(remotePeerInfo.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
$(remotePeerInfo.addrs[0][0].tryGet()) == "/ip4/127.0.0.1"
|
||||
$(remotePeerInfo.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||
|
||||
# DNS multiaddrs parsing expected cases:
|
||||
let
|
||||
dnsPeer = parseRemotePeerInfo("/dns/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
||||
dnsAddrPeer = parseRemotePeerInfo("/dnsaddr/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
||||
dns4Peer = parseRemotePeerInfo("/dns4/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
||||
dns6Peer = parseRemotePeerInfo("/dns6/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
||||
|
||||
check:
|
||||
# /dns
|
||||
$(dnsPeer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
$(dnsPeer.addrs[0][0].tryGet()) == "/dns/localhost"
|
||||
$(dnsPeer.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||
# /dnsaddr
|
||||
$(dnsAddrPeer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
$(dnsAddrPeer.addrs[0][0].tryGet()) == "/dnsaddr/localhost"
|
||||
$(dnsAddrPeer.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||
# /dns4
|
||||
$(dns4Peer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
$(dns4Peer.addrs[0][0].tryGet()) == "/dns4/localhost"
|
||||
$(dns4Peer.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||
# /dns6
|
||||
$(dns6Peer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||
$(dns6Peer.addrs[0][0].tryGet()) == "/dns6/localhost"
|
||||
$(dns6Peer.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||
|
||||
# Now test some common corner cases
|
||||
expect LPError:
|
||||
# gibberish
|
||||
discard parseRemotePeerInfo("/p2p/$UCH GIBBER!SH")
|
||||
|
||||
expect LPError:
|
||||
# leading whitespace
|
||||
discard parseRemotePeerInfo(" /ip4/127.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
||||
|
||||
expect LPError:
|
||||
# trailing whitespace
|
||||
discard parseRemotePeerInfo("/ip4/127.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc ")
|
||||
|
||||
expect LPError:
|
||||
# invalid IP address
|
||||
discard parseRemotePeerInfo("/ip4/127.0.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
||||
|
||||
expect LPError:
|
||||
# no PeerID
|
||||
discard parseRemotePeerInfo("/ip4/127.0.0.1/tcp/60002")
|
||||
|
||||
expect ValueError:
|
||||
# unsupported transport
|
||||
discard parseRemotePeerInfo("/ip4/127.0.0.1/udp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
||||
|
||||
asyncTest "resolve and connect to dns multiaddrs":
|
||||
let resolver = MockResolver.new()
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user