diff --git a/cranelift/filetests/README.md b/cranelift/filetests/README.md new file mode 100644 index 0000000000..345aec7242 --- /dev/null +++ b/cranelift/filetests/README.md @@ -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).