0xMiden / 0xMiden/miden-vm

Unit tests for private MASM procedures

Open
#1,618 3 comments 1 reaction 1 assignee Assigned to @bitwalker View on GitHub
assembly debugging
Dominant language
Rust
Stars
772
Forks
352
Avg merge
1d 12h
Merged PRs (30d)
93

Description

### Feature description

In miden-base, we would like to be able to write unit tests for private (non-`export`ed) MASM procedures.

Ideally we could write these unit tests as Rust tests (mostly for integration in the Rust test setup and because we can setup the environment a bit better in case tests fail and a developer needs to debug), but this requires the MASM procedures to be exported. For now, we might just export them, but longer term it would be nice to have a better way to do this.

In talking with @bobbinth, one idea was to use procedure annotations (#1434) to conditionally assemble procedures to be either `proc` in normal usage or `export` if we want to build a `MastForest` library to test these procedures through.

A similar idea is to write unit tests directly in MASM behind a `#[cfg(test)]` like flag through which we could assemble a MASM test program. This would keep the procedure definitions itself cleaner (without `cfg` annotations on each).

### Why is this feature needed?

Ensure correctness of MASM procedures.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.