(2023Q3) MIR: check TZT test suite exhaustiveness
This is a sub-milestone of %(2023Q3-Q4) Michelson-in-Rust, for the fully featured implementation phase.
Context
One way to validate the implementation of MIR is to have a set of test cases covering at least each Michelson instruction, and that both the Tezos (Ocaml) version and the Rust version agree on: they fail on the same test cases and they succeed with the same result otherwise.
There already exists a test suite for Michelson instructions: TZT.
The goal of the milestone is to check that TZT fits our purpose by covering all Michelson instructions. Missing tests will be implemented during milestone %(2023Q3) MIR: add some missing interpretation tests to TZT.
There does not seem to be tests that stress type-checking in TZT. For the successful case, we can simply use the test for the interpreter, as we expect that it type-checks. However, we'll add type-check failing tests for each instruction as part of milestone %(2023Q3) MIR: add type-checking tests to TZT.
Here, for each instruction, we're looking for a TZT test that uses the instruction and declares what is its expected result.
Work break down
Total: 178/178 (100%) instructions analyzed and reviewed.
-
Control structures: #6118 (closed). -
Stack manipulation: #6119 (closed). -
Arithmetic operations: #6120 (closed). -
Boolean operations: #6121 (closed). -
Operations on data structures: #6122 (closed). -
Operations on tickets: #6123 (closed). -
Cryptographic operations: #6124 (closed). -
Blockchain operations: #6125 (closed). -
Create a file in the TZT repository with the missing test cases reported in the issues above: #6196 (closed).