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