oxidecomputer / oxidecomputer/omicron

Nexus infrastructure for testing concurrent operation interleaving

Open
#330 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

nexus Testing & Analysis
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.