mod babel; mod codegen; mod minifier; mod misc; mod suite; mod test262; mod typescript; use std::path::PathBuf; use crate::{ babel::{BabelCase, BabelSuite}, codegen::{CodegenBabelCase, CodegenMiscCase, CodegenTest262Case, CodegenTypeScriptCase}, minifier::{MinifierBabelCase, MinifierTest262Case}, misc::{MiscCase, MiscSuite}, suite::Suite, test262::{Test262Case, Test262Suite}, typescript::{TypeScriptCase, TypeScriptSuite}, }; /// # Panics /// Invalid Project Root pub fn project_root() -> PathBuf { project_root::get_project_root().unwrap() } #[derive(Debug, Default)] pub struct AppArgs { pub filter: Option, pub detail: bool, /// Print mismatch diff pub diff: bool, } impl AppArgs { fn should_print_detail(&self) -> bool { self.filter.is_some() || self.detail } pub fn run_all(&self) { self.run_parser(); self.run_codegen(); self.run_minifier(); } pub fn run_parser(&self) { Test262Suite::::new().run("parser_test262", self); BabelSuite::::new().run("parser_babel", self); TypeScriptSuite::::new().run("parser_typescript", self); MiscSuite::::new().run("parser_misc", self); } pub fn run_codegen(&self) { Test262Suite::::new().run("codegen_test262", self); BabelSuite::::new().run("codegen_babel", self); TypeScriptSuite::::new().run("codegen_typescript", self); MiscSuite::::new().run("codegen_misc", self); } pub fn run_minifier(&self) { Test262Suite::::new().run("minifier_test262", self); BabelSuite::::new().run("minifier_babel", self); } } #[test] #[cfg(any(coverage, coverage_nightly))] fn test() { let args = AppArgs { filter: None, detail: false, diff: false }; args.run_all() }