diff options
Diffstat (limited to 'cli/tools/test.rs')
-rw-r--r-- | cli/tools/test.rs | 100 |
1 files changed, 46 insertions, 54 deletions
diff --git a/cli/tools/test.rs b/cli/tools/test.rs index 976855893..8d005b101 100644 --- a/cli/tools/test.rs +++ b/cli/tools/test.rs @@ -16,7 +16,7 @@ use crate::module_graph::GraphBuilder; use crate::module_graph::Module; use crate::module_graph::TypeLib; use crate::ops; -use crate::program_state::ProgramState; +use crate::proc_state::ProcState; use crate::tokio_util; use crate::tools::coverage::CoverageCollector; use crate::FetchHandler; @@ -247,7 +247,7 @@ fn create_reporter( /// Test a single specifier as documentation containing test programs, an executable test module or /// both. async fn test_specifier( - program_state: Arc<ProgramState>, + ps: ProcState, permissions: Permissions, specifier: ModuleSpecifier, mode: TestMode, @@ -264,15 +264,11 @@ async fn test_specifier( .put::<Sender<TestEvent>>(channel.clone()); }; - let mut worker = create_main_worker( - &program_state, - specifier.clone(), - permissions, - Some(&init_ops), - ); + let mut worker = + create_main_worker(&ps, specifier.clone(), permissions, Some(&init_ops)); let mut maybe_coverage_collector = if let Some(ref coverage_dir) = - program_state.coverage_dir + ps.coverage_dir { let session = worker.create_inspector_session().await; let coverage_dir = PathBuf::from(coverage_dir); @@ -468,13 +464,13 @@ fn extract_files_from_fenced_blocks( } async fn fetch_inline_files( - program_state: Arc<ProgramState>, + ps: ProcState, specifiers: Vec<ModuleSpecifier>, ) -> Result<Vec<File>, AnyError> { let mut files = Vec::new(); for specifier in specifiers { let mut fetch_permissions = Permissions::allow_all(); - let file = program_state + let file = ps .file_fetcher .fetch(&specifier, &mut fetch_permissions) .await?; @@ -501,13 +497,13 @@ async fn fetch_inline_files( /// Type check a collection of module and document specifiers. async fn check_specifiers( - program_state: Arc<ProgramState>, + ps: ProcState, permissions: Permissions, specifiers: Vec<(ModuleSpecifier, TestMode)>, lib: TypeLib, ) -> Result<(), AnyError> { let inline_files = fetch_inline_files( - program_state.clone(), + ps.clone(), specifiers .iter() .filter_map(|(specifier, mode)| { @@ -528,18 +524,17 @@ async fn check_specifiers( .collect(); for file in inline_files { - program_state.file_fetcher.insert_cached(file); + ps.file_fetcher.insert_cached(file); } - program_state - .prepare_module_graph( - specifiers, - lib.clone(), - Permissions::allow_all(), - permissions.clone(), - program_state.maybe_import_map.clone(), - ) - .await?; + ps.prepare_module_graph( + specifiers, + lib.clone(), + Permissions::allow_all(), + permissions.clone(), + ps.maybe_import_map.clone(), + ) + .await?; } let module_specifiers = specifiers @@ -553,22 +548,21 @@ async fn check_specifiers( }) .collect(); - program_state - .prepare_module_graph( - module_specifiers, - lib, - Permissions::allow_all(), - permissions, - program_state.maybe_import_map.clone(), - ) - .await?; + ps.prepare_module_graph( + module_specifiers, + lib, + Permissions::allow_all(), + permissions, + ps.maybe_import_map.clone(), + ) + .await?; Ok(()) } /// Test a collection of specifiers with test modes concurrently. async fn test_specifiers( - program_state: Arc<ProgramState>, + ps: ProcState, permissions: Permissions, specifiers_with_mode: Vec<(ModuleSpecifier, TestMode)>, fail_fast: Option<NonZeroUsize>, @@ -576,7 +570,7 @@ async fn test_specifiers( shuffle: Option<u64>, concurrent_jobs: NonZeroUsize, ) -> Result<(), AnyError> { - let log_level = program_state.flags.log_level; + let log_level = ps.flags.log_level; let specifiers_with_mode = if let Some(seed) = shuffle { let mut rng = SmallRng::seed_from_u64(seed); let mut specifiers_with_mode = specifiers_with_mode.clone(); @@ -591,7 +585,7 @@ async fn test_specifiers( let join_handles = specifiers_with_mode.iter().map(move |(specifier, mode)| { - let program_state = program_state.clone(); + let ps = ps.clone(); let permissions = permissions.clone(); let specifier = specifier.clone(); let mode = mode.clone(); @@ -601,7 +595,7 @@ async fn test_specifiers( tokio::task::spawn_blocking(move || { let join_handle = std::thread::spawn(move || { let future = test_specifier( - program_state, + ps, permissions, specifier, mode, @@ -755,7 +749,7 @@ fn collect_specifiers_with_test_mode( /// Specifiers that do not have a known media type that can be executed as a module are marked as /// `TestMode::Documentation`. async fn fetch_specifiers_with_test_mode( - program_state: Arc<ProgramState>, + ps: ProcState, include: Vec<String>, ignore: Vec<PathBuf>, include_inline: bool, @@ -763,7 +757,7 @@ async fn fetch_specifiers_with_test_mode( let mut specifiers_with_mode = collect_specifiers_with_test_mode(include, ignore, include_inline)?; for (specifier, mode) in &mut specifiers_with_mode { - let file = program_state + let file = ps .file_fetcher .fetch(specifier, &mut Permissions::allow_all()) .await?; @@ -789,10 +783,10 @@ pub async fn run_tests( shuffle: Option<u64>, concurrent_jobs: NonZeroUsize, ) -> Result<(), AnyError> { - let program_state = ProgramState::build(flags.clone()).await?; + let ps = ProcState::build(flags.clone()).await?; let permissions = Permissions::from_options(&flags.clone().into()); let specifiers_with_mode = fetch_specifiers_with_test_mode( - program_state.clone(), + ps.clone(), include.unwrap_or_else(|| vec![".".to_string()]), ignore.clone(), doc, @@ -810,7 +804,7 @@ pub async fn run_tests( }; check_specifiers( - program_state.clone(), + ps.clone(), permissions.clone(), specifiers_with_mode.clone(), lib, @@ -822,7 +816,7 @@ pub async fn run_tests( } test_specifiers( - program_state, + ps, permissions, specifiers_with_mode, fail_fast, @@ -847,7 +841,7 @@ pub async fn run_tests_with_watch( shuffle: Option<u64>, concurrent_jobs: NonZeroUsize, ) -> Result<(), AnyError> { - let program_state = ProgramState::build(flags.clone()).await?; + let ps = ProcState::build(flags.clone()).await?; let permissions = Permissions::from_options(&flags.clone().into()); let lib = if flags.unstable { @@ -857,7 +851,7 @@ pub async fn run_tests_with_watch( }; let handler = Arc::new(Mutex::new(FetchHandler::new( - &program_state, + &ps, Permissions::allow_all(), Permissions::allow_all(), )?)); @@ -870,7 +864,7 @@ pub async fn run_tests_with_watch( let paths_to_watch_clone = paths_to_watch.clone(); let handler = handler.clone(); - let program_state = program_state.clone(); + let ps = ps.clone(); let files_changed = changed.is_some(); let include = include.clone(); let ignore = ignore.clone(); @@ -894,15 +888,13 @@ pub async fn run_tests_with_watch( let mut builder = GraphBuilder::new( handler, - program_state.maybe_import_map.clone(), - program_state.lockfile.clone(), + ps.maybe_import_map.clone(), + ps.lockfile.clone(), ); for specifier in test_modules.iter() { builder.add(specifier, false).await?; } - builder - .analyze_config_file(&program_state.maybe_config_file) - .await?; + builder.analyze_config_file(&ps.maybe_config_file).await?; let graph = builder.get_graph(); for specifier in test_modules { @@ -998,11 +990,11 @@ pub async fn run_tests_with_watch( let ignore = ignore.clone(); let lib = lib.clone(); let permissions = permissions.clone(); - let program_state = program_state.clone(); + let ps = ps.clone(); async move { let specifiers_with_mode = fetch_specifiers_with_test_mode( - program_state.clone(), + ps.clone(), include.clone(), ignore.clone(), doc, @@ -1014,7 +1006,7 @@ pub async fn run_tests_with_watch( .collect::<Vec<(ModuleSpecifier, TestMode)>>(); check_specifiers( - program_state.clone(), + ps.clone(), permissions.clone(), specifiers_with_mode.clone(), lib, @@ -1026,7 +1018,7 @@ pub async fn run_tests_with_watch( } test_specifiers( - program_state.clone(), + ps.clone(), permissions.clone(), specifiers_with_mode, fail_fast, |