From 107a669d27712fe40133bb1901223a19f2184e59 Mon Sep 17 00:00:00 2001 From: Kirsten <32720576+kirstenmg@users.noreply.github.com> Date: Wed, 29 May 2024 15:54:50 -0700 Subject: [PATCH] Disallow duplicate test names --- .../{cholesky.bril => cholesky_decomp.bril} | 0 src/cfg/tests.rs | 2 +- tests/files.rs | 27 +++++++++++++++++++ .../brils/mem/{fib.bril => fib_test.bril} | 0 .../small/{sqrt.bril => sqrt_small.bril} | 0 5 files changed, 28 insertions(+), 1 deletion(-) rename benchmarks/passing/bril/mixed/{cholesky.bril => cholesky_decomp.bril} (100%) rename tests/passing/brils/mem/{fib.bril => fib_test.bril} (100%) rename tests/passing/small/{sqrt.bril => sqrt_small.bril} (100%) diff --git a/benchmarks/passing/bril/mixed/cholesky.bril b/benchmarks/passing/bril/mixed/cholesky_decomp.bril similarity index 100% rename from benchmarks/passing/bril/mixed/cholesky.bril rename to benchmarks/passing/bril/mixed/cholesky_decomp.bril diff --git a/src/cfg/tests.rs b/src/cfg/tests.rs index 74097cba5..2849e6fc8 100644 --- a/src/cfg/tests.rs +++ b/src/cfg/tests.rs @@ -26,7 +26,7 @@ macro_rules! cfg_test_function_to_cfg { cfg_test_function_to_cfg!( fib_cfg, - include_str!("../../tests/passing/brils/mem/fib.bril"), + include_str!("../../tests/passing/brils/mem/fib_test.bril"), [ ENTRY = (Jmp) => "loop", "loop" = (true_cond("cond")) => "body", diff --git a/tests/files.rs b/tests/files.rs index a4aba9c0b..76e9e2709 100644 --- a/tests/files.rs +++ b/tests/files.rs @@ -63,8 +63,35 @@ fn generate_tests(glob: &str, benchmark_mode: bool) -> Vec { trials } +fn check_no_duplicates(globs: Vec<&str>) { + let mut names = HashSet::::new(); + + for glob in globs { + for file in glob::glob(glob).unwrap() { + let name = file + .unwrap() + .file_stem() + .unwrap() + .to_str() + .unwrap() + .to_string(); + if names.contains(&name) { + panic!("Duplicate filename {}.", name); + } + names.insert(name); + } + } +} + fn main() { let args = libtest_mimic::Arguments::from_args(); + + // Check for duplicate files + check_no_duplicates(vec![ + "tests/passing/**/*.bril", + "benchmarks/passing/**/*.bril", + ]); + let mut tests = generate_tests("tests/passing/**/*.bril", false); // also generate tests for benchmarks tests.extend(generate_tests("benchmarks/passing/**/*.bril", true)); diff --git a/tests/passing/brils/mem/fib.bril b/tests/passing/brils/mem/fib_test.bril similarity index 100% rename from tests/passing/brils/mem/fib.bril rename to tests/passing/brils/mem/fib_test.bril diff --git a/tests/passing/small/sqrt.bril b/tests/passing/small/sqrt_small.bril similarity index 100% rename from tests/passing/small/sqrt.bril rename to tests/passing/small/sqrt_small.bril