vac:qa:waku:2025q1-waku-go-bindings-testing
Description
Develop a robust test automation framework for the waku-go-bindings
package
and enhance protocol coverage for critical Waku functionality.
The framework should enable interaction with multiple nodes
and scale testing efforts similarly to waku-interop-tests
.
The primary focus is to cover relay protocol,
ensuring reliability across diverse scenarios in accordance to Waku FURPS.
Alignment with VAC Narratives:
- The VAC QA team plays a key role in supporting internal collaboration and efficiency across projects by ensuring the quality of Nwaku Go Bindings and the sunsetting of go-waku.
- By finding issues in specs during testing, VAC strengthens the RFC culture, contributing to continuous improvement and community engagement.
Task List
Framework Development
- fully qualified name:
vac:qa:waku:2025q1-waku-go-bindings-testing:framework-development
- owner: aya
- status: done
- start-date: 2025/01/06
- end-date: 2025/01/20
Description
Create a test automation framework for the waku-go-bindings-testing
package.
The framework should support running and interacting with multiple nodes,
with the capability to scale testing to match the approach used in waku-interop-tests
.
It should also be adaptable to future testing needs.
Deliverables
Relay Protocol Testing
- fully qualified name:
vac:qa:waku:2025q1-waku-go-bindings-testing:relay
- owner: aya
- status: done
- start-date: 2025/01/20
- end-date: 2025/02/25
Description
Add test coverage by implementing tests for the relay protocol.
These tests should mirror the approach used in waku-interop-tests
and ensure reliable message propagation across multiple nodes.
Deliverables
PRs:
- Framework support
- Relay tests Issues:
- Cannot Unmarshal Array into messageHash of Type common.MessageHash
- Panic: sync: negative WaitGroup counter Occurs During Relay Peer Connection
- Message Received Despite Relay = false in Test TestMessageNotReceivedWithoutRelay
- Unhandled Exception When Sending Invalid Payload in Waku Relay Publish
Store Protocol Testing
- fully qualified name:
vac:qa:waku:2025q1-waku-go-bindings-testing:store
- owner: aya
- status: done
- start-date: 2025/02/10
- end-date: 2025/03/10
Description
Add test coverage by implementing tests for the store protocol.
These tests should mirror the approach used in waku-interop-tests
and ensure reliable message storing across multiple nodes.
Deliverables
- PR: Store tests
- Bug: Can’t pause & resume nodes
- Bug: Legacy store not working
- PR: Add final set of store tests
Maintenance
- fully qualified name:
vac:qa:waku:2025q1-waku-go-bindings-testing:maintenance
- owner: aya
- status: in progress (80%)
- start-date: 2025/01/01
- end-date: 2025/03/31
Description
Ongoing maintenance of Waku go bindings tests.
This includes updating tests for changes in the bindings or in nwaku
or gowaku
, addressing regressions,
investigating and resolving issues, and implementing minor improvements to the testing framework as needed.
Deliverables
Connection
- fully qualified name:
vac:qa:waku:2025q1-waku-go-bindings-testing:connection
- owner: radek
- status: done
- start-date: 2025/03/03
- end-date: 2025/03/10
Description
Create tests focusing on Discv5 peer discovery and direct peer connections. More info here
Deliverables
Endurance
- fully qualified name:
vac:qa:waku:2025q1-waku-go-bindings-testing:endurance
- owner: aya
- status: in progress (80%)
- start-date: 2025/03/10
- end-date: 2025/03/20
Description
Create an endurance tests suite where we invoke waku functions thousand times and then making sure the memory doesn’t grow, while waku still performs as expected.
Deliverables
- test: new stress tests
- bug: calling Destroy() in a test breaks subsequent node creation and message reception
CI
- fully qualified name:
vac:qa:waku:2025q1-waku-go-bindings-testing:ci
- owner: aya
- status: in progress (90%)
- start-date: 2025/03/20
- end-date: 2025/03/30
Description
Create a github actions workflow that runs the tests each night.