logos-delivery/tests/all_tests_waku.nim
NagyZoltanPeter 1339be1f5e
refactor(core): make WakuMessage a ref object with structural ==/clone
Change WakuMessage from a value object to a ref object so assignments,
async-closure captures, and Result/Option bind-outs cost a pointer +
refcount instead of deep-copying the three seqs + string.

- structural `==` (nil-aware, field-wise) so message equality assertions
  keep working under ref identity
- `clone()` explicit deep copy for the rare mutate-a-held-message case
- rewrite `ensureTimestampSet` to be non-mutating (clone when unset)
  instead of `result = message; result.timestamp = ...`, which under ref
  semantics would mutate the shared input
- new unit tests: structural == incl. nil, clone independence,
  ensureTimestampSet same-ref/fresh-ref behaviour

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 04:47:05 +02:00

94 lines
2.2 KiB
Nim

## Waku v2
import ./test_waku
# Waku core test suite
import
./waku_core/test_namespaced_topics,
./waku_core/test_time,
./waku_core/test_message,
./waku_core/test_message_digest,
./waku_core/test_peers,
./waku_core/test_published_address
# Waku archive test suite
import
./waku_archive/test_driver_queue_index,
./waku_archive/test_driver_queue_pagination,
./waku_archive/test_driver_queue_query,
./waku_archive/test_driver_queue,
./waku_archive/test_driver_sqlite_query,
./waku_archive/test_driver_sqlite,
./waku_archive/test_retention_policy,
./waku_archive/test_waku_archive,
./waku_archive/test_partition_manager
const os* {.strdefine.} = ""
when os == "Linux" and
# GitHub only supports container actions on Linux
# and we need to start a postgres database in a docker container
defined(postgres):
import
./waku_archive/test_driver_postgres_query,
./waku_archive/test_driver_postgres,
./factory/test_node_factory,
./wakunode_rest/test_rest_store,
./wakunode_rest/test_all
# Waku store test suite
import
./waku_store/test_client,
./waku_store/test_rpc_codec,
./waku_store/test_waku_store,
./waku_store/test_wakunode_store
# Waku store sync suite
import ./waku_store_sync/test_all
import
./node/test_all,
./waku_filter_v2/test_all,
./waku_peer_exchange/test_all,
./waku_lightpush_legacy/test_all,
./waku_lightpush/test_all,
./waku_relay/test_all,
./incentivization/test_all
import
# Waku v2 tests
./test_wakunode,
./test_peer_store_extended,
./test_message_cache,
./test_peer_manager,
./test_peer_storage,
./test_waku_keepalive,
./test_waku_enr,
./test_waku_dnsdisc,
./test_relay_peer_exchange,
./test_waku_netconfig,
./test_waku_switch,
./test_waku_rendezvous,
./test_waku_metadata,
./waku_discv5/test_waku_discv5,
./waku_kademlia/test_waku_kademlia
# Waku Keystore test suite
import ./test_waku_keystore_keyfile, ./test_waku_keystore
import ./waku_rln_relay/test_all
# Node Factory
import ./factory/test_all
# Waku API tests
import ./api/test_all
# Waku tools tests
import ./tools/test_all
# Persistency library tests
import ./persistency/test_all
# Reliable Channel API tests
import ./channels/test_all