chore(store-archive): Remove duplicated code (#2234)

* Refactor utility functions for store and archive test.
This commit is contained in:
Álex Cabeza Romero 2023-11-27 18:33:27 +01:00 committed by GitHub
parent c301e880c8
commit 38e100e923
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 205 additions and 196 deletions

View File

@ -5,12 +5,10 @@ import
stew/results,
testutils/unittests
import
../../waku/common/databases/db_sqlite {.all.}
../../waku/common/databases/db_sqlite {.all.},
../waku_archive/archive_utils
proc newTestDatabase(): SqliteDatabase =
SqliteDatabase.new(":memory:").tryGet()
template sourceDir: string = currentSourcePath.rsplit(DirSep, 1)[0]
@ -18,7 +16,7 @@ suite "SQLite - migrations":
test "set and get user version":
## Given
let database = newTestDatabase()
let database = newSqliteDatabase()
## When
let setRes = database.setUserVersion(5)

View File

@ -34,8 +34,6 @@ import
testutils
]
let FUTURE_TIMEOUT = 1.seconds
suite "Waku Filter - End to End":
var client {.threadvar.}: WakuNode
var clientPeerId {.threadvar.}: PeerId

View File

@ -0,0 +1,56 @@
{.used.}
import
std/options,
chronos,
chronicles,
libp2p/crypto/crypto
import
../../../waku/[
node/peer_manager,
waku_core,
waku_archive,
waku_archive/common,
waku_archive/driver/sqlite_driver,
common/databases/db_sqlite,
waku_store
],
../testlib/[
common,
wakucore
]
proc newSqliteDatabase*(): SqliteDatabase =
SqliteDatabase.new(":memory:").tryGet()
proc newSqliteArchiveDriver*(): ArchiveDriver =
let database = newSqliteDatabase()
SqliteDriver.new(database).tryGet()
proc newWakuArchive*(driver: ArchiveDriver): WakuArchive =
WakuArchive.new(driver).get()
proc computeArchiveCursor*(pubsubTopic: PubsubTopic, message: WakuMessage): ArchiveCursor =
ArchiveCursor(
pubsubTopic: pubsubTopic,
senderTime: message.timestamp,
storeTime: message.timestamp,
digest: waku_archive.computeDigest(message)
)
proc newArchiveDriverWithMessages*(pubsubTopic: PubSubTopic, msgList: seq[WakuMessage]): ArchiveDriver =
let driver = newSqliteArchiveDriver()
for msg in msgList:
let
msgDigest = waku_archive.computeDigest(msg)
msgHash = computeMessageHash(pubsubTopic, msg)
discard waitFor driver.put(pubsubTopic, msg, msgDigest, msgHash, msg.timestamp)
return driver

View File

@ -9,23 +9,16 @@ import
../../../waku/waku_archive,
../../../waku/waku_archive/driver/sqlite_driver,
../../../waku/waku_core,
../waku_archive/archive_utils,
../testlib/common,
../testlib/wakucore
proc newTestDatabase(): SqliteDatabase =
SqliteDatabase.new(":memory:").tryGet()
proc newTestSqliteDriver(): ArchiveDriver =
let db = newTestDatabase()
SqliteDriver.new(db).tryGet()
suite "SQLite driver":
test "init driver and database":
## Given
let database = newTestDatabase()
let database = newSqliteDatabase()
## When
let driverRes = SqliteDriver.new(database)
@ -45,7 +38,7 @@ suite "SQLite driver":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let msg = fakeWakuMessage(contentTopic=contentTopic)

View File

@ -5,6 +5,7 @@ import
testutils/unittests,
chronos,
chronicles
import
../../../waku/common/databases/db_sqlite,
../../../waku/waku_archive,
@ -12,7 +13,9 @@ import
../../../waku/waku_core,
../../../waku/waku_core/message/digest,
../testlib/common,
../testlib/wakucore
../testlib/wakucore,
../waku_archive/archive_utils
logScope:
topics = "test archive _driver"
@ -22,29 +25,13 @@ logScope:
common.randomize()
proc newTestDatabase(): SqliteDatabase =
SqliteDatabase.new(":memory:").tryGet()
proc newTestSqliteDriver(): ArchiveDriver =
let db = newTestDatabase()
SqliteDriver.new(db).tryGet()
proc computeTestCursor(pubsubTopic: PubsubTopic, message: WakuMessage): ArchiveCursor =
ArchiveCursor(
pubsubTopic: pubsubTopic,
senderTime: message.timestamp,
storeTime: message.timestamp,
digest: computeDigest(message)
)
suite "SQLite driver - query by content topic":
asyncTest "no content topic":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let expected = @[
fakeWakuMessage(@[byte 0], contentTopic=DefaultContentTopic, ts=ts(00)),
@ -86,7 +73,7 @@ suite "SQLite driver - query by content topic":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let expected = @[
fakeWakuMessage(@[byte 0], ts=ts(00)),
@ -130,7 +117,7 @@ suite "SQLite driver - query by content topic":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let expected = @[
fakeWakuMessage(@[byte 0], ts=ts(00)),
@ -176,7 +163,7 @@ suite "SQLite driver - query by content topic":
const contentTopic2 = "test-content-topic-2"
const contentTopic3 = "test-content-topic-3"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let expected = @[
fakeWakuMessage(@[byte 0], ts=ts(00)),
@ -220,7 +207,7 @@ suite "SQLite driver - query by content topic":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let expected = @[
fakeWakuMessage(@[byte 0], contentTopic=DefaultContentTopic, ts=ts(00)),
@ -259,7 +246,7 @@ suite "SQLite driver - query by content topic":
## Given
const pageSize: uint = 50
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
for t in 0..<40:
let msg = fakeWakuMessage(@[byte t], DefaultContentTopic, ts=ts(t))
@ -291,7 +278,7 @@ suite "SQLite driver - query by pubsub topic":
const contentTopic = "test-content-topic"
const pubsubTopic = "test-pubsub-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let expected = @[
(DefaultPubsubTopic, fakeWakuMessage(@[byte 0], ts=ts(00))),
@ -337,7 +324,7 @@ suite "SQLite driver - query by pubsub topic":
const contentTopic = "test-content-topic"
const pubsubTopic = "test-pubsub-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let expected = @[
(DefaultPubsubTopic, fakeWakuMessage(@[byte 0], ts=ts(00))),
@ -382,7 +369,7 @@ suite "SQLite driver - query by pubsub topic":
const contentTopic = "test-content-topic"
const pubsubTopic = "test-pubsub-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let expected = @[
(DefaultPubsubTopic, fakeWakuMessage(@[byte 0], ts=ts(00))),
@ -432,7 +419,7 @@ suite "SQLite driver - query by cursor":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let expected = @[
fakeWakuMessage(@[byte 0], ts=ts(00)),
@ -454,7 +441,7 @@ suite "SQLite driver - query by cursor":
for msg in messages:
require (await driver.put(DefaultPubsubTopic, msg, computeDigest(msg), computeMessageHash(DefaultPubsubTopic, msg), msg.timestamp)).isOk()
let cursor = computeTestCursor(DefaultPubsubTopic, expected[4])
let cursor = computeArchiveCursor(DefaultPubsubTopic, expected[4])
## When
let res = await driver.getMessages(
@ -478,7 +465,7 @@ suite "SQLite driver - query by cursor":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let expected = @[
fakeWakuMessage(@[byte 0], ts=ts(00)),
@ -500,7 +487,7 @@ suite "SQLite driver - query by cursor":
for msg in messages:
require (await driver.put(DefaultPubsubTopic, msg, computeDigest(msg), computeMessageHash(DefaultPubsubTopic, msg), msg.timestamp)).isOk()
let cursor = computeTestCursor(DefaultPubsubTopic, expected[4])
let cursor = computeArchiveCursor(DefaultPubsubTopic, expected[4])
## When
let res = await driver.getMessages(
@ -524,7 +511,7 @@ suite "SQLite driver - query by cursor":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let expected = @[
fakeWakuMessage(@[byte 0], ts=ts(00)),
@ -544,7 +531,7 @@ suite "SQLite driver - query by cursor":
for msg in messages:
require (await driver.put(DefaultPubsubTopic, msg, computeDigest(msg), computeMessageHash(DefaultPubsubTopic, msg), msg.timestamp)).isOk()
let cursor = computeTestCursor(DefaultPubsubTopic, expected[4])
let cursor = computeArchiveCursor(DefaultPubsubTopic, expected[4])
## When
let res = await driver.getMessages(
@ -569,7 +556,7 @@ suite "SQLite driver - query by cursor":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let expected = @[
fakeWakuMessage(@[byte 0], ts=ts(00)),
@ -589,7 +576,7 @@ suite "SQLite driver - query by cursor":
for msg in messages:
require (await driver.put(DefaultPubsubTopic, msg, computeDigest(msg), computeMessageHash(DefaultPubsubTopic, msg), msg.timestamp)).isOk()
let cursor = computeTestCursor(DefaultPubsubTopic, expected[6])
let cursor = computeArchiveCursor(DefaultPubsubTopic, expected[6])
## When
let res = await driver.getMessages(
@ -615,7 +602,7 @@ suite "SQLite driver - query by cursor":
const contentTopic = "test-content-topic"
const pubsubTopic = "test-pubsub-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -641,7 +628,7 @@ suite "SQLite driver - query by cursor":
let (topic, msg) = row
require (await driver.put(topic, msg, computeDigest(msg), computeMessageHash(topic, msg), msg.timestamp)).isOk()
let cursor = computeTestCursor(expected[5][0], expected[5][1])
let cursor = computeArchiveCursor(expected[5][0], expected[5][1])
## When
let res = await driver.getMessages(
@ -668,7 +655,7 @@ suite "SQLite driver - query by cursor":
const contentTopic = "test-content-topic"
const pubsubTopic = "test-pubsub-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -694,7 +681,7 @@ suite "SQLite driver - query by cursor":
let (topic, msg) = row
require (await driver.put(topic, msg, computeDigest(msg), computeMessageHash(topic, msg), msg.timestamp)).isOk()
let cursor = computeTestCursor(expected[6][0], expected[6][1])
let cursor = computeArchiveCursor(expected[6][0], expected[6][1])
## When
let res = await driver.getMessages(
@ -723,7 +710,7 @@ suite "SQLite driver - query by time range":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -766,7 +753,7 @@ suite "SQLite driver - query by time range":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -810,7 +797,7 @@ suite "SQLite driver - query by time range":
const contentTopic = "test-content-topic"
const pubsubTopic = "test-pubsub-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -860,7 +847,7 @@ suite "SQLite driver - query by time range":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -905,7 +892,7 @@ suite "SQLite driver - query by time range":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -948,7 +935,7 @@ suite "SQLite driver - query by time range":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -994,7 +981,7 @@ suite "SQLite driver - query by time range":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -1018,7 +1005,7 @@ suite "SQLite driver - query by time range":
for msg in messages:
require (await driver.put(DefaultPubsubTopic, msg, computeDigest(msg), computeMessageHash(DefaultPubsubTopic, msg), msg.timestamp)).isOk()
let cursor = computeTestCursor(DefaultPubsubTopic, expected[3])
let cursor = computeArchiveCursor(DefaultPubsubTopic, expected[3])
## When
let res = await driver.getMessages(
@ -1043,7 +1030,7 @@ suite "SQLite driver - query by time range":
## Given
const contentTopic = "test-content-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -1067,7 +1054,7 @@ suite "SQLite driver - query by time range":
for msg in messages:
require (await driver.put(DefaultPubsubTopic, msg, computeDigest(msg), computeMessageHash(DefaultPubsubTopic, msg), msg.timestamp)).isOk()
let cursor = computeTestCursor(DefaultPubsubTopic, expected[6])
let cursor = computeArchiveCursor(DefaultPubsubTopic, expected[6])
## When
let res = await driver.getMessages(
@ -1093,7 +1080,7 @@ suite "SQLite driver - query by time range":
const contentTopic = "test-content-topic"
const pubsubTopic = "test-pubsub-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -1119,7 +1106,7 @@ suite "SQLite driver - query by time range":
let (topic, msg) = row
require (await driver.put(topic, msg, computeDigest(msg), computeMessageHash(topic, msg), msg.timestamp)).isOk()
let cursor = computeTestCursor(DefaultPubsubTopic, expected[1][1])
let cursor = computeArchiveCursor(DefaultPubsubTopic, expected[1][1])
## When
let res = await driver.getMessages(
@ -1148,7 +1135,7 @@ suite "SQLite driver - query by time range":
const contentTopic = "test-content-topic"
const pubsubTopic = "test-pubsub-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -1174,7 +1161,7 @@ suite "SQLite driver - query by time range":
let (topic, msg) = row
require (await driver.put(topic, msg, computeDigest(msg), computeMessageHash(topic, msg), msg.timestamp)).isOk()
let cursor = computeTestCursor(expected[7][0], expected[7][1])
let cursor = computeArchiveCursor(expected[7][0], expected[7][1])
## When
let res = await driver.getMessages(
@ -1203,7 +1190,7 @@ suite "SQLite driver - query by time range":
const contentTopic = "test-content-topic"
const pubsubTopic = "test-pubsub-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -1229,7 +1216,7 @@ suite "SQLite driver - query by time range":
let (topic, msg) = row
require (await driver.put(topic, msg, computeDigest(msg), computeMessageHash(topic, msg), msg.timestamp)).isOk()
let cursor = computeTestCursor(expected[1][0], expected[1][1])
let cursor = computeArchiveCursor(expected[1][0], expected[1][1])
## When
let res = await driver.getMessages(
@ -1259,7 +1246,7 @@ suite "SQLite driver - query by time range":
const contentTopic = "test-content-topic"
const pubsubTopic = "test-pubsub-topic"
let driver = newTestSqliteDriver()
let driver = newSqliteArchiveDriver()
let timeOrigin = now()
let expected = @[
@ -1285,7 +1272,7 @@ suite "SQLite driver - query by time range":
let (topic, msg) = row
require (await driver.put(topic, msg, computeDigest(msg), computeMessageHash(topic, msg), msg.timestamp)).isOk()
let cursor = computeTestCursor(expected[1][0], expected[1][1])
let cursor = computeArchiveCursor(expected[1][0], expected[1][1])
## When
let res = await driver.getMessages(

View File

@ -14,18 +14,11 @@ import
../../../waku/waku_archive/retention_policy,
../../../waku/waku_archive/retention_policy/retention_policy_capacity,
../../../waku/waku_archive/retention_policy/retention_policy_size,
../waku_archive/archive_utils,
../testlib/common,
../testlib/wakucore
proc newTestDatabase(): SqliteDatabase =
SqliteDatabase.new(":memory:").tryGet()
proc newTestArchiveDriver(): ArchiveDriver =
let db = newTestDatabase()
SqliteDriver.new(db).tryGet()
suite "Waku Archive - Retention policy":
test "capacity retention policy - windowed message deletion":
@ -34,7 +27,7 @@ suite "Waku Archive - Retention policy":
capacity = 100
excess = 60
let driver = newTestArchiveDriver()
let driver = newSqliteArchiveDriver()
let retentionPolicy: RetentionPolicy = CapacityRetentionPolicy.init(capacity=capacity)
var putFutures = newSeq[Future[ArchiveDriverResult[void]]]()
@ -66,7 +59,7 @@ suite "Waku Archive - Retention policy":
sizeLimit:int64 = 52428
excess = 325
let driver = newTestArchiveDriver()
let driver = newSqliteArchiveDriver()
let retentionPolicy: RetentionPolicy = SizeRetentionPolicy.init(size=sizeLimit)
var putFutures = newSeq[Future[ArchiveDriverResult[void]]]()
@ -121,7 +114,7 @@ suite "Waku Archive - Retention policy":
const contentTopic = "test-content-topic"
let
driver = newTestArchiveDriver()
driver = newSqliteArchiveDriver()
retentionPolicy: RetentionPolicy = CapacityRetentionPolicy.init(capacity=capacity)
let messages = @[

View File

@ -6,42 +6,24 @@ import
chronicles,
chronos,
libp2p/crypto/crypto
import
../../../waku/common/databases/db_sqlite,
../../../waku/waku_core,
../../../waku/waku_core/message/digest,
../../../waku/waku_archive/driver/sqlite_driver,
../../../waku/waku_archive,
../waku_archive/archive_utils,
../testlib/common,
../testlib/wakucore
proc newTestDatabase(): SqliteDatabase =
SqliteDatabase.new(":memory:").tryGet()
proc newTestArchiveDriver(): ArchiveDriver =
let db = newTestDatabase()
SqliteDriver.new(db).tryGet()
proc newTestWakuArchive(driver: ArchiveDriver): WakuArchive =
WakuArchive.new(driver).get()
proc computeTestCursor(pubsubTopic: PubsubTopic, message: WakuMessage): ArchiveCursor =
ArchiveCursor(
pubsubTopic: pubsubTopic,
senderTime: message.timestamp,
storeTime: message.timestamp,
digest: computeDigest(message)
)
suite "Waku Archive - message handling":
test "it should driver a valid and non-ephemeral message":
## Setup
let driver = newTestArchiveDriver()
let archive = newTestWakuArchive(driver)
let driver = newSqliteArchiveDriver()
let archive = newWakuArchive(driver)
## Given
let validSenderTime = now()
@ -56,8 +38,8 @@ suite "Waku Archive - message handling":
test "it should not driver an ephemeral message":
## Setup
let driver = newTestArchiveDriver()
let archive = newTestWakuArchive(driver)
let driver = newSqliteArchiveDriver()
let archive = newWakuArchive(driver)
## Given
let msgList = @[
@ -78,8 +60,8 @@ suite "Waku Archive - message handling":
test "it should driver a message with no sender timestamp":
## Setup
let driver = newTestArchiveDriver()
let archive = newTestWakuArchive(driver)
let driver = newSqliteArchiveDriver()
let archive = newWakuArchive(driver)
## Given
let invalidSenderTime = 0
@ -94,8 +76,8 @@ suite "Waku Archive - message handling":
test "it should not driver a message with a sender time variance greater than max time variance (future)":
## Setup
let driver = newTestArchiveDriver()
let archive = newTestWakuArchive(driver)
let driver = newSqliteArchiveDriver()
let archive = newWakuArchive(driver)
## Given
let
@ -113,8 +95,8 @@ suite "Waku Archive - message handling":
test "it should not driver a message with a sender time variance greater than max time variance (past)":
## Setup
let driver = newTestArchiveDriver()
let archive = newTestWakuArchive(driver)
let driver = newSqliteArchiveDriver()
let archive = newWakuArchive(driver)
## Given
let
@ -149,8 +131,8 @@ procSuite "Waku Archive - find messages":
let archiveA = block:
let
driver = newTestArchiveDriver()
archive = newTestWakuArchive(driver)
driver = newSqliteArchiveDriver()
archive = newWakuArchive(driver)
for msg in msgListA:
require (waitFor driver.put(DefaultPubsubTopic, msg, computeDigest(msg), computeMessageHash(DefaultPubsubTopic, msg), msg.timestamp)).isOk()
@ -160,8 +142,8 @@ procSuite "Waku Archive - find messages":
test "handle query":
## Setup
let
driver = newTestArchiveDriver()
archive = newTestWakuArchive(driver)
driver = newSqliteArchiveDriver()
archive = newWakuArchive(driver)
let topic = ContentTopic("1")
let
@ -189,8 +171,8 @@ procSuite "Waku Archive - find messages":
test "handle query with multiple content filters":
## Setup
let
driver = newTestArchiveDriver()
archive = newTestWakuArchive(driver)
driver = newSqliteArchiveDriver()
archive = newWakuArchive(driver)
let
topic1 = ContentTopic("1")
@ -225,8 +207,8 @@ procSuite "Waku Archive - find messages":
test "handle query with more than 10 content filters":
## Setup
let
driver = newTestArchiveDriver()
archive = newTestWakuArchive(driver)
driver = newSqliteArchiveDriver()
archive = newWakuArchive(driver)
let queryTopics = toSeq(1..15).mapIt(ContentTopic($it))
@ -248,8 +230,8 @@ procSuite "Waku Archive - find messages":
test "handle query with pubsub topic filter":
## Setup
let
driver = newTestArchiveDriver()
archive = newTestWakuArchive(driver)
driver = newSqliteArchiveDriver()
archive = newWakuArchive(driver)
let
pubsubTopic1 = "queried-topic"
@ -291,8 +273,8 @@ procSuite "Waku Archive - find messages":
test "handle query with pubsub topic filter - no match":
## Setup
let
driver = newTestArchiveDriver()
archive = newTestWakuArchive(driver)
driver = newSqliteArchiveDriver()
archive = newWakuArchive(driver)
let
pubsubtopic1 = "queried-topic"
@ -324,8 +306,8 @@ procSuite "Waku Archive - find messages":
test "handle query with pubsub topic filter - match the entire stored messages":
## Setup
let
driver = newTestArchiveDriver()
archive = newTestWakuArchive(driver)
driver = newSqliteArchiveDriver()
archive = newWakuArchive(driver)
let pubsubTopic = "queried-topic"
@ -382,8 +364,8 @@ procSuite "Waku Archive - find messages":
## Then
check:
cursors[0] == some(computeTestCursor(DefaultPubsubTopic, msgListA[3]))
cursors[1] == some(computeTestCursor(DefaultPubsubTopic, msgListA[7]))
cursors[0] == some(computeArchiveCursor(DefaultPubsubTopic, msgListA[3]))
cursors[1] == some(computeArchiveCursor(DefaultPubsubTopic, msgListA[7]))
cursors[2] == none(ArchiveCursor)
check:
@ -418,8 +400,8 @@ procSuite "Waku Archive - find messages":
## Then
check:
cursors[0] == some(computeTestCursor(DefaultPubsubTopic, msgListA[6]))
cursors[1] == some(computeTestCursor(DefaultPubsubTopic, msgListA[2]))
cursors[0] == some(computeArchiveCursor(DefaultPubsubTopic, msgListA[6]))
cursors[1] == some(computeArchiveCursor(DefaultPubsubTopic, msgListA[2]))
cursors[2] == none(ArchiveCursor)
check:
@ -430,8 +412,8 @@ procSuite "Waku Archive - find messages":
test "handle query with no paging info - auto-pagination":
## Setup
let
driver = newTestArchiveDriver()
archive = newTestWakuArchive(driver)
driver = newSqliteArchiveDriver()
archive = newWakuArchive(driver)
let msgList = @[
fakeWakuMessage(@[byte 0], contentTopic=ContentTopic("2")),

View File

@ -1011,7 +1011,6 @@ suite "Waku Relay":
msg5 = fakeWakuMessage(contentTopic=contentTopic, payload=getByteSequence(1023*1024 + 934)) # 1MiB - 90B -> Max Size (Exclusive Limit)
msg6 = fakeWakuMessage(contentTopic=contentTopic, payload=getByteSequence(1024*1024)) # 1MiB -> Out of Max Size
# When sending the 1KiB message
handlerFuture = newPushHandlerFuture()
otherHandlerFuture = newPushHandlerFuture()

View File

@ -0,0 +1,42 @@
{.used.}
import
std/options,
chronos,
chronicles,
libp2p/crypto/crypto
import
../../../waku/[
node/peer_manager,
waku_core,
waku_store,
waku_store/client,
],
../testlib/[
common,
wakucore
]
proc newTestWakuStore*(switch: Switch, handler: HistoryQueryHandler): Future[WakuStore] {.async.} =
let
peerManager = PeerManager.new(switch)
proto = WakuStore.new(peerManager, rng, handler)
await proto.start()
switch.mount(proto)
return proto
proc newTestWakuStoreClient*(switch: Switch): WakuStoreClient =
let peerManager = PeerManager.new(switch)
WakuStoreClient.new(peerManager, rng)
proc computeHistoryCursor*(pubsubTopic: PubsubTopic, message: WakuMessage): HistoryCursor =
HistoryCursor(
pubsubTopic: pubsubTopic,
senderTime: message.timestamp,
storeTime: message.timestamp,
digest: waku_store.computeDigest(message)
)

View File

@ -14,34 +14,12 @@ import
../../waku/waku_core,
../../waku/waku_core/message/digest,
../../waku/waku_store,
../waku_store/store_utils,
../waku_archive/archive_utils,
./testlib/common,
./testlib/switch
proc newTestDatabase(): SqliteDatabase =
SqliteDatabase.new("memory:").tryGet()
proc newTestArchiveDriver(): ArchiveDriverResult =
let database = SqliteDatabase.new(":memory:").tryGet()
SqliteDriver.init(database).tryGet()
proc newTestWakuStore(switch: Switch, store: MessageStore = nil): Future[WakuStore] {.async.} =
let
peerManager = PeerManager.new(switch)
proto = WakuStore.init(peerManager, rng, store)
await proto.start()
switch.mount(proto)
return proto
proc newTestWakuStoreClient(switch: Switch, store: MessageStore = nil): WakuStoreClient =
let
peerManager = PeerManager.new(switch)
WakuStoreClient.new(peerManager, rng, store)
procSuite "Waku Store - resume store":
## Fixtures
let storeA = block:
@ -222,7 +200,7 @@ suite "WakuNode - waku store":
await allFutures(client.start(), server.start())
let driver = newTestArchiveDriver()
let driver = newSqliteArchiveDriver()
server.mountArchive(some(driver), none(MessageValidator), none(RetentionPolicy))
await server.mountStore()

View File

@ -6,27 +6,19 @@ import
chronos,
chronicles,
libp2p/crypto/crypto
import
../../../waku/node/peer_manager,
../../../waku/waku_core,
../../../waku/waku_store,
../../../waku/waku_store/client,
../testlib/common,
../testlib/wakucore
proc newTestWakuStore(switch: Switch, handler: HistoryQueryHandler): Future[WakuStore] {.async.} =
let
peerManager = PeerManager.new(switch)
proto = WakuStore.new(peerManager, rng, handler)
await proto.start()
switch.mount(proto)
return proto
proc newTestWakuStoreClient(switch: Switch): WakuStoreClient =
let peerManager = PeerManager.new(switch)
WakuStoreClient.new(peerManager, rng)
../../../waku/[
node/peer_manager,
waku_core,
waku_store,
waku_store/client,
],
../testlib/[
common,
wakucore
],
./store_utils
suite "Waku Store - query handler":

View File

@ -22,21 +22,12 @@ import
../../../waku/waku_store,
../../../waku/waku_filter,
../../../waku/waku_node,
../waku_store/store_utils,
../waku_archive/archive_utils,
../testlib/common,
../testlib/wakucore,
../testlib/wakunode
proc newTestArchiveDriver(): ArchiveDriver =
let database = SqliteDatabase.new(":memory:").tryGet()
SqliteDriver.new(database).tryGet()
proc computeTestCursor(pubsubTopic: PubsubTopic, message: WakuMessage): HistoryCursor =
HistoryCursor(
pubsubTopic: pubsubTopic,
senderTime: message.timestamp,
storeTime: message.timestamp,
digest: waku_archive.computeDigest(message)
)
procSuite "WakuNode - Store":
## Fixtures
@ -55,7 +46,7 @@ procSuite "WakuNode - Store":
]
let archiveA = block:
let driver = newTestArchiveDriver()
let driver = newSqliteArchiveDriver()
for msg in msgListA:
let msg_digest = waku_archive.computeDigest(msg)
@ -139,7 +130,7 @@ procSuite "WakuNode - Store":
## Then
check:
cursors[0] == some(computeTestCursor(DefaultPubsubTopic, msgListA[6]))
cursors[0] == some(computeHistoryCursor(DefaultPubsubTopic, msgListA[6]))
cursors[1] == none(HistoryCursor)
check:
@ -190,7 +181,7 @@ procSuite "WakuNode - Store":
## Then
check:
cursors[0] == some(computeTestCursor(DefaultPubsubTopic, msgListA[3]))
cursors[0] == some(computeHistoryCursor(DefaultPubsubTopic, msgListA[3]))
cursors[1] == none(HistoryCursor)
check:
@ -214,7 +205,7 @@ procSuite "WakuNode - Store":
waitFor allFutures(client.start(), server.start(), filterSource.start())
waitFor filterSource.mountFilter()
let driver = newTestArchiveDriver()
let driver = newSqliteArchiveDriver()
let mountArchiveRes = server.mountArchive(driver)
assert mountArchiveRes.isOk(), mountArchiveRes.error