37 lines
1.2 KiB
Markdown
37 lines
1.2 KiB
Markdown
# 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).
|