diff --git a/cli/tests/cli_run.rs b/cli/tests/cli_run.rs index fb94c79cce..2eb3f1ad89 100644 --- a/cli/tests/cli_run.rs +++ b/cli/tests/cli_run.rs @@ -11,7 +11,7 @@ extern crate roc_module; mod cli_run { use cli_utils::helpers::{ example_file, examples_dir, extract_valgrind_errors, fixture_file, fixtures_dir, - known_bad_file, run_cmd, run_roc, run_with_valgrind, Out, ValgrindError, + known_bad_file, run_cmd, run_roc, run_with_valgrind, strip_colors, Out, ValgrindError, ValgrindErrorXWhat, }; use const_format::concatcp; @@ -68,21 +68,6 @@ mod cli_run { use_valgrind: bool, } - fn strip_colors(str: &str) -> String { - use roc_reporting::report::ANSI_STYLE_CODES; - str.replace(ANSI_STYLE_CODES.red, "") - .replace(ANSI_STYLE_CODES.green, "") - .replace(ANSI_STYLE_CODES.yellow, "") - .replace(ANSI_STYLE_CODES.blue, "") - .replace(ANSI_STYLE_CODES.magenta, "") - .replace(ANSI_STYLE_CODES.cyan, "") - .replace(ANSI_STYLE_CODES.white, "") - .replace(ANSI_STYLE_CODES.bold, "") - .replace(ANSI_STYLE_CODES.underline, "") - .replace(ANSI_STYLE_CODES.reset, "") - .replace(ANSI_STYLE_CODES.color_reset, "") - } - fn check_compile_error(file: &Path, flags: &[&str], expected: &str) { let compile_out = run_roc([CMD_CHECK, file.to_str().unwrap()].iter().chain(flags), &[]); let err = compile_out.stdout.trim(); diff --git a/cli_utils/Cargo.toml b/cli_utils/Cargo.toml index 0f009564c7..c9ae4aee64 100644 --- a/cli_utils/Cargo.toml +++ b/cli_utils/Cargo.toml @@ -12,6 +12,7 @@ description = "Shared code for cli tests and benchmarks" [dependencies] roc_cli = { path = "../cli" } roc_collections = { path = "../compiler/collections" } +roc_reporting = { path = "../reporting" } roc_load = { path = "../compiler/load" } roc_module = { path = "../compiler/module" } bumpalo = { version = "3.8.0", features = ["collections"] } diff --git a/cli_utils/src/helpers.rs b/cli_utils/src/helpers.rs index 96d330a8b6..45af7d1f04 100644 --- a/cli_utils/src/helpers.rs +++ b/cli_utils/src/helpers.rs @@ -21,13 +21,13 @@ pub struct Out { pub status: ExitStatus, } -pub fn path_to_roc_binary() -> PathBuf { +fn path_to_binary() -> PathBuf { // Adapted from https://github.com/volta-cli/volta/blob/cefdf7436a15af3ce3a38b8fe53bb0cfdb37d3dd/tests/acceptance/support/sandbox.rs#L680 // by the Volta Contributors - license information can be found in // the LEGAL_DETAILS file in the root directory of this distribution. // // Thank you, Volta contributors! - let mut path = env::var_os("CARGO_BIN_PATH") + env::var_os("CARGO_BIN_PATH") .map(PathBuf::from) .or_else(|| { env::current_exe().ok().map(|mut path| { @@ -38,7 +38,27 @@ pub fn path_to_roc_binary() -> PathBuf { path }) }) - .unwrap_or_else(|| panic!("CARGO_BIN_PATH wasn't set, and couldn't be inferred from context. Can't run CLI tests.")); + .unwrap_or_else(|| panic!("CARGO_BIN_PATH wasn't set, and couldn't be inferred from context. Can't run CLI tests.")) +} + +pub fn strip_colors(str: &str) -> String { + use roc_reporting::report::ANSI_STYLE_CODES; + + str.replace(ANSI_STYLE_CODES.red, "") + .replace(ANSI_STYLE_CODES.green, "") + .replace(ANSI_STYLE_CODES.yellow, "") + .replace(ANSI_STYLE_CODES.blue, "") + .replace(ANSI_STYLE_CODES.magenta, "") + .replace(ANSI_STYLE_CODES.cyan, "") + .replace(ANSI_STYLE_CODES.white, "") + .replace(ANSI_STYLE_CODES.bold, "") + .replace(ANSI_STYLE_CODES.underline, "") + .replace(ANSI_STYLE_CODES.reset, "") + .replace(ANSI_STYLE_CODES.color_reset, "") +} + +pub fn path_to_roc_binary() -> PathBuf { + let mut path = path_to_binary(); path.push("roc");