Skip to content

SRI Integration Test Framework #1120

@plebhash

Description

@plebhash

SRI Message Generator (MG) was originally conceived as a tool for interoperability tests, where different implementations of the Stratum V2 protocol could be tested against each other.

With time, the SRI community started using MG tests as a tool for Continuous Integration (CI).

There’s been some discussion in the SRI community about the possibility of partially replacing some MG tests with a new framework for Integration Tests. That framework would take inspiration from well established projects in the Bitcoin community such as LDK and Fedimint.

It would allow MG to be limited to its originally intended purpose of interoperability testing, while also giving more flexibility and agility with regards to how CI is done for development of the SRI application layer.

This issue proposes a plan for how this migration will be executed. First, we propose a roadmap for the actual development of the new Integration Test Framework. Then, we propose a roadmap for the migration of the CI stack from MG tests into Integration Tests.

SRI Integration Test Framework

This is the proposed roadmap for the creation of the new SRI Integration Test Framework. It is split in multiple stages. Some stages could be potentially executed in parallel (e.g.: 1 + 2 and 2 + 3), while others need to be executed sequentially (e.g.: 1, then 3... and 3, then 4).

1. Initial roles refactoring

Note: this is an exception that we are making against premature roles refactoring, for which the proper roadmap is still under early brainstorming via #1069 and tasks will be structured via #1117

The changes being introduced here are relatively superficial and should not affect the overall architecture of roles.

2. Bitcoind integration

3. Message synchronization primitives

4. CI migration: MG to Integration tests

Metadata

Metadata

Labels

Type

No type

Projects

Status

Done ✅

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions