# 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.