use std::{fs::read_dir, path::Path};

#[test]
fn ui() {
    let t = trybuild::TestCases::new();

    let ui_dir = Path::new("tests/ui");
    let dir = read_dir(ui_dir).unwrap();
    for entry in dir {
        let entry = entry.unwrap();
        let name = entry.file_name().into_string().unwrap();
        let test_file = ui_dir.join(&name);
        if name.ends_with(".rs") {
            if name.starts_with("ok") {
                t.pass(test_file);
            } else if name.starts_with("fail") {
                t.compile_fail(test_file);
            } else {
                panic!(
                    "ui test file must start with either \"ok\" or \"fail\", {}",
                    test_file.display()
                )
            }
        } else if !name.ends_with(".stderr") {
            panic!("unknown file {}", test_file.display())
        }
    }
}