Overview
In the VAMP processor conformance-testing case study, logic operations are treated as an instruction type within the processor instruction-set model used for test generation. The VAMP assembly-level model, VAMPasm, is described as the instruction set of the Verified Architecture MicroProcessor (VAMP), and it contains 56 instructions, including a group of 14 arithmetic and logical-operation instructions.
Role in the VAMP case study
The study uses an abstract assembler-level model as the basis for black-box test generation. The aim is to check that the processor behaves as described by the assembler model, independently of implementation details such as interrupt handling, virtual memory and caching, pipelining, and instruction reordering.
Within this testing effort, the authors studied four instruction-type groups:
- memory-related load and store operations,
- arithmetic operations,
- logic operations,
- control-flow-related operations.
The evidence does not enumerate the individual logic-operation instructions, but it establishes logic operations as a distinct instruction group considered in the testing campaign.
Testing approach
The case study applies two testing scenarios: model-based unit testing and sequence testing. Unit testing is used to test each operation or instruction individually with different data. Sequence testing is used to test instruction sequences up to a given length. Related instruction subsets, including logic operations, are addressed separately, although combinations of different instruction types are stated to be possible but not explored in the provided passage.
A general unit-instruction test specification compares the system under test with the execution of the instruction in the model:
test_spec pre σ ι ⇒ SUT σ ι =k exec_instr σ ι
Here, the conformance relation =k compares the state controlled according to the model with the state controlled by the system under test; in the cited description, it compares register contents and the top k memory cells rather than infinite memory. Test cases consist of an instruction, an initial configuration, and the resulting configuration after executing the instruction. Instruction subsets can be isolated by adding a precondition specifying the instruction type.
Tool context
The study uses HOL-TestGen, a formal testing tool built on Isabelle/HOL. HOL-TestGen is described as supporting document-centric modeling of test theories, logical transformation of test goals, and test generation. Its test-generation process includes test-case generation, test-data selection using constraint solvers, random test generation, and the Z3 SMT solver, followed by test execution.