A library for parsing Whiley test files according to RFC#110 which are used for testing the Whiley compiler. Each test describes a sequence of modifications to one of more Whiley files, along with the expected outcomes (e.g. errors, warnings, etc). An example test file is the following:
``` whiley.verify = false
main.whiley method main(): other.whiley
import main
E101 main.whiley 1,2
<<< other.whiley
main.whiley 1:1 method main()
skip
```
This is a test involving two files: main.whiley
and other.whiley
.
The initial frame sets the contents of main.whiley
to method
main()
and the contents of other.whiley
to import main
.
Furthermore, compiling this frame is expected to produce two errors
(E101
and E302
). The second frame deletes file other.whiley
and
updates the contents of main.whiley
. Furthermore, compiling the
snapshot at this point is not expected to produce any errors.
Rust
use std::fs;
use whiley_test_file::WhileyTestFile;
//!
fn load(filename: &str) {
// Read the test file
let input = fs::read_to_string(filename).unwrap();
// Parse test file
let test_file = WhileyTestFile::new(&input).unwrap();
// ...
}
This simply reads a file from disk and parses it as a
WhileyTestFile
, expecting this all to succeed.