Motivation
It may be useful to add end-to-end functional test coverage for sv2-tp.
The current C++ tests cover a lot of internal SV2 behavior, including Noise, transport, messages, connman, Template Provider behavior, mock sockets, and mock mining. However, there does not seem to be automated process-level coverage for the deployment topology users actually run:
bitcoin-node on regtest with IPC enabled
sv2-tp as a separate binary connected over IPC
- an SV2 client connected over TCP
- template delivery, transaction data requests, and block submission behavior across real processes
The docs already mention the regtest SRI setup as a good target for future functional test coverage.
Manual testing has also surfaced issues such as:
This suggests there may be bugs that are easier to catch at the process/integration layer than inside the current C++ test harness.
Possible first step
A small CI-friendly smoke test could:
- start
bitcoin-node -regtest -ipcbind=unix
- start
sv2-tp -regtest -conf=0 -ipcconnect=unix
- connect a minimal SV2 test client
- complete the Noise handshake and
SetupConnection
- verify initial
NewTemplate / SetNewPrevHash behavior
- capture logs and fail deterministically on startup or protocol errors
Questions
- Would this kind of functional test coverage be welcome in this repository?
- Should a minimal SV2 test client be implemented in Python, or would reusing SRI components be preferable?
- Are there CI/runtime/dependency constraints that should shape the design?
Motivation
It may be useful to add end-to-end functional test coverage for
sv2-tp.The current C++ tests cover a lot of internal SV2 behavior, including Noise, transport, messages, connman, Template Provider behavior, mock sockets, and mock mining. However, there does not seem to be automated process-level coverage for the deployment topology users actually run:
bitcoin-nodeon regtest with IPC enabledsv2-tpas a separate binary connected over IPCThe docs already mention the regtest SRI setup as a good target for future functional test coverage.
Manual testing has also surfaced issues such as:
This suggests there may be bugs that are easier to catch at the process/integration layer than inside the current C++ test harness.
Possible first step
A small CI-friendly smoke test could:
bitcoin-node -regtest -ipcbind=unixsv2-tp -regtest -conf=0 -ipcconnect=unixSetupConnectionNewTemplate/SetNewPrevHashbehaviorQuestions