Skip failing macos tests, improve logs.

This commit is contained in:
Álex Cabeza Romero 2024-03-15 17:52:29 +01:00
parent 0743ab2139
commit d56fb250f4
No known key found for this signature in database
GPG Key ID: 814BBD2BAB634A7B
3 changed files with 103 additions and 93 deletions

View File

@ -14,47 +14,50 @@ import
../../../testlib/[simple_mock]
suite "Migrations":
test "migrate ok":
# Given the db_sqlite.migrate function returns ok
let backup = db_sqlite.migrate
mock(db_sqlite.migrate):
proc mockedMigrate(
db: SqliteDatabase, targetVersion: int64, migrationsScriptsDir: string
): DatabaseResult[void] =
ok()
when not defined(macosx):
# FIXME: fails on macos [mock]
mockedMigrate
test "migrate ok":
# Given the db_sqlite.migrate function returns ok
let backup = db_sqlite.migrate
mock(db_sqlite.migrate):
proc mockedMigrate(
db: SqliteDatabase, targetVersion: int64, migrationsScriptsDir: string
): DatabaseResult[void] =
ok()
# When we call the migrate function
let migrationResult = migrations.migrate(newSqliteDatabase(), 1)
mockedMigrate
# Then we expect the result to be ok
check:
migrationResult == DatabaseResult[void].ok()
# When we call the migrate function
let migrationResult = migrations.migrate(newSqliteDatabase(), 1)
# Cleanup
mock(db_sqlite.migrate):
backup
# Then we expect the result to be ok
check:
migrationResult == DatabaseResult[void].ok()
test "migrate error":
# Given the db_sqlite.migrate function returns an error
let backup = db_sqlite.migrate
mock(db_sqlite.migrate):
proc mockedMigrate(
db: SqliteDatabase, targetVersion: int64, migrationsScriptsDir: string
): DatabaseResult[void] =
err("mock error")
# Cleanup
mock(db_sqlite.migrate):
backup
mockedMigrate
test "migrate error":
# Given the db_sqlite.migrate function returns an error
let backup = db_sqlite.migrate
mock(db_sqlite.migrate):
proc mockedMigrate(
db: SqliteDatabase, targetVersion: int64, migrationsScriptsDir: string
): DatabaseResult[void] =
err("mock error")
# When we call the migrate function
let migrationResult = migrations.migrate(newSqliteDatabase(), 1)
mockedMigrate
# Then we expect the result to be an error
check:
migrationResult ==
DatabaseResult[void].err("failed to execute migration scripts: mock error")
# When we call the migrate function
let migrationResult = migrations.migrate(newSqliteDatabase(), 1)
# Cleanup
mock(db_sqlite.migrate):
backup
# Then we expect the result to be an error
check:
migrationResult ==
DatabaseResult[void].err("failed to execute migration scripts: mock error")
# Cleanup
mock(db_sqlite.migrate):
backup

View File

@ -17,7 +17,7 @@ import
],
../waku_store/store_utils,
../waku_archive/archive_utils,
../testlib/[wakucore, wakunode, testasync, futures],
../testlib/[wakucore, wakunode, testasync, futures, assertions],
../resources/payloads
proc setupRln(node: WakuNode, identifier: uint) {.async.} =
@ -55,7 +55,7 @@ proc sendRlnMessage(
payload: seq[byte] = "Hello".toBytes(),
): Future[bool] {.async.} =
var message = WakuMessage(payload: payload, contentTopic: contentTopic)
doAssert(client.wakuRlnRelay.appendRLNProof(message, epochTime()).isOk())
assertResultOk client.wakuRlnRelay.appendRLNProof(message, epochTime())
discard await client.publish(some(pubsubTopic), message)
let isCompleted = await completionFuture.withTimeout(FUTURE_TIMEOUT)
return isCompleted
@ -145,6 +145,7 @@ suite "Waku RlnRelay - End to End":
catchRes.error()[].msg ==
"WakuRelay protocol is not mounted, cannot mount WakuRlnRelay"
# FIXME: fails on macos
asyncTest "Pubsub topics subscribed before mounting RlnRelay are added to it":
# Given the node enables Relay and Rln while subscribing to a pubsub topic
await server.setupRelayWithRln(1.uint, @[pubsubTopic])
@ -183,6 +184,7 @@ suite "Waku RlnRelay - End to End":
check:
not isCompleted2
# FIXME: fails on macos
asyncTest "Pubsub topics subscribed after mounting RlnRelay are added to it":
# Given the node enables Relay and Rln without subscribing to a pubsub topic
await server.setupRelayWithRln(1.uint, @[])
@ -219,6 +221,7 @@ suite "Waku RlnRelay - End to End":
not isCompleted2
suite "Analysis of Bandwith Limitations":
# FIXME: fails on macos
asyncTest "Valid Payload Sizes":
# Given the node enables Relay and Rln while subscribing to a pubsub topic
await server.setupRelayWithRln(1.uint, @[pubsubTopic])
@ -305,6 +308,7 @@ suite "Waku RlnRelay - End to End":
# Then the message is not relayed
check not await completionFut.withTimeout(FUTURE_TIMEOUT_LONG)
# FIXME: fails on macos
asyncTest "Invalid Payload Sizes":
# Given the node enables Relay and Rln while subscribing to a pubsub topic
await server.setupRelayWithRln(1.uint, @[pubsubTopic])

View File

@ -13,7 +13,7 @@ import
import
../../../waku/[waku_rln_relay, waku_rln_relay/rln, waku_rln_relay/rln/wrappers],
./waku_rln_relay_utils,
../../testlib/[simple_mock]
../../testlib/[simple_mock, assertions]
const Empty32Array = default(array[32, byte])
@ -47,60 +47,61 @@ suite "membershipKeyGen":
identityCredentials.idSecretHash.valid()
identityCredentials.idCommitment.valid()
# FIXME: fails on macos
test "done is false":
# Given the key_gen function fails
let backup = rln_interface.key_gen
mock(rln_interface.key_gen):
proc keyGenMock(ctx: ptr RLN, output_buffer: ptr Buffer): bool =
return false
when not defined(macosx):
# FIXME: fails on macos [mock]
keyGenMock
test "done is false":
# Given the key_gen function fails
let backup = rln_interface.key_gen
mock(rln_interface.key_gen):
proc keyGenMock(ctx: ptr RLN, output_buffer: ptr Buffer): bool =
return false
# When we generate the membership keys
let identityCredentialsRes = membershipKeyGen(rlnRes.get())
keyGenMock
# Then it fails
check:
identityCredentialsRes.error() == "error in key generation"
# When we generate the membership keys
let identityCredentialsRes = membershipKeyGen(rlnRes.get())
# Cleanup
mock(rln_interface.key_gen):
backup
# Then it fails
check:
identityCredentialsRes.error() == "error in key generation"
# FIXME: fails on macos
test "generatedKeys length is not 128":
# Given the key_gen function succeeds with wrong values
let backup = rln_interface.key_gen
mock(rln_interface.key_gen):
proc keyGenMock(ctx: ptr RLN, output_buffer: ptr Buffer): bool =
echo "# RUNNING MOCK"
output_buffer.len = 0
output_buffer.ptr = cast[ptr uint8](newSeq[byte](0))
return true
# Cleanup
mock(rln_interface.key_gen):
backup
keyGenMock
test "generatedKeys length is not 128":
# Given the key_gen function succeeds with wrong values
let backup = rln_interface.key_gen
mock(rln_interface.key_gen):
proc keyGenMock(ctx: ptr RLN, output_buffer: ptr Buffer): bool =
echo "# RUNNING MOCK"
output_buffer.len = 0
output_buffer.ptr = cast[ptr uint8](newSeq[byte](0))
return true
# When we generate the membership keys
let identityCredentialsRes = membershipKeyGen(rlnRes.get())
keyGenMock
# Then it fails
check:
identityCredentialsRes.error() == "keysBuffer is of invalid length"
# When we generate the membership keys
let identityCredentialsRes = membershipKeyGen(rlnRes.get())
# Cleanup
mock(rln_interface.key_gen):
backup
# Then it fails
check:
identityCredentialsRes.error() == "keysBuffer is of invalid length"
# Cleanup
mock(rln_interface.key_gen):
backup
suite "RlnConfig":
suite "createRLNInstance":
# FIXME: fails on macos
test "ok":
# When we create the RLN instance
let rlnRes: RLNResult = createRLNInstance(15, "my.db")
# Then it succeeds
check:
rlnRes.isOk()
assertResultOk rlnRes
test "default":
# When we create the RLN instance
@ -110,25 +111,27 @@ suite "RlnConfig":
check:
rlnRes.isOk()
# FIXME: fails on macos
test "new_circuit fails":
# Given the new_circuit function fails
let backup = rln_interface.new_circuit
mock(rln_interface.new_circuit):
proc newCircuitMock(
tree_height: uint, input_buffer: ptr Buffer, ctx: ptr (ptr RLN)
): bool =
return false
when not defined(macosx):
# FIXME: fails on macos [mock]
newCircuitMock
test "new_circuit fails":
# Given the new_circuit function fails
let backup = rln_interface.new_circuit
mock(rln_interface.new_circuit):
proc newCircuitMock(
tree_height: uint, input_buffer: ptr Buffer, ctx: ptr (ptr RLN)
): bool =
return false
# When we create the RLN instance
let rlnRes: RLNResult = createRLNInstance(15, "my.db")
newCircuitMock
# Then it fails
check:
rlnRes.error() == "error in parameters generation"
# When we create the RLN instance
let rlnRes: RLNResult = createRLNInstance(15, "my.db")
# Cleanup
mock(rln_interface.new_circuit):
backup
# Then it fails
check:
rlnRes.error() == "error in parameters generation"
# Cleanup
mock(rln_interface.new_circuit):
backup