mirror of https://github.com/status-im/nim-eth.git
Add EIP-8 test + activate rlpx thunk test
This commit is contained in:
parent
17f90920e0
commit
5850186ca0
|
@ -48,6 +48,7 @@ proc runP2pTests() =
|
||||||
"test_discovery",
|
"test_discovery",
|
||||||
"test_ecies",
|
"test_ecies",
|
||||||
"test_enode",
|
"test_enode",
|
||||||
|
"test_rlpx_thunk",
|
||||||
"test_shh",
|
"test_shh",
|
||||||
"test_shh_connect",
|
"test_shh_connect",
|
||||||
"test_protocol_handlers",
|
"test_protocol_handlers",
|
||||||
|
|
|
@ -48,5 +48,8 @@
|
||||||
"payload": "010a",
|
"payload": "010a",
|
||||||
"error": "RlpTypeMismatch",
|
"error": "RlpTypeMismatch",
|
||||||
"description": "listElem to assert on not a list"
|
"description": "listElem to assert on not a list"
|
||||||
|
},
|
||||||
|
"devp2p hello packet version 22 + additional list elements for EIP-8": {
|
||||||
|
"payload": "00f87137916b6e6574682f76302e39312f706c616e39cdc5836574683dc6846d6f726b1682270fb840fda1cff674c90c9a197539fe3dfb53086ace64f83ed7c6eabec741f7f381cc803e52ab2cd55d5569bce4347107a310dfd5f88a010cd2ffd1005ca406f1842877c883666f6f836261720304"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,10 @@ node2.startListening()
|
||||||
peer = waitFor node1.rlpxConnect(newNode(initENode(node2.keys.pubKey,
|
peer = waitFor node1.rlpxConnect(newNode(initENode(node2.keys.pubKey,
|
||||||
node2.address)))
|
node2.address)))
|
||||||
|
|
||||||
|
proc testThunk(payload: openArray[byte]) =
|
||||||
|
var (msgId, msgData) = recvMsgMock(payload)
|
||||||
|
waitFor peer.invokeThunk(msgId.int, msgData)
|
||||||
|
|
||||||
proc testPayloads(filename: string) =
|
proc testPayloads(filename: string) =
|
||||||
let js = json.parseFile(filename)
|
let js = json.parseFile(filename)
|
||||||
|
|
||||||
|
@ -29,18 +33,22 @@ proc testPayloads(filename: string) =
|
||||||
if payloadHex.isNil or payloadHex.kind != JString:
|
if payloadHex.isNil or payloadHex.kind != JString:
|
||||||
skip()
|
skip()
|
||||||
continue
|
continue
|
||||||
if error.isNil or error.kind != JString:
|
|
||||||
skip()
|
|
||||||
continue
|
|
||||||
|
|
||||||
let payload = hexToSeqByte(payloadHex.str)
|
let payload = hexToSeqByte(payloadHex.str)
|
||||||
# TODO: can I convert the error string to an Exception type at runtime?
|
|
||||||
expect CatchableError:
|
if error.isNil:
|
||||||
try:
|
testThunk(payload)
|
||||||
var (msgId, msgData) = recvMsgMock(payload)
|
else:
|
||||||
waitFor peer.invokeThunk(msgId.int, msgData)
|
if error.kind != JString:
|
||||||
except CatchableError as e:
|
skip()
|
||||||
check: e.name == error.str
|
continue
|
||||||
raise
|
|
||||||
|
# TODO: can I convert the error string to an Exception type at runtime?
|
||||||
|
expect CatchableError:
|
||||||
|
try:
|
||||||
|
testThunk(payload)
|
||||||
|
except CatchableError as e:
|
||||||
|
check: e.name == error.str
|
||||||
|
raise
|
||||||
|
|
||||||
testPayloads(sourceDir / "test_rlpx_thunk.json")
|
testPayloads(sourceDir / "test_rlpx_thunk.json")
|
||||||
|
|
Loading…
Reference in New Issue