0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-01 12:16:11 -05:00

use single workspace dir for test -c and bench -c

This commit is contained in:
Nayeem Rahman 2024-12-10 09:31:52 +00:00
parent 78de1fb248
commit 1af0cdee0a
5 changed files with 60 additions and 30 deletions

View file

@ -1172,6 +1172,14 @@ impl Flags {
Ok(PathOrPatternSet::default()) Ok(PathOrPatternSet::default())
} }
} }
pub fn is_discovered_config(&self) -> bool {
match self.config_flag {
ConfigFlag::Discover => true,
ConfigFlag::Path(_) => false,
ConfigFlag::Disabled => false,
}
}
} }
static ENV_VARIABLES_HELP: &str = cstr!( static ENV_VARIABLES_HELP: &str = cstr!(

View file

@ -1011,6 +1011,10 @@ impl CliOptions {
} }
} }
pub fn is_discovered_config(&self) -> bool {
self.flags.is_discovered_config()
}
pub fn npm_system_info(&self) -> NpmSystemInfo { pub fn npm_system_info(&self) -> NpmSystemInfo {
match self.sub_command() { match self.sub_command() {
DenoSubcommand::Compile(CompileFlags { DenoSubcommand::Compile(CompileFlags {

View file

@ -1,6 +1,7 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
use crate::args::BenchFlags; use crate::args::BenchFlags;
use crate::args::BenchOptions;
use crate::args::Flags; use crate::args::Flags;
use crate::colors; use crate::colors;
use crate::display::write_json_to_stdout; use crate::display::write_json_to_stdout;
@ -552,11 +553,20 @@ pub async fn run_benchmarks(
)?; )?;
let log_level = cli_options.log_level(); let log_level = cli_options.log_level();
let workspace_dirs_with_files = cli_options let workspace_dirs_with_files = if cli_options.is_discovered_config() {
.resolve_bench_options_for_members(&bench_flags)? cli_options
.into_iter() .resolve_bench_options_for_members(&bench_flags)?
.map(|(d, o)| (Arc::new(d), o.files)) .into_iter()
.collect(); .map(|(d, o)| (Arc::new(d), o.files))
.collect()
} else {
let patterns = bench_flags
.files
.as_file_patterns(cli_options.initial_cwd())?;
let config = cli_options.start_dir.to_bench_config(patterns)?;
let options = BenchOptions::resolve(config, &bench_flags);
vec![(cli_options.start_dir.clone(), options.files)]
};
let file_container = WorkspaceFileContainer::from_workspace_dirs_with_files( let file_container = WorkspaceFileContainer::from_workspace_dirs_with_files(
workspace_dirs_with_files, workspace_dirs_with_files,
&factory, &factory,

View file

@ -20,7 +20,6 @@ use regex::Regex;
use crate::args::check_warn_tsconfig; use crate::args::check_warn_tsconfig;
use crate::args::CheckFlags; use crate::args::CheckFlags;
use crate::args::CliOptions; use crate::args::CliOptions;
use crate::args::ConfigFlag;
use crate::args::FileFlags; use crate::args::FileFlags;
use crate::args::Flags; use crate::args::Flags;
use crate::args::TsConfig; use crate::args::TsConfig;
@ -49,14 +48,9 @@ pub async fn check(
flags: Arc<Flags>, flags: Arc<Flags>,
check_flags: CheckFlags, check_flags: CheckFlags,
) -> Result<(), AnyError> { ) -> Result<(), AnyError> {
let is_discovered_config = match flags.config_flag {
ConfigFlag::Discover => true,
ConfigFlag::Path(_) => false,
ConfigFlag::Disabled => false,
};
let factory = CliFactory::from_flags(flags); let factory = CliFactory::from_flags(flags);
let cli_options = factory.cli_options()?; let cli_options = factory.cli_options()?;
let workspace_dirs_with_files = if is_discovered_config { let workspace_dirs_with_files = if cli_options.is_discovered_config() {
cli_options cli_options
.resolve_file_flags_for_members(&FileFlags { .resolve_file_flags_for_members(&FileFlags {
ignore: Default::default(), ignore: Default::default(),

View file

@ -3,6 +3,7 @@
use crate::args::CliOptions; use crate::args::CliOptions;
use crate::args::Flags; use crate::args::Flags;
use crate::args::TestFlags; use crate::args::TestFlags;
use crate::args::TestOptions;
use crate::args::TestReporterConfig; use crate::args::TestReporterConfig;
use crate::colors; use crate::colors;
use crate::display; use crate::display;
@ -1499,11 +1500,20 @@ pub async fn run_tests(
)?; )?;
let log_level = cli_options.log_level(); let log_level = cli_options.log_level();
let workspace_dirs_with_files = cli_options let workspace_dirs_with_files = if cli_options.is_discovered_config() {
.resolve_test_options_for_members(&test_flags)? cli_options
.into_iter() .resolve_test_options_for_members(&test_flags)?
.map(|(d, o)| (Arc::new(d), o.files)) .into_iter()
.collect(); .map(|(d, o)| (Arc::new(d), o.files))
.collect()
} else {
let patterns = test_flags
.files
.as_file_patterns(cli_options.initial_cwd())?;
let config = cli_options.start_dir.to_test_config(patterns)?;
let options = TestOptions::resolve(config, &test_flags);
vec![(cli_options.start_dir.clone(), options.files)]
};
let file_container = WorkspaceFileContainer::from_workspace_dirs_with_files( let file_container = WorkspaceFileContainer::from_workspace_dirs_with_files(
workspace_dirs_with_files, workspace_dirs_with_files,
&factory, &factory,
@ -1605,24 +1615,28 @@ pub async fn run_tests_with_watch(
)?; )?;
let log_level = cli_options.log_level(); let log_level = cli_options.log_level();
let members_with_test_options = let workspace_dirs_with_files = if cli_options.is_discovered_config() {
cli_options.resolve_test_options_for_members(&test_flags)?; cli_options
let watch_paths = members_with_test_options .resolve_test_options_for_members(&test_flags)?
.into_iter()
.map(|(d, o)| (Arc::new(d), o.files))
.collect()
} else {
let patterns = test_flags
.files
.as_file_patterns(cli_options.initial_cwd())?;
let config = cli_options.start_dir.to_test_config(patterns)?;
let options = TestOptions::resolve(config, &test_flags);
vec![(cli_options.start_dir.clone(), options.files)]
};
let watch_paths = workspace_dirs_with_files
.iter() .iter()
.filter_map(|(_, test_options)| { .filter_map(|(_, files)| {
test_options files.include.as_ref().map(|set| set.base_paths())
.files
.include
.as_ref()
.map(|set| set.base_paths())
}) })
.flatten() .flatten()
.collect::<Vec<_>>(); .collect::<Vec<_>>();
let _ = watcher_communicator.watch_paths(watch_paths); let _ = watcher_communicator.watch_paths(watch_paths);
let workspace_dirs_with_files = members_with_test_options
.into_iter()
.map(|(d, o)| (Arc::new(d), o.files))
.collect();
let file_container = let file_container =
WorkspaceFileContainer::from_workspace_dirs_with_files( WorkspaceFileContainer::from_workspace_dirs_with_files(
workspace_dirs_with_files, workspace_dirs_with_files,