whiley_test_file

Crates.iowhiley_test_file
lib.rswhiley_test_file
version0.6.2
sourcesrc
created_at2022-07-25 00:11:03.832258
updated_at2022-07-25 05:17:19.892569
descriptionAn API for manipulating test files for the Whiley Programming Language.
homepagehttp://whiley.org
repositoryhttps://github.com/DavePearce/WhileyTestFile
max_upload_size
id632260
size682,277
David Pearce (DavePearce)

documentation

README

WhileyTestFile

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.

Usage

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.

Commit count: 41

cargo fmt