Update test framework documentation
This commit is contained in:
parent
8aac7a6007
commit
6990d21a8d
|
@ -5,25 +5,29 @@ runner.
|
|||
|
||||
Each test is structured as a source `[name].s` PPC assembly file and the
|
||||
generated outputs. The outputs are made using the custom build of binutils
|
||||
setup when `xenia-build setup` is called and are checked in to make it easier
|
||||
setup when `xenia-build gentests` is called and are checked in to make it easier
|
||||
to run the tests on Windows.
|
||||
|
||||
Tests are run using the `xenia-test` app or via `xenia-build test`.
|
||||
|
||||
## Execution
|
||||
|
||||
The test binary is placed into memory at `0x82010000` and all other memory is
|
||||
zeroed.
|
||||
**On Xenia**: The test binary is placed into memory at `0x82010000` and all other
|
||||
memory is zeroed.
|
||||
|
||||
All registers are reset to zero. In order to provide useful inputs tests can
|
||||
specify `# REGISTER_IN` values.
|
||||
specify `#_ REGISTER_IN` values.
|
||||
|
||||
The code is jumped into at the starting address and executed until the last
|
||||
instruction in the input file is reached.
|
||||
The code is jumped into at the starting address and executed until a `blr`
|
||||
instruction is encountered.
|
||||
|
||||
After all instructions complete any `# REGISTER_OUT` values are checked and if
|
||||
After all instructions complete any `#_ REGISTER_OUT` values are checked and if
|
||||
they do not match the test is failed.
|
||||
|
||||
## Registers
|
||||
|
||||
All registers **except lr, r1, and r13** are available for usage by tests.
|
||||
|
||||
## Annotations
|
||||
|
||||
Annotations can appear at any line in a file. If a number is required it can
|
||||
|
@ -32,21 +36,21 @@ be in either hex or decimal form, or IEEE if floating-point.
|
|||
### REGISTER_IN
|
||||
|
||||
```
|
||||
# REGISTER_IN [register name] [register value]
|
||||
#_ REGISTER_IN [register name] [register value]
|
||||
```
|
||||
|
||||
Sets the value of a register prior to executing the instructions.
|
||||
|
||||
Examples:
|
||||
```
|
||||
# REGISTER_IN r4 0x1234
|
||||
# REGISTER_IN r4 5678
|
||||
#_ REGISTER_IN r4 0x1234
|
||||
#_ REGISTER_IN r4 5678
|
||||
```
|
||||
|
||||
### REGISTER_OUT
|
||||
|
||||
```
|
||||
# REGISTER_OUT [register name] [register value]
|
||||
#_ REGISTER_OUT [register name] [register value]
|
||||
```
|
||||
|
||||
Defines the expected register value when the instructions have executed.
|
||||
|
@ -55,7 +59,7 @@ the value given here the test will fail.
|
|||
|
||||
Examples:
|
||||
```
|
||||
# REGISTER_OUT r3 123
|
||||
#_ REGISTER_OUT r3 123
|
||||
```
|
||||
|
||||
TODO: memory setup/assertions
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# 1 = PACK_TYPE_SHORT_2
|
||||
# 2 = PACK_TYPE_2_10_10_10
|
||||
# 3 = PACK_TYPE_FLOAT16_2
|
||||
# 4 = ?
|
||||
# 4 = PACK_TYPE_SHORT_4
|
||||
# 5 = PACK_TYPE_FLOAT16_4
|
||||
# mask:
|
||||
# must not be zero
|
||||
|
|
Loading…
Reference in New Issue