oxidecomputer / oxidecomputer/omicron
Nexus infrastructure for testing concurrent operation interleaving
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
This came out of this discussion.
The general idea would be to introduce a framework for that would allow for controlling the specific way in which operations interleave. In the link above, @davepacheco provides an example of a possible way to do this.
Some open questions on my mind are
- What classes of interleavings do we want to be able to test? In particular, this came up while discussing building a database synchronization utility. If we want to cover that, we may need to be able to somehow control interleaving of subexpressions of a query we've sent to the database server.
- Can we avoid these tests being sensitive to refactoring? That is, will the tests need to change in the presence of a logically correct refactoring.
- How should we prioritize such infrastructure versus other work?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked discussion in pull request 325, especially the proposed approach for controlling operation interleavings. Identify the testing entry points and define which interleavings must be supported, how database subexpressions are handled, and how refactoring affects tests; the issue currently does not specify files, tests, or a clear completion condition.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- distributed-systems, testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100