//! Phase-1-Meilenstein: der komplette Kompatibilitäts-Testkorpus //! (tests/compat/*.bas) muss fehlerfrei parsen und typgeprüft werden. use std::fs; use std::path::Path; #[test] fn korpus_parst_und_wird_typgeprueft() { let dir = Path::new(env!("CARGO_MANIFEST_DIR")).join("../../tests/compat"); let mut checked = 0; for entry in fs::read_dir(&dir).expect("tests/compat fehlt") { let path = entry.unwrap().path(); if path.extension().and_then(|e| e.to_str()) != Some("bas") { continue; } let name = path.file_name().unwrap().to_string_lossy().to_string(); let src = fs::read_to_string(&path).unwrap(); let analysis = tb_frontend::analyze_source(&name, &src); assert!( analysis.diagnostics.is_empty(), "{name}: {:?}", analysis.diagnostics ); checked += 1; } assert!(checked >= 5, "zu wenige Korpusdateien gefunden: {checked}"); }