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_ecies",
|
||||
"test_enode",
|
||||
"test_rlpx_thunk",
|
||||
"test_shh",
|
||||
"test_shh_connect",
|
||||
"test_protocol_handlers",
|
||||
|
|
|
@ -48,5 +48,8 @@
|
|||
"payload": "010a",
|
||||
"error": "RlpTypeMismatch",
|
||||
"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,
|
||||
node2.address)))
|
||||
|
||||
proc testThunk(payload: openArray[byte]) =
|
||||
var (msgId, msgData) = recvMsgMock(payload)
|
||||
waitFor peer.invokeThunk(msgId.int, msgData)
|
||||
|
||||
proc testPayloads(filename: string) =
|
||||
let js = json.parseFile(filename)
|
||||
|
||||
|
@ -29,18 +33,22 @@ proc testPayloads(filename: string) =
|
|||
if payloadHex.isNil or payloadHex.kind != JString:
|
||||
skip()
|
||||
continue
|
||||
if error.isNil or error.kind != JString:
|
||||
skip()
|
||||
continue
|
||||
|
||||
let payload = hexToSeqByte(payloadHex.str)
|
||||
# TODO: can I convert the error string to an Exception type at runtime?
|
||||
expect CatchableError:
|
||||
try:
|
||||
var (msgId, msgData) = recvMsgMock(payload)
|
||||
waitFor peer.invokeThunk(msgId.int, msgData)
|
||||
except CatchableError as e:
|
||||
check: e.name == error.str
|
||||
raise
|
||||
|
||||
if error.isNil:
|
||||
testThunk(payload)
|
||||
else:
|
||||
if error.kind != JString:
|
||||
skip()
|
||||
continue
|
||||
|
||||
# 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")
|
||||
|
|
Loading…
Reference in New Issue