cranelift: Add some filetests documentation (#4833)
This commit is contained in:
36
cranelift/filetests/README.md
Normal file
36
cranelift/filetests/README.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# filetests
|
||||||
|
|
||||||
|
Filetests is a crate that contains multiple test suites for testing
|
||||||
|
various parts of cranelift. Each folder under `cranelift/filetests/filetests` is a different
|
||||||
|
test suite that tests different parts.
|
||||||
|
|
||||||
|
## Adding a runtest
|
||||||
|
|
||||||
|
One of the available testsuites is the "runtest" testsuite. Its goal is to compile some piece
|
||||||
|
of clif code, run it and ensure that what comes out is what we expect.
|
||||||
|
|
||||||
|
To build a run test you can add the following to a file:
|
||||||
|
|
||||||
|
```
|
||||||
|
test interpret
|
||||||
|
test run
|
||||||
|
target x86_64
|
||||||
|
target aarch64
|
||||||
|
target s390x
|
||||||
|
|
||||||
|
function %band_f32(f32, f32) -> f32 {
|
||||||
|
block0(v0: f32, v1: f32):
|
||||||
|
v2 = band v0, v1
|
||||||
|
return v2
|
||||||
|
}
|
||||||
|
; run: %band_f32(0x0.5, 0x1.0) == 0x1.5
|
||||||
|
```
|
||||||
|
|
||||||
|
Since this is a run test for `band` we can put it in: `runtests/band.clif`.
|
||||||
|
Once we have the file in the test suite we can run it by invoking: `cargo run -- test filetests/filetests/runtests/band.clif` from the cranelift directory.
|
||||||
|
|
||||||
|
|
||||||
|
The first lines tell `clif-util` what kind of tests we want to run on this file.
|
||||||
|
`test interpret` invokes the interpreter and checks if the conditions in the `; run` comments pass. `test run` does the same, but compiles the file and runs it as a native binary.
|
||||||
|
|
||||||
|
For more information about testing see [testing.md](../docs/testing.md).
|
||||||
Reference in New Issue
Block a user