mirror of
https://github.com/ellmau/adf-obdd.git
synced 2025-12-19 09:29:36 +01:00
* Bump predicates from 2.1.1 to 2.1.5 Bumps [predicates](https://github.com/assert-rs/predicates-rs) from 2.1.1 to 2.1.5. - [Release notes](https://github.com/assert-rs/predicates-rs/releases) - [Changelog](https://github.com/assert-rs/predicates-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/assert-rs/predicates-rs/compare/v2.1.1...v2.1.5) --- updated-dependencies: - dependency-name: predicates dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Bump serde from 1.0.147 to 1.0.152 Bumps [serde](https://github.com/serde-rs/serde) from 1.0.147 to 1.0.152. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.147...v1.0.152) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Bump serde_json from 1.0.87 to 1.0.91 Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.87 to 1.0.91. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.87...v1.0.91) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Bump clap from 4.0.18 to 4.0.32 Bumps [clap](https://github.com/clap-rs/clap) from 4.0.18 to 4.0.32. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.0.18...v4.0.32) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Bump assert_fs from 1.0.7 to 1.0.10 Bumps [assert_fs](https://github.com/assert-rs/assert_fs) from 1.0.7 to 1.0.10. - [Release notes](https://github.com/assert-rs/assert_fs/releases) - [Changelog](https://github.com/assert-rs/assert_fs/blob/master/CHANGELOG.md) - [Commits](https://github.com/assert-rs/assert_fs/compare/v1.0.7...v1.0.10) --- updated-dependencies: - dependency-name: assert_fs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Update to NixOS 22.11 * flake.lock: Update Flake lock file updates: • Updated input 'nixpkgs-unstable': 'github:NixOS/nixpkgs/fc07622617a373a742ed96d4dd536849d4bc1ec6' (2022-11-13) → 'github:NixOS/nixpkgs/677ed08a50931e38382dbef01cba08a8f7eac8f6' (2022-12-29) • Updated input 'rust-overlay': 'github:oxalica/rust-overlay/2342f70f7257046effc031333c4cfdea66c91d82' (2022-11-15) → 'github:oxalica/rust-overlay/c8bf9c162bb3f734cf357846e995eb70b94e2bcd' (2023-01-02) * Fix clippy issue in testcase-builder Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
68 lines
1.7 KiB
Rust
68 lines
1.7 KiB
Rust
//! Buildscript to automatically generate test-cases
|
|
//! Idea found at https://blog.cyplo.dev/posts/2018/12/generate-rust-tests-from-data
|
|
use std::env;
|
|
use std::fs::read_dir;
|
|
use std::fs::DirEntry;
|
|
use std::fs::File;
|
|
use std::io::Write;
|
|
use std::path::Path;
|
|
|
|
// build script's entry point
|
|
fn main() {
|
|
gen_tests();
|
|
}
|
|
|
|
fn gen_tests() {
|
|
let out_dir = env::var("OUT_DIR").unwrap();
|
|
let destination = Path::new(&out_dir).join("tests.rs");
|
|
let mut test_file = File::create(destination).unwrap();
|
|
|
|
if let Ok(test_data_directory) = read_dir("../res/adf-instances/instances/") {
|
|
// write test file header, put `use`, `const` etc there
|
|
write_header(&mut test_file);
|
|
|
|
for file in test_data_directory {
|
|
write_test(&mut test_file, &file.unwrap());
|
|
}
|
|
}
|
|
}
|
|
|
|
fn write_test(test_file: &mut File, file: &DirEntry) {
|
|
let file = file.path().canonicalize().unwrap();
|
|
let path = file.display();
|
|
let test_name = format!("{}", file.file_name().unwrap().to_string_lossy())
|
|
.replace('.', "_")
|
|
.replace('-', "_")
|
|
.replace('@', "at")
|
|
.to_lowercase();
|
|
let grounded_name = format!(
|
|
"{}-grounded.txt",
|
|
file.as_path().as_os_str().to_string_lossy()
|
|
)
|
|
.replace(
|
|
"adf-instances/instances",
|
|
"adf-instances/grounded-interpretations",
|
|
);
|
|
|
|
write!(
|
|
test_file,
|
|
include_str!("./tests/test_template"),
|
|
name = test_name,
|
|
path = path,
|
|
grounded = grounded_name
|
|
)
|
|
.unwrap();
|
|
}
|
|
|
|
fn write_header(test_file: &mut File) {
|
|
write!(
|
|
test_file,
|
|
r#"
|
|
use adf_bdd::adfbiodivine::Adf;
|
|
use adf_bdd::parser::AdfParser;
|
|
use test_log::test;
|
|
"#
|
|
)
|
|
.unwrap();
|
|
}
|