Reduce the number of requests for asserts in tests

This commit is contained in:
Arnaud 2025-03-21 14:14:48 +01:00 committed by Eric
parent 98b42f4319
commit 1663bd224f
No known key found for this signature in database
4 changed files with 18 additions and 4 deletions

View File

@ -35,3 +35,14 @@ proc allFuturesThrowing*[T, E]( # https://github.com/nim-lang/Nim/issues/23432
futs: varargs[InternalRaisesFuture[T, E]]
): Future[void] =
allFuturesThrowing(futs.mapIt(FutureBase(it)))
template safeEventually*(expression: untyped, waitingTime = 250, timeout = 5000): bool =
proc safeEventually(): Future[bool] {.async.} =
let endTime = getTime() + initDuration(milliseconds = timeout)
while not expression:
if endTime < getTime():
return false
await sleepAsync(waitingTime)
return true
await safeEventually()

View File

@ -6,6 +6,7 @@ import ../../contracts/deployment
import ./../marketplacesuite
import ../twonodes
import ../nodeconfigs
from ../../helpers import safeEventually
marketplacesuite(name = "Marketplace", stopOnRequestFail = true):
let marketplaceConfig = NodeConfigs(
@ -122,11 +123,11 @@ marketplacesuite(name = "Marketplace", stopOnRequestFail = true):
# Checking that the hosting node received reward for at least the time between <expiry;end>
let slotSize = slotSize(blocks, ecNodes, ecTolerance)
let pricePerSlotPerSecond = minPricePerBytePerSecond * slotSize
check eventually (await token.balanceOf(hostAccount)) - startBalanceHost >=
check safeEventually (await token.balanceOf(hostAccount)) - startBalanceHost >=
(duration - 5 * 60).u256 * pricePerSlotPerSecond * ecNodes.u256
# Checking that client node receives some funds back that were not used for the host nodes
check eventually(
check safeEventually(
(await token.balanceOf(clientAccount)) - clientBalanceBeforeFinished > 0,
timeout = 10 * 1000, # give client a bit of time to withdraw its funds
)
@ -296,12 +297,12 @@ marketplacesuite(name = "Marketplace payouts", stopOnRequestFail = true):
let slotSize = slotSize(blocks, ecNodes, ecTolerance)
let pricePerSlotPerSecond = minPricePerBytePerSecond * slotSize
check eventually (
check safeEventually (
let endBalanceProvider = (await token.balanceOf(provider.ethAccount))
endBalanceProvider > startBalanceProvider and
endBalanceProvider < startBalanceProvider + expiry.u256 * pricePerSlotPerSecond
)
check eventually(
check safeEventually(
(
let endBalanceClient = (await token.balanceOf(client.ethAccount))
let endBalanceProvider = (await token.balanceOf(provider.ethAccount))

View File

@ -7,6 +7,7 @@ import ../../codex/helpers
import ../../examples
import ../marketplacesuite
import ../nodeconfigs
from ../../helpers import safeEventually
export logutils

View File

@ -8,6 +8,7 @@ import ../../contracts/time
import ../codexconfig
import ../codexclient
import ../nodeconfigs
from ../../helpers import safeEventually
import ../marketplacesuite
proc findItem[T](items: seq[T], item: T): ?!T =