# WhileyTestFile A library for parsing Whiley test files according to [RFC#110](https://github.com/Whiley/RFCs/blob/master/text/0110-test-file-format.md) which are used for testing the [Whiley compiler](https://github.com/Whiley/WhileyCompiler). 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 boogie.timeout = 1000 ================ >>> main.whiley method main(): >>> other.whiley import main --- E101 main.whiley 1,2 E302 main.whiley 2,2:3 ================ <<< 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. ## Usage ```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.