Use await instead of waitFor in RPC tests

This commit is contained in:
kdeme 2019-05-16 22:20:17 +02:00
parent a0126a7458
commit f34d8d71db
No known key found for this signature in database
GPG Key ID: 4E8DD21420AF43F5
2 changed files with 84 additions and 84 deletions

View File

@ -32,7 +32,7 @@ createRpcSigs(RpcSocketClient, sigPath)
proc toEthAddressStr(address: EthAddress): EthAddressStr = proc toEthAddressStr(address: EthAddress): EthAddressStr =
result = ("0x" & address.toHex).ethAddressStr result = ("0x" & address.toHex).ethAddressStr
proc doTests = proc doTests {.async.} =
# TODO: Include other transports such as Http # TODO: Include other transports such as Http
var ethNode = setupEthNode(eth) var ethNode = setupEthNode(eth)
let let
@ -62,7 +62,7 @@ proc doTests =
# Begin tests # Begin tests
rpcServer.start() rpcServer.start()
waitFor client.connect("localhost", Port(RPC_PORT)) await client.connect("localhost", Port(RPC_PORT))
# TODO: add more tests here # TODO: add more tests here
suite "Remote Procedure Calls": suite "Remote Procedure Calls":
@ -70,23 +70,23 @@ proc doTests =
let let
blockNum = state.blockheader.blockNumber blockNum = state.blockheader.blockNumber
callParams = EthCall(value: some(100.u256)) callParams = EthCall(value: some(100.u256))
r1 = waitFor client.eth_call(callParams, "0x" & blockNum.toHex) r1 = await client.eth_call(callParams, "0x" & blockNum.toHex)
check r1 == "0x" check r1 == "0x"
test "eth_getBalance": test "eth_getBalance":
let r2 = waitFor client.eth_getBalance(ZERO_ADDRESS.toEthAddressStr, "0x0") let r2 = await client.eth_getBalance(ZERO_ADDRESS.toEthAddressStr, "0x0")
check r2 == 0 check r2 == 0
let blockNum = state.blockheader.blockNumber let blockNum = state.blockheader.blockNumber
let r3 = waitFor client.eth_getBalance(address.toEthAddressStr, "0x" & blockNum.toHex) let r3 = await client.eth_getBalance(address.toEthAddressStr, "0x" & blockNum.toHex)
check r3 == 0 check r3 == 0
test "eth_estimateGas": test "eth_estimateGas":
let let
call = EthCall() call = EthCall()
blockNum = state.blockheader.blockNumber blockNum = state.blockheader.blockNumber
r4 = waitFor client.eth_estimateGas(call, "0x" & blockNum.toHex) r4 = await client.eth_estimateGas(call, "0x" & blockNum.toHex)
check r4 == 21_000 check r4 == 21_000
rpcServer.stop() rpcServer.stop()
rpcServer.close() rpcServer.close()
doTests() waitFor doTests()

View File

@ -12,7 +12,7 @@ template sourceDir: string = currentSourcePath.rsplit(DirSep, 1)[0]
const sigPath = &"{sourceDir}{DirSep}rpcclient{DirSep}ethcallsigs.nim" const sigPath = &"{sourceDir}{DirSep}rpcclient{DirSep}ethcallsigs.nim"
createRpcSigs(RpcSocketClient, sigPath) createRpcSigs(RpcSocketClient, sigPath)
proc doTests = proc doTests {.async.} =
var ethNode = setupEthNode(Whisper) var ethNode = setupEthNode(Whisper)
# Create Ethereum RPCs # Create Ethereum RPCs
@ -25,82 +25,82 @@ proc doTests =
# Begin tests # Begin tests
rpcServer.start() rpcServer.start()
waitFor client.connect("localhost", Port(RPC_PORT)) await client.connect("localhost", Port(RPC_PORT))
suite "Whisper Remote Procedure Calls": suite "Whisper Remote Procedure Calls":
test "shh_version": test "shh_version":
check waitFor(client.shh_version()) == whisperVersionStr check await(client.shh_version()) == whisperVersionStr
test "shh_info": test "shh_info":
let info = waitFor client.shh_info() let info = await client.shh_info()
check info.maxMessageSize == defaultMaxMsgSize check info.maxMessageSize == defaultMaxMsgSize
test "shh_setMaxMessageSize": test "shh_setMaxMessageSize":
let testValue = 1024'u64 let testValue = 1024'u64
check waitFor(client.shh_setMaxMessageSize(testValue)) == true check await(client.shh_setMaxMessageSize(testValue)) == true
var info = waitFor client.shh_info() var info = await client.shh_info()
check info.maxMessageSize == testValue check info.maxMessageSize == testValue
expect Exception: expect ValueError:
discard waitFor(client.shh_setMaxMessageSize(defaultMaxMsgSize + 1)) discard await(client.shh_setMaxMessageSize(defaultMaxMsgSize + 1))
info = waitFor client.shh_info() info = await client.shh_info()
check info.maxMessageSize == testValue check info.maxMessageSize == testValue
test "shh_setMinPoW": test "shh_setMinPoW":
let testValue = 0.0001 let testValue = 0.0001
check waitFor(client.shh_setMinPoW(testValue)) == true check await(client.shh_setMinPoW(testValue)) == true
let info = waitFor client.shh_info() let info = await client.shh_info()
check info.minPow == testValue check info.minPow == testValue
# test "shh_markTrustedPeer": # test "shh_markTrustedPeer":
# TODO: need to connect a peer to test # TODO: need to connect a peer to test
test "shh asymKey tests": test "shh asymKey tests":
let keyID = waitFor client.shh_newKeyPair() let keyID = await client.shh_newKeyPair()
check: check:
waitFor(client.shh_hasKeyPair(keyID)) == true await(client.shh_hasKeyPair(keyID)) == true
waitFor(client.shh_deleteKeyPair(keyID)) == true await(client.shh_deleteKeyPair(keyID)) == true
waitFor(client.shh_hasKeyPair(keyID)) == false await(client.shh_hasKeyPair(keyID)) == false
expect Exception: expect ValueError:
discard waitFor(client.shh_deleteKeyPair(keyID)) discard await(client.shh_deleteKeyPair(keyID))
let privkey = "0x5dc5381cae54ba3174dc0d46040fe11614d0cc94d41185922585198b4fcef9d3" let privkey = "0x5dc5381cae54ba3174dc0d46040fe11614d0cc94d41185922585198b4fcef9d3"
let pubkey = "0x04e5fd642a0f630bbb1e4cd7df629d7b8b019457a9a74f983c0484a045cebb176def86a54185b50bbba6bbf97779173695e92835d63109c23471e6da382f922fdb" let pubkey = "0x04e5fd642a0f630bbb1e4cd7df629d7b8b019457a9a74f983c0484a045cebb176def86a54185b50bbba6bbf97779173695e92835d63109c23471e6da382f922fdb"
let keyID2 = waitFor client.shh_addPrivateKey(privkey) let keyID2 = await client.shh_addPrivateKey(privkey)
check: check:
waitFor(client.shh_getPublicKey(keyID2)) == pubkey.toPublicKey await(client.shh_getPublicKey(keyID2)) == pubkey.toPublicKey
waitFor(client.shh_getPrivateKey(keyID2)) == privkey.toPrivateKey await(client.shh_getPrivateKey(keyID2)) == privkey.toPrivateKey
waitFor(client.shh_hasKeyPair(keyID2)) == true await(client.shh_hasKeyPair(keyID2)) == true
waitFor(client.shh_deleteKeyPair(keyID2)) == true await(client.shh_deleteKeyPair(keyID2)) == true
waitFor(client.shh_hasKeyPair(keyID2)) == false await(client.shh_hasKeyPair(keyID2)) == false
expect Exception: expect ValueError:
discard waitFor(client.shh_deleteKeyPair(keyID2)) discard await(client.shh_deleteKeyPair(keyID2))
test "shh symKey tests": test "shh symKey tests":
let keyID = waitFor client.shh_newSymKey() let keyID = await client.shh_newSymKey()
check: check:
waitFor(client.shh_hasSymKey(keyID)) == true await(client.shh_hasSymKey(keyID)) == true
waitFor(client.shh_deleteSymKey(keyID)) == true await(client.shh_deleteSymKey(keyID)) == true
waitFor(client.shh_hasSymKey(keyID)) == false await(client.shh_hasSymKey(keyID)) == false
expect Exception: expect ValueError:
discard waitFor(client.shh_deleteSymKey(keyID)) discard await(client.shh_deleteSymKey(keyID))
let symKey = "0x0000000000000000000000000000000000000000000000000000000000000001" let symKey = "0x0000000000000000000000000000000000000000000000000000000000000001"
let keyID2 = waitFor client.shh_addSymKey(symKey) let keyID2 = await client.shh_addSymKey(symKey)
check: check:
waitFor(client.shh_getSymKey(keyID2)) == symKey.toSymKey await(client.shh_getSymKey(keyID2)) == symKey.toSymKey
waitFor(client.shh_hasSymKey(keyID2)) == true await(client.shh_hasSymKey(keyID2)) == true
waitFor(client.shh_deleteSymKey(keyID2)) == true await(client.shh_deleteSymKey(keyID2)) == true
waitFor(client.shh_hasSymKey(keyID2)) == false await(client.shh_hasSymKey(keyID2)) == false
expect Exception: expect ValueError:
discard waitFor(client.shh_deleteSymKey(keyID2)) discard await(client.shh_deleteSymKey(keyID2))
let keyID3 = waitFor client.shh_generateSymKeyFromPassword("password") let keyID3 = await client.shh_generateSymKeyFromPassword("password")
let keyID4 = waitFor client.shh_generateSymKeyFromPassword("password") let keyID4 = await client.shh_generateSymKeyFromPassword("password")
let keyID5 = waitFor client.shh_generateSymKeyFromPassword("nimbus!") let keyID5 = await client.shh_generateSymKeyFromPassword("nimbus!")
check: check:
waitFor(client.shh_getSymKey(keyID3)) == await(client.shh_getSymKey(keyID3)) ==
waitFor(client.shh_getSymKey(keyID4)) await(client.shh_getSymKey(keyID4))
waitFor(client.shh_getSymKey(keyID3)) != await(client.shh_getSymKey(keyID3)) !=
waitFor(client.shh_getSymKey(keyID5)) await(client.shh_getSymKey(keyID5))
waitFor(client.shh_hasSymKey(keyID3)) == true await(client.shh_hasSymKey(keyID3)) == true
waitFor(client.shh_deleteSymKey(keyID3)) == true await(client.shh_deleteSymKey(keyID3)) == true
waitFor(client.shh_hasSymKey(keyID3)) == false await(client.shh_hasSymKey(keyID3)) == false
expect Exception: expect ValueError:
discard waitFor(client.shh_deleteSymKey(keyID3)) discard await(client.shh_deleteSymKey(keyID3))
# Some defaults for the filter & post tests # Some defaults for the filter & post tests
let let
@ -115,24 +115,24 @@ proc doTests =
test "shh filter create and delete": test "shh filter create and delete":
let let
topic = topicStr.toTopic() topic = topicStr.toTopic()
symKeyID = waitFor client.shh_newSymKey() symKeyID = await client.shh_newSymKey()
options = WhisperFilterOptions(symKeyID: some(symKeyID), options = WhisperFilterOptions(symKeyID: some(symKeyID),
topics: some(@[topic])) topics: some(@[topic]))
filterID = waitFor client.shh_newMessageFilter(options) filterID = await client.shh_newMessageFilter(options)
check: check:
filterID.string.isValidIdentifier filterID.string.isValidIdentifier
waitFor(client.shh_deleteMessageFilter(filterID)) await(client.shh_deleteMessageFilter(filterID)) == true
expect Exception: expect ValueError:
discard waitFor(client.shh_deleteMessageFilter(filterID)) discard await(client.shh_deleteMessageFilter(filterID))
test "shh symKey post and filter loop": test "shh symKey post and filter loop":
let let
topic = topicStr.toTopic() topic = topicStr.toTopic()
symKeyID = waitFor client.shh_newSymKey() symKeyID = await client.shh_newSymKey()
options = WhisperFilterOptions(symKeyID: some(symKeyID), options = WhisperFilterOptions(symKeyID: some(symKeyID),
topics: some(@[topic])) topics: some(@[topic]))
filterID = waitFor client.shh_newMessageFilter(options) filterID = await client.shh_newMessageFilter(options)
message = WhisperPostMessage(symKeyID: some(symKeyID), message = WhisperPostMessage(symKeyID: some(symKeyID),
ttl: ttl, ttl: ttl,
topic: some(topic), topic: some(topic),
@ -140,10 +140,10 @@ proc doTests =
powTime: powTime, powTime: powTime,
powTarget: powTarget) powTarget: powTarget)
check: check:
waitFor(client.shh_setMinPoW(powTarget)) == true await(client.shh_setMinPoW(powTarget)) == true
waitFor(client.shh_post(message)) == true await(client.shh_post(message)) == true
let messages = waitFor client.shh_getFilterMessages(filterID) let messages = await client.shh_getFilterMessages(filterID)
check: check:
messages.len == 1 messages.len == 1
messages[0].sig.isNone() messages[0].sig.isNone()
@ -154,15 +154,15 @@ proc doTests =
messages[0].padding.len > 0 messages[0].padding.len > 0
messages[0].pow >= powTarget messages[0].pow >= powTarget
waitFor(client.shh_deleteMessageFilter(filterID)) await(client.shh_deleteMessageFilter(filterID)) == true
test "shh asymKey post and filter loop": test "shh asymKey post and filter loop":
let let
topic = topicStr.toTopic() topic = topicStr.toTopic()
privateKeyID = waitFor client.shh_newKeyPair() privateKeyID = await client.shh_newKeyPair()
options = WhisperFilterOptions(privateKeyID: some(privateKeyID)) options = WhisperFilterOptions(privateKeyID: some(privateKeyID))
filterID = waitFor client.shh_newMessageFilter(options) filterID = await client.shh_newMessageFilter(options)
pubKey = waitFor client.shh_getPublicKey(privateKeyID) pubKey = await client.shh_getPublicKey(privateKeyID)
message = WhisperPostMessage(pubKey: some(pubKey), message = WhisperPostMessage(pubKey: some(pubKey),
ttl: ttl, ttl: ttl,
topic: some(topic), topic: some(topic),
@ -170,10 +170,10 @@ proc doTests =
powTime: powTime, powTime: powTime,
powTarget: powTarget) powTarget: powTarget)
check: check:
waitFor(client.shh_setMinPoW(powTarget)) == true await(client.shh_setMinPoW(powTarget)) == true
waitFor(client.shh_post(message)) == true await(client.shh_post(message)) == true
let messages = waitFor client.shh_getFilterMessages(filterID) let messages = await client.shh_getFilterMessages(filterID)
check: check:
messages.len == 1 messages.len == 1
messages[0].sig.isNone() messages[0].sig.isNone()
@ -184,18 +184,18 @@ proc doTests =
messages[0].padding.len > 0 messages[0].padding.len > 0
messages[0].pow >= powTarget messages[0].pow >= powTarget
waitFor(client.shh_deleteMessageFilter(filterID)) await(client.shh_deleteMessageFilter(filterID)) == true
test "shh signature in post and filter loop": test "shh signature in post and filter loop":
let let
topic = topicStr.toTopic() topic = topicStr.toTopic()
symKeyID = waitFor client.shh_newSymKey() symKeyID = await client.shh_newSymKey()
privateKeyID = waitFor client.shh_newKeyPair() privateKeyID = await client.shh_newKeyPair()
pubKey = waitFor client.shh_getPublicKey(privateKeyID) pubKey = await client.shh_getPublicKey(privateKeyID)
options = WhisperFilterOptions(symKeyID: some(symKeyID), options = WhisperFilterOptions(symKeyID: some(symKeyID),
topics: some(@[topic]), topics: some(@[topic]),
sig: some(pubKey)) sig: some(pubKey))
filterID = waitFor client.shh_newMessageFilter(options) filterID = await client.shh_newMessageFilter(options)
message = WhisperPostMessage(symKeyID: some(symKeyID), message = WhisperPostMessage(symKeyID: some(symKeyID),
sig: some(privateKeyID), sig: some(privateKeyID),
ttl: ttl, ttl: ttl,
@ -204,10 +204,10 @@ proc doTests =
powTime: powTime, powTime: powTime,
powTarget: powTarget) powTarget: powTarget)
check: check:
waitFor(client.shh_setMinPoW(powTarget)) == true await(client.shh_setMinPoW(powTarget)) == true
waitFor(client.shh_post(message)) == true await(client.shh_post(message)) == true
let messages = waitFor client.shh_getFilterMessages(filterID) let messages = await client.shh_getFilterMessages(filterID)
check: check:
messages.len == 1 messages.len == 1
messages[0].sig.get() == pubKey messages[0].sig.get() == pubKey
@ -218,9 +218,9 @@ proc doTests =
messages[0].padding.len > 0 messages[0].padding.len > 0
messages[0].pow >= powTarget messages[0].pow >= powTarget
waitFor(client.shh_deleteMessageFilter(filterID)) await(client.shh_deleteMessageFilter(filterID)) == true
rpcServer.stop() rpcServer.stop()
rpcServer.close() rpcServer.close()
doTests() waitFor doTests()