Crates.io | whiley_test_file |
lib.rs | whiley_test_file |
version | 0.6.2 |
source | src |
created_at | 2022-07-25 00:11:03.832258 |
updated_at | 2022-07-25 05:17:19.892569 |
description | An API for manipulating test files for the Whiley Programming Language. |
homepage | http://whiley.org |
repository | https://github.com/DavePearce/WhileyTestFile |
max_upload_size | |
id | 632260 |
size | 682,277 |
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
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.
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.