summaryrefslogtreecommitdiff
path: root/cli/tools/test.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools/test.rs')
-rw-r--r--cli/tools/test.rs100
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,