[INFO] fetching crate grox-cli 0.1.1...
[INFO] testing grox-cli-0.1.1 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate grox-cli 0.1.1 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate grox-cli 0.1.1
[INFO] finished tweaking crates.io crate grox-cli 0.1.1
[INFO] tweaked toml for crates.io crate grox-cli 0.1.1 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate grox-cli 0.1.1 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate grox-cli 0.1.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded fastrand v2.4.0
[INFO] [stderr]   Downloaded rustyline v15.0.0
[INFO] [stderr]   Downloaded endian-type v0.1.2
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.67
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.117
[INFO] [stderr]   Downloaded nibble_vec v0.1.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.117
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.117
[INFO] [stderr]   Downloaded colored v3.1.1
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.117
[INFO] [stderr]   Downloaded cc v1.2.59
[INFO] [stderr]   Downloaded rustls-webpki v0.103.10
[INFO] [stderr]   Downloaded js-sys v0.3.94
[INFO] [stderr]   Downloaded radix_trie v0.2.1
[INFO] [stderr]   Downloaded web-sys v0.3.94
[INFO] [stderr]   Downloaded libc v0.2.184
[INFO] [stderr]   Downloaded tokio v1.51.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d
[INFO] running `Command { std: "docker" "start" "d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling cc v1.2.59
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling openssl v0.10.76
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling indexmap v2.13.1
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling endian-type v0.1.2
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling openssl-sys v0.9.112
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling eventsource-stream v0.2.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling rustyline v15.0.0
[INFO] [stderr]    Compiling tokio v1.51.0
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling grox-cli v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: methods `mode`, `project_root`, `prompt_user`, and `grant_always` are never used
[INFO] [stdout]    --> src/permissions.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl SessionPermissions {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn mode(&self) -> PermissionMode {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn project_root(&self) -> &Path {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn prompt_user(&mut self, check: &PermissionCheck) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn grant_always(&mut self, dir: PathBuf) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISPLAY_MAX_CHARS` is never used
[INFO] [stdout]  --> src/util.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const DISPLAY_MAX_CHARS: usize = 1_000;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clip_for_display` is never used
[INFO] [stdout]   --> src/util.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn clip_for_display(output: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 08s
[INFO] running `Command { std: "docker" "inspect" "d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling fastrand v2.4.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling grox-cli v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: methods `mode`, `project_root`, and `prompt_user` are never used
[INFO] [stdout]    --> src/permissions.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl SessionPermissions {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn mode(&self) -> PermissionMode {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn project_root(&self) -> &Path {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn prompt_user(&mut self, check: &PermissionCheck) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 6.03s
[INFO] running `Command { std: "docker" "inspect" "d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: methods `mode`, `project_root`, and `prompt_user` are never used
[INFO] [stderr]    --> src/permissions.rs:60:12
[INFO] [stderr]     |
[INFO] [stderr]  51 | impl SessionPermissions {
[INFO] [stderr]     | ----------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  60 |     pub fn mode(&self) -> PermissionMode {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr]  64 |     pub fn project_root(&self) -> &Path {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 162 |     pub fn prompt_user(&mut self, check: &PermissionCheck) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `grox-cli` (bin "grox" test) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.20s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/grox-192aaef7a70fda4f)
[INFO] [stdout] 
[INFO] [stdout] running 79 tests
[INFO] [stdout] test agent::tests::no_tool_calls_exits_immediately ... ok
[INFO] [stdout] test permissions::tests::default_prompts_for_writes ... ok
[INFO] [stdout] test permissions::tests::destructive_command_no_always ... ok
[INFO] [stdout] test permissions::tests::always_grant_persists ... ok
[INFO] [stdout] test permissions::tests::trust_prompts_for_outside_project_writes ... ok
[INFO] [stdout] test permissions::tests::trust_prompts_for_destructive ... ok
[INFO] [stdout] test permissions::tests::readonly_allows_reads_denies_writes ... ok
[INFO] [stdout] test prompt::tests::grox_md_is_last_section ... ok
[INFO] [stdout] test permissions::tests::yolo_allows_everything ... ok
[INFO] [stdout] test prompt::tests::identity_is_first_section ... ok
[INFO] [stdout] test prompt::tests::prompt_emphasizes_reading_before_writing ... ok
[INFO] [stdout] test prompt::tests::prompt_contains_all_sections ... ok
[INFO] [stdout] test agent::tests::unknown_tool_returns_error_to_model ... ok
[INFO] [stdout] test agent::tests::permission_denied_returns_message_to_model ... ok
[INFO] [stdout] test prompt::tests::prompt_excludes_grox_md_when_absent ... ok
[INFO] [stdout] test permissions::tests::yolo_allows_destructive_shell ... ok
[INFO] [stdout] test permissions::tests::always_grant_is_per_directory ... ok
[INFO] [stdout] test prompt::tests::prompt_includes_grox_md_when_present ... ok
[INFO] [stdout] test prompt::tests::prompt_includes_project_root ... ok
[INFO] [stdout] test prompt::tests::prompt_mentions_all_tools ... ok
[INFO] [stdout] test prompt::tests::prompt_sections_are_separated_by_blank_lines ... ok
[INFO] [stdout] test tools::tests::file_read_not_found ... ok
[INFO] [stdout] test tools::tests::definition_has_required_fields ... ok
[INFO] [stdout] test tools::tests::file_read_binary_rejected ... ok
[INFO] [stdout] test tools::tests::file_write_creates_parent_dirs ... ok
[INFO] [stdout] test tools::tests::file_write_creates_file ... ok
[INFO] [stdout] test permissions::tests::trust_prompts_for_normal_shell ... ok
[INFO] [stdout] test tools::tests::file_write_rejects_symlink_escape ... ok
[INFO] [stdout] test agent::tests::tool_error_returned_to_model ... ok
[INFO] [stdout] test permissions::tests::trust_auto_approves_in_project_writes ... ok
[INFO] [stdout] test tools::tests::file_read_large_file_clipped ... ok
[INFO] [stdout] test tools::tests::file_read_missing_path_param ... ok
[INFO] [stdout] test permissions::tests::readonly_denies_shell ... ok
[INFO] [stdout] test tools::tests::from_name_unknown ... ok
[INFO] [stdout] test agent::tests::single_tool_call_round_trip ... ok
[INFO] [stdout] test tools::tests::list_files_nonexistent ... ok
[INFO] [stdout] test tools::tests::list_files_empty_dir ... ok
[INFO] [stdout] test tools::tests::file_read_success ... ok
[INFO] [stdout] test tools::tests::from_name_known ... ok
[INFO] [stdout] test agent::tests::max_turns_stops_loop ... ok
[INFO] [stdout] test tools::tests::shell_exec_captures_stderr ... ok
[INFO] [stdout] test tools::tests::grep_matches_found ... FAILED
[INFO] [stdout] test permissions::tests::default_prompts_for_shell ... ok
[INFO] [stdout] test tools::tests::grep_case_insensitive ... FAILED
[INFO] [stdout] test tools::tests::shell_exec_nonexistent_cwd ... ok
[INFO] [stdout] test tools::tests::grep_defaults_to_project_root ... FAILED
[INFO] [stdout] test tools::tests::grep_glob_filter ... FAILED
[INFO] [stdout] test tools::tests::shell_exec_default_cwd_is_project_root ... ok
[INFO] [stdout] test tools::tests::shell_exec_happy_path ... ok
[INFO] [stdout] test tools::tests::grep_max_results_cap ... FAILED
[INFO] [stdout] test util::tests::binary_detection_binary ... ok
[INFO] [stdout] test tools::tests::shell_exec_nonzero_exit ... ok
[INFO] [stdout] test tools::tests::shell_exec_timeout_capped_at_300 ... ok
[INFO] [stdout] test util::tests::binary_detection_empty ... ok
[INFO] [stdout] test util::tests::clip_at_exact_boundary ... ok
[INFO] [stdout] test util::tests::clip_over_display_threshold ... ok
[INFO] [stdout] test util::tests::clip_over_model_threshold ... ok
[INFO] [stdout] test util::tests::clip_under_threshold ... ok
[INFO] [stdout] test util::tests::detect_root_git_repo ... ok
[INFO] [stdout] test util::tests::detect_root_cargo_project ... ok
[INFO] [stdout] test util::tests::load_grox_md_truncated_over_10k ... ok
[INFO] [stdout] test tools::tests::list_files_populated_dir ... ok
[INFO] [stdout] test util::tests::binary_detection_text ... ok
[INFO] [stdout] test util::tests::validate_path_new_file_in_root ... ok
[INFO] [stdout] test util::tests::load_grox_md_absent ... ok
[INFO] [stdout] test util::tests::validate_path_relative_escape ... ok
[INFO] [stdout] test util::tests::validate_path_outside_root ... ok
[INFO] [stdout] test util::tests::load_grox_md_at_exactly_10k ... ok
[INFO] [stdout] test util::tests::validate_path_within_root ... ok
[INFO] [stdout] test util::tests::validate_path_symlink_escape ... ok
[INFO] [stdout] test permissions::tests::destructive_patterns_match ... ok
[INFO] [stdout] test tools::tests::grep_invalid_regex ... FAILED
[INFO] [stdout] test tools::tests::shell_exec_custom_cwd ... ok
[INFO] [stdout] test util::tests::load_grox_md_present ... ok
[INFO] [stdout] test tools::tests::grep_no_matches ... FAILED
[INFO] [stdout] test permissions::tests::always_grant_applies_to_shell_cwd ... ok
[INFO] [stdout] test util::tests::detect_root_no_markers_falls_back ... ok
[INFO] [stdout] test permissions::tests::safe_commands_dont_match ... ok
[INFO] [stdout] test tools::tests::shell_exec_timeout_kills_process ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tools::tests::grep_matches_found stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tools::tests::grep_matches_found' (1821) panicked at src/tools.rs:664:66:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: ripgrep (rg) is not installed. Install it with: cargo install ripgrep
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <anyhow::Error>::msg::<&str>
[INFO] [stdout]    1: <grox::tools::Tool>::execute::{closure#0}
[INFO] [stdout]    2: grox::tools::tests::grep_matches_found::{closure#0}
[INFO] [stdout]    3: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    4: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    5: <tokio::runtime::scheduler::current_thread::CurrentThread>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: grox::tools::tests::grep_matches_found
[INFO] [stdout]    8: <grox::tools::tests::grep_matches_found::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    9: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]   10: test::run_test::{closure#0}
[INFO] [stdout]   11: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   12: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   13: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   14: <unknown>
[INFO] [stdout]   15: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x562944922a61 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x562944938e2a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x56294492788c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5629448fbcb6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x562944919ae9 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5629447c3370 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x562944919e12 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5629448fbd62 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5629448f41a9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5629448fcb5d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x56294493960c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5629449393e2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x56294477e0b3 - grox[1637a362111a4f77]::tools::tests::grep_matches_found::{closure#0}
[INFO] [stdout]   13:     0x5629447ad563 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::Context>::enter::<core[df12db4294e9bfd3]::task::poll::Poll<()>, <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x5629447ab3ec - <tokio[82700c02109a1589]::runtime::context::scoped::Scoped<tokio[82700c02109a1589]::runtime::scheduler::Context>>::set::<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}, core[df12db4294e9bfd3]::option::Option<()>>::{closure#0}, (alloc[2182bb758b4b3781]::boxed::Box<tokio[82700c02109a1589]::runtime::scheduler::current_thread::Core>, core[df12db4294e9bfd3]::option::Option<()>)>
[INFO] [stdout]   15:     0x5629447ad1e5 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x5629447ab2d2 - <tokio[82700c02109a1589]::runtime::runtime::Runtime>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   17:     0x56294478701b - grox[1637a362111a4f77]::tools::tests::grep_matches_found
[INFO] [stdout]   18:     0x5629447a1d89 - <grox[1637a362111a4f77]::tools::tests::grep_matches_found::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5629447b665b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   20:     0x5629447c3cc5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   21:     0x5629447bd584 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x5629447c6e22 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x562944921aa9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   24:     0x7fb263759dfa - <unknown>
[INFO] [stdout]   25:     0x7fb2637ed3d4 - clone
[INFO] [stdout]   26:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tools::tests::grep_case_insensitive stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tools::tests::grep_case_insensitive' (1817) panicked at src/tools.rs:716:66:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: ripgrep (rg) is not installed. Install it with: cargo install ripgrep
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <anyhow::Error>::msg::<&str>
[INFO] [stdout]    1: <grox::tools::Tool>::execute::{closure#0}
[INFO] [stdout]    2: grox::tools::tests::grep_case_insensitive::{closure#0}
[INFO] [stdout]    3: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    4: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    5: <tokio::runtime::scheduler::current_thread::CurrentThread>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: grox::tools::tests::grep_case_insensitive
[INFO] [stdout]    8: <grox::tools::tests::grep_case_insensitive::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    9: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]   10: test::run_test::{closure#0}
[INFO] [stdout]   11: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   12: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   13: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   14: <unknown>
[INFO] [stdout]   15: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x562944922a61 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x562944938e2a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x56294492788c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5629448fbcb6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x562944919ae9 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5629447c3370 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x562944919e12 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5629448fbd62 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5629448f41a9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5629448fcb5d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x56294493960c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5629449393e2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x56294477fba1 - grox[1637a362111a4f77]::tools::tests::grep_case_insensitive::{closure#0}
[INFO] [stdout]   13:     0x5629447ad563 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::Context>::enter::<core[df12db4294e9bfd3]::task::poll::Poll<()>, <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x5629447ab3ec - <tokio[82700c02109a1589]::runtime::context::scoped::Scoped<tokio[82700c02109a1589]::runtime::scheduler::Context>>::set::<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}, core[df12db4294e9bfd3]::option::Option<()>>::{closure#0}, (alloc[2182bb758b4b3781]::boxed::Box<tokio[82700c02109a1589]::runtime::scheduler::current_thread::Core>, core[df12db4294e9bfd3]::option::Option<()>)>
[INFO] [stdout]   15:     0x5629447ad1e5 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x5629447ab2d2 - <tokio[82700c02109a1589]::runtime::runtime::Runtime>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   17:     0x5629447875cb - grox[1637a362111a4f77]::tools::tests::grep_case_insensitive
[INFO] [stdout]   18:     0x5629447a1e09 - <grox[1637a362111a4f77]::tools::tests::grep_case_insensitive::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5629447b665b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   20:     0x5629447c3cc5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   21:     0x5629447bd584 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x5629447c6e22 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x562944921aa9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   24:     0x7fb263759dfa - <unknown>
[INFO] [stdout]   25:     0x7fb2637ed3d4 - clone
[INFO] [stdout]   26:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tools::tests::grep_defaults_to_project_root stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tools::tests::grep_defaults_to_project_root' (1818) panicked at src/tools.rs:745:66:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: ripgrep (rg) is not installed. Install it with: cargo install ripgrep
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <anyhow::Error>::msg::<&str>
[INFO] [stdout]    1: <grox::tools::Tool>::execute::{closure#0}
[INFO] [stdout]    2: grox::tools::tests::grep_defaults_to_project_root::{closure#0}
[INFO] [stdout]    3: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    4: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    5: <tokio::runtime::scheduler::current_thread::CurrentThread>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: grox::tools::tests::grep_defaults_to_project_root
[INFO] [stdout]    8: <grox::tools::tests::grep_defaults_to_project_root::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    9: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]   10: test::run_test::{closure#0}
[INFO] [stdout]   11: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   12: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   13: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   14: <unknown>
[INFO] [stdout]   15: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x562944922a61 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x562944938e2a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x56294492788c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5629448fbcb6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x562944919ae9 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5629447c3370 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x562944919e12 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5629448fbd62 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5629448f41a9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5629448fcb5d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x56294493960c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5629449393e2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x56294478444b - grox[1637a362111a4f77]::tools::tests::grep_defaults_to_project_root::{closure#0}
[INFO] [stdout]   13:     0x5629447ad563 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::Context>::enter::<core[df12db4294e9bfd3]::task::poll::Poll<()>, <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x5629447ab3ec - <tokio[82700c02109a1589]::runtime::context::scoped::Scoped<tokio[82700c02109a1589]::runtime::scheduler::Context>>::set::<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}, core[df12db4294e9bfd3]::option::Option<()>>::{closure#0}, (alloc[2182bb758b4b3781]::boxed::Box<tokio[82700c02109a1589]::runtime::scheduler::current_thread::Core>, core[df12db4294e9bfd3]::option::Option<()>)>
[INFO] [stdout]   15:     0x5629447ad1e5 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x5629447ab2d2 - <tokio[82700c02109a1589]::runtime::runtime::Runtime>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   17:     0x56294478866b - grox[1637a362111a4f77]::tools::tests::grep_defaults_to_project_root
[INFO] [stdout]   18:     0x5629447a1f89 - <grox[1637a362111a4f77]::tools::tests::grep_defaults_to_project_root::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5629447b665b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   20:     0x5629447c3cc5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   21:     0x5629447bd584 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x5629447c6e22 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x562944921aa9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   24:     0x7fb263759dfa - <unknown>
[INFO] [stdout]   25:     0x7fb2637ed3d4 - clone
[INFO] [stdout]   26:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tools::tests::grep_glob_filter stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tools::tests::grep_glob_filter' (1819) panicked at src/tools.rs:701:66:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: ripgrep (rg) is not installed. Install it with: cargo install ripgrep
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <anyhow::Error>::msg::<&str>
[INFO] [stdout]    1: <grox::tools::Tool>::execute::{closure#0}
[INFO] [stdout]    2: grox::tools::tests::grep_glob_filter::{closure#0}
[INFO] [stdout]    3: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    4: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    5: <tokio::runtime::scheduler::current_thread::CurrentThread>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: grox::tools::tests::grep_glob_filter
[INFO] [stdout]    8: <grox::tools::tests::grep_glob_filter::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    9: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]   10: test::run_test::{closure#0}
[INFO] [stdout]   11: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   12: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   13: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   14: <unknown>
[INFO] [stdout]   15: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x562944922a61 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x562944938e2a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x56294492788c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5629448fbcb6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x562944919ae9 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5629447c3370 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x562944919e12 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5629448fbd62 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5629448f41a9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5629448fcb5d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x56294493960c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5629449393e2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x56294477cb50 - grox[1637a362111a4f77]::tools::tests::grep_glob_filter::{closure#0}
[INFO] [stdout]   13:     0x5629447ad563 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::Context>::enter::<core[df12db4294e9bfd3]::task::poll::Poll<()>, <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x5629447ab3ec - <tokio[82700c02109a1589]::runtime::context::scoped::Scoped<tokio[82700c02109a1589]::runtime::scheduler::Context>>::set::<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}, core[df12db4294e9bfd3]::option::Option<()>>::{closure#0}, (alloc[2182bb758b4b3781]::boxed::Box<tokio[82700c02109a1589]::runtime::scheduler::current_thread::Core>, core[df12db4294e9bfd3]::option::Option<()>)>
[INFO] [stdout]   15:     0x5629447ad1e5 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x5629447ab2d2 - <tokio[82700c02109a1589]::runtime::runtime::Runtime>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   17:     0x562944786c2b - grox[1637a362111a4f77]::tools::tests::grep_glob_filter
[INFO] [stdout]   18:     0x5629447a1d29 - <grox[1637a362111a4f77]::tools::tests::grep_glob_filter::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5629447b665b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   20:     0x5629447c3cc5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   21:     0x5629447bd584 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x5629447c6e22 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x562944921aa9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   24:     0x7fb263759dfa - <unknown>
[INFO] [stdout]   25:     0x7fb2637ed3d4 - clone
[INFO] [stdout]   26:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tools::tests::grep_max_results_cap stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tools::tests::grep_max_results_cap' (1822) panicked at src/tools.rs:733:66:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: ripgrep (rg) is not installed. Install it with: cargo install ripgrep
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <anyhow::Error>::msg::<&str>
[INFO] [stdout]    1: <grox::tools::Tool>::execute::{closure#0}
[INFO] [stdout]    2: grox::tools::tests::grep_max_results_cap::{closure#0}
[INFO] [stdout]    3: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    4: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    5: <tokio::runtime::scheduler::current_thread::CurrentThread>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: grox::tools::tests::grep_max_results_cap
[INFO] [stdout]    8: <grox::tools::tests::grep_max_results_cap::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    9: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]   10: test::run_test::{closure#0}
[INFO] [stdout]   11: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   12: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   13: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   14: <unknown>
[INFO] [stdout]   15: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x562944922a61 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x562944938e2a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x56294492788c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5629448fbcb6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x562944919ae9 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5629447c3370 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x562944919e12 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5629448fbd62 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5629448f41a9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5629448fcb5d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x56294493960c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5629449393e2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x56294477ee7e - grox[1637a362111a4f77]::tools::tests::grep_max_results_cap::{closure#0}
[INFO] [stdout]   13:     0x5629447ad563 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::Context>::enter::<core[df12db4294e9bfd3]::task::poll::Poll<()>, <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x5629447ab3ec - <tokio[82700c02109a1589]::runtime::context::scoped::Scoped<tokio[82700c02109a1589]::runtime::scheduler::Context>>::set::<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}, core[df12db4294e9bfd3]::option::Option<()>>::{closure#0}, (alloc[2182bb758b4b3781]::boxed::Box<tokio[82700c02109a1589]::runtime::scheduler::current_thread::Core>, core[df12db4294e9bfd3]::option::Option<()>)>
[INFO] [stdout]   15:     0x5629447ad1e5 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x5629447ab2d2 - <tokio[82700c02109a1589]::runtime::runtime::Runtime>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   17:     0x56294478732b - grox[1637a362111a4f77]::tools::tests::grep_max_results_cap
[INFO] [stdout]   18:     0x5629447a1dc9 - <grox[1637a362111a4f77]::tools::tests::grep_max_results_cap::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5629447b665b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   20:     0x5629447c3cc5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   21:     0x5629447bd584 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x5629447c6e22 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x562944921aa9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   24:     0x7fb263759dfa - <unknown>
[INFO] [stdout]   25:     0x7fb2637ed3d4 - clone
[INFO] [stdout]   26:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tools::tests::grep_invalid_regex stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tools::tests::grep_invalid_regex' (1820) panicked at src/tools.rs:687:9:
[INFO] [stdout] assertion failed: result.unwrap_err().to_string().contains("Grep error")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x562944922a61 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x562944938e2a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x56294492788c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5629448fbcb6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x562944919ae9 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5629447c3370 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x562944919e12 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5629448fbd94 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5629448f41a9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5629448fcb5d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x56294493960c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5629449395d2 - core[df12db4294e9bfd3]::panicking::panic
[INFO] [stdout]   12:     0x56294477da0a - grox[1637a362111a4f77]::tools::tests::grep_invalid_regex::{closure#0}
[INFO] [stdout]   13:     0x5629447ad563 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::Context>::enter::<core[df12db4294e9bfd3]::task::poll::Poll<()>, <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x5629447ab3ec - <tokio[82700c02109a1589]::runtime::context::scoped::Scoped<tokio[82700c02109a1589]::runtime::scheduler::Context>>::set::<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}, core[df12db4294e9bfd3]::option::Option<()>>::{closure#0}, (alloc[2182bb758b4b3781]::boxed::Box<tokio[82700c02109a1589]::runtime::scheduler::current_thread::Core>, core[df12db4294e9bfd3]::option::Option<()>)>
[INFO] [stdout]   15:     0x5629447ad1e5 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x5629447ab2d2 - <tokio[82700c02109a1589]::runtime::runtime::Runtime>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   17:     0x562944786ecb - grox[1637a362111a4f77]::tools::tests::grep_invalid_regex
[INFO] [stdout]   18:     0x5629447a1d69 - <grox[1637a362111a4f77]::tools::tests::grep_invalid_regex::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5629447b665b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   20:     0x5629447c3cc5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   21:     0x5629447bd584 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x5629447c6e22 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x562944921aa9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   24:     0x7fb263759dfa - <unknown>
[INFO] [stdout]   25:     0x7fb2637ed3d4 - clone
[INFO] [stdout]   26:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tools::tests::grep_no_matches stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tools::tests::grep_no_matches' (1823) panicked at src/tools.rs:675:66:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: ripgrep (rg) is not installed. Install it with: cargo install ripgrep
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <anyhow::Error>::msg::<&str>
[INFO] [stdout]    1: <grox::tools::Tool>::execute::{closure#0}
[INFO] [stdout]    2: grox::tools::tests::grep_no_matches::{closure#0}
[INFO] [stdout]    3: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    4: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    5: <tokio::runtime::scheduler::current_thread::CurrentThread>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: grox::tools::tests::grep_no_matches
[INFO] [stdout]    8: <grox::tools::tests::grep_no_matches::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    9: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]   10: test::run_test::{closure#0}
[INFO] [stdout]   11: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   12: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   13: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   14: <unknown>
[INFO] [stdout]   15: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x562944922a61 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x562944938e2a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x56294492788c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5629448fbcb6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x562944919ae9 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5629447c3370 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x562944919e12 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5629448fbd62 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5629448f41a9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5629448fcb5d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x56294493960c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5629449393e2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x56294477c30d - grox[1637a362111a4f77]::tools::tests::grep_no_matches::{closure#0}
[INFO] [stdout]   13:     0x5629447ad563 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::Context>::enter::<core[df12db4294e9bfd3]::task::poll::Poll<()>, <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x5629447ab3ec - <tokio[82700c02109a1589]::runtime::context::scoped::Scoped<tokio[82700c02109a1589]::runtime::scheduler::Context>>::set::<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[82700c02109a1589]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>>::{closure#0}, core[df12db4294e9bfd3]::option::Option<()>>::{closure#0}, (alloc[2182bb758b4b3781]::boxed::Box<tokio[82700c02109a1589]::runtime::scheduler::current_thread::Core>, core[df12db4294e9bfd3]::option::Option<()>)>
[INFO] [stdout]   15:     0x5629447ad1e5 - <tokio[82700c02109a1589]::runtime::scheduler::current_thread::CurrentThread>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x5629447ab2d2 - <tokio[82700c02109a1589]::runtime::runtime::Runtime>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   17:     0x562944786adb - grox[1637a362111a4f77]::tools::tests::grep_no_matches
[INFO] [stdout]   18:     0x5629447a1d09 - <grox[1637a362111a4f77]::tools::tests::grep_no_matches::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x5629447b665b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   20:     0x5629447c3cc5 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   21:     0x5629447bd584 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x5629447c6e22 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x562944921aa9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   24:     0x7fb263759dfa - <unknown>
[INFO] [stdout]   25:     0x7fb2637ed3d4 - clone
[INFO] [stdout]   26:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tools::tests::grep_case_insensitive
[INFO] [stdout]     tools::tests::grep_defaults_to_project_root
[INFO] [stdout]     tools::tests::grep_glob_filter
[INFO] [stdout]     tools::tests::grep_invalid_regex
[INFO] [stdout]     tools::tests::grep_matches_found
[INFO] [stdout]     tools::tests::grep_max_results_cap
[INFO] [stdout]     tools::tests::grep_no_matches
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 72 passed; 7 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.04s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin grox`
[INFO] running `Command { std: "docker" "inspect" "d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d", kill_on_drop: false }`
[INFO] [stdout] d635d86a700426b78f88f1b60cf2cdbfff30b49160ceaf0316dd100052fe3a2d
