[INFO] cloning repository https://github.com/rust-mcp-stack/rust-mcp-filesystem
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rust-mcp-stack/rust-mcp-filesystem" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frust-mcp-stack%2Frust-mcp-filesystem", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frust-mcp-stack%2Frust-mcp-filesystem'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b3c000a03dd8d70795335c291cb46866f5f42fd3
[INFO] testing rust-mcp-stack/rust-mcp-filesystem against beta-2025-09-21 for beta-1.91-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frust-mcp-stack%2Frust-mcp-filesystem" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/rust-mcp-stack/rust-mcp-filesystem
[INFO] finished tweaking git repo https://github.com/rust-mcp-stack/rust-mcp-filesystem
[INFO] tweaked toml for git repo https://github.com/rust-mcp-stack/rust-mcp-filesystem written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rust-mcp-stack/rust-mcp-filesystem on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rust-mcp-stack/rust-mcp-filesystem 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" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a7626882c0bf90cf3d2d265f4a719c747376e7b21beaa4829b0df44e26e37204
[INFO] running `Command { std: "docker" "start" "-a" "a7626882c0bf90cf3d2d265f4a719c747376e7b21beaa4829b0df44e26e37204", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a7626882c0bf90cf3d2d265f4a719c747376e7b21beaa4829b0df44e26e37204", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a7626882c0bf90cf3d2d265f4a719c747376e7b21beaa4829b0df44e26e37204", kill_on_drop: false }`
[INFO] [stdout] a7626882c0bf90cf3d2d265f4a719c747376e7b21beaa4829b0df44e26e37204
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c8342a34939c511cb805527bc2a3f92ac122970070b23fcbbd150002b74c21fd
[INFO] running `Command { std: "docker" "start" "-a" "c8342a34939c511cb805527bc2a3f92ac122970070b23fcbbd150002b74c21fd", kill_on_drop: false }`
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling serde_core v1.0.225
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling serde v1.0.225
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling grep-matcher v0.1.7
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling libbz2-rs-sys v0.2.2
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling memmap2 v0.9.8
[INFO] [stderr]    Compiling cc v1.2.38
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling anstyle-query v1.1.4
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling uuid v1.18.1
[INFO] [stderr]    Compiling compression-core v0.4.29
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]    Compiling anstyle v1.0.11
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling bzip2 v0.6.0
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling deflate64 v0.1.9
[INFO] [stderr]    Compiling anstream v0.6.20
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling cfb v0.7.3
[INFO] [stderr]    Compiling encoding_rs_io v0.1.7
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling clap_builder v4.5.47
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling infer v0.19.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling liblzma-sys v0.4.4
[INFO] [stderr]    Compiling regex-automata v0.4.10
[INFO] [stderr]    Compiling liblzma v0.4.4
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling serde_derive v1.0.225
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling clap_derive v4.5.47
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling bstr v1.12.0
[INFO] [stderr]    Compiling clap v4.5.47
[INFO] [stderr]    Compiling compression-codecs v0.4.30
[INFO] [stderr]    Compiling async-compression v0.4.30
[INFO] [stderr]    Compiling grep-searcher v0.1.14
[INFO] [stderr]    Compiling globset v0.4.16
[INFO] [stderr]    Compiling grep-regex v0.1.13
[INFO] [stderr]    Compiling grep-cli v0.1.11
[INFO] [stderr]    Compiling rust-mcp-schema v0.7.4
[INFO] [stderr]    Compiling grep-printer v0.2.2
[INFO] [stderr]    Compiling rust-mcp-macros v0.5.2
[INFO] [stderr]    Compiling grep v0.3.2
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling tokio-util v0.7.16
[INFO] [stderr]    Compiling async_zip v0.0.18
[INFO] [stderr]    Compiling rust-mcp-transport v0.6.0
[INFO] [stderr]    Compiling rust-mcp-sdk v0.7.0
[INFO] [stderr]    Compiling rust-mcp-filesystem v0.3.3 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 57.75s
[INFO] running `Command { std: "docker" "inspect" "c8342a34939c511cb805527bc2a3f92ac122970070b23fcbbd150002b74c21fd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c8342a34939c511cb805527bc2a3f92ac122970070b23fcbbd150002b74c21fd", kill_on_drop: false }`
[INFO] [stdout] c8342a34939c511cb805527bc2a3f92ac122970070b23fcbbd150002b74c21fd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 71bac4db8ea93eb8cbfa25cea752c09f639ae2386d7071c9b7bbe5e2c57932ee
[INFO] running `Command { std: "docker" "start" "-a" "71bac4db8ea93eb8cbfa25cea752c09f639ae2386d7071c9b7bbe5e2c57932ee", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling async_zip v0.0.18
[INFO] [stderr]    Compiling rust-mcp-filesystem v0.3.3 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tempfile v3.22.0
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 19.17s
[INFO] running `Command { std: "docker" "inspect" "71bac4db8ea93eb8cbfa25cea752c09f639ae2386d7071c9b7bbe5e2c57932ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "71bac4db8ea93eb8cbfa25cea752c09f639ae2386d7071c9b7bbe5e2c57932ee", kill_on_drop: false }`
[INFO] [stdout] 71bac4db8ea93eb8cbfa25cea752c09f639ae2386d7071c9b7bbe5e2c57932ee
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 88b161565172c7153547ff57a875dd3e2256f514831ec8dc25e2ebab76b5a417
[INFO] running `Command { std: "docker" "start" "-a" "88b161565172c7153547ff57a875dd3e2256f514831ec8dc25e2ebab76b5a417", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rust_mcp_filesystem-3525ecf14d91a036)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust_mcp_filesystem-3504acde81c75417)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/main_test.rs (/opt/rustwide/target/debug/deps/main_test-fed7b60360ed0d43)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_cli.rs (/opt/rustwide/target/debug/deps/test_cli-bbd68f9285df1546)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test test_missing_required_directories ... ok
[INFO] [stdout] test test_parse_with_single_directory ... ok
[INFO] [stdout] test test_parse_with_multiple_directories ... ok
[INFO] [stdout] test test_parse_with_write_flag_long ... ok
[INFO] [stdout] test test_parse_with_write_flag_short ... ok
[INFO] [stdout] test test_version_flag ... ok
[INFO] [stdout] test test_help_flag ... ok
[INFO] [stdout] test test_invalid_flag ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_fs_service.rs (/opt/rustwide/target/debug/deps/test_fs_service-fb43923703c6f3b5)
[INFO] [stdout] 
[INFO] [stdout] running 102 tests
[INFO] [stdout] test adhock ... ok
[INFO] [stdout] test test_allowed_directories ... ok
[INFO] [stdout] test test_apply_file_edits_no_match ... ok
[INFO] [stdout] test test_apply_file_edits_mixed_indentation_2 ... ok
[INFO] [stdout] test test_display_format_for_empty_timestamps ... ok
[INFO] [stdout] test test_apply_file_edits_mixed_indentation ... ok
[INFO] [stdout] test test_calculate_directory_size_invalid_path ... ok
[INFO] [stdout] test test_diff_backtick_formatting ... ok
[INFO] [stdout] test test_contains_symlink_with_symlink ... ok
[INFO] [stdout] test test_apply_file_edits_dry_run ... ok
[INFO] [stdout] test test_create_unified_diff ... ok
[INFO] [stdout] test test_create_directory ... ok
[INFO] [stdout] test test_calculate_directory_size_empty_dir ... ok
[INFO] [stdout] test test_file_info_for_regular_file ... ok
[INFO] [stdout] test test_find_duplicate_files_invalid_path ... ok
[INFO] [stdout] test test_display_format_for_file ... ok
[INFO] [stdout] test test_calculate_directory_size_nested_files ... ok
[INFO] [stdout] test test_dry_run_mode ... ok
[INFO] [stdout] test test_extract_snippet_bug_37 ... ok
[INFO] [stdout] test test_exact_snippet_end ... ok
[INFO] [stdout] test test_file_info_for_directory ... ok
[INFO] [stdout] test test_calculate_directory_size_normal ... ok
[INFO] [stdout] test test_exact_match ... ok
[INFO] [stdout] test test_find_duplicate_files_empty_dir ... ok
[INFO] [stdout] test test_contains_symlink_no_symlink ... ok
[INFO] [stdout] test test_find_duplicate_files_nested_duplicates ... ok
[INFO] [stdout] test test_find_empty_directories_invalid_path ... ok
[INFO] [stdout] test test_format_bytes ... ok
[INFO] [stdout] test test_find_empty_directories_exclude_patterns ... ok
[INFO] [stdout] test test_find_empty_directories_empty_root ... ok
[INFO] [stdout] test test_format_system_time ... ok
[INFO] [stdout] test test_format_permissions_unix ... ok
[INFO] [stdout] test test_get_file_stats ... ok
[INFO] [stdout] test test_find_empty_directories_no_empty_dirs ... ok
[INFO] [stdout] test test_find_duplicate_files_with_exclude_patterns ... ok
[INFO] [stdout] test test_find_duplicate_files_normal ... ok
[INFO] [stdout] test test_find_empty_directories_normal ... ok
[INFO] [stdout] test test_find_duplicate_files_no_duplicates ... ok
[INFO] [stdout] test test_expand_home ... ok
[INFO] [stdout] test test_apply_file_edits ... ok
[INFO] [stdout] test test_exact_match_edit2 ... ok
[INFO] [stdout] test test_find_empty_directories_exclude_patterns_2 ... ok
[INFO] [stdout] test test_find_duplicate_files_size_filters ... ok
[INFO] [stdout] test test_head_file_invalid_path ... ok
[INFO] [stdout] test test_find_duplicate_files_with_pattern ... ok
[INFO] [stdout] test test_head_file_single_line ... ok
[INFO] [stdout] test test_head_file_windows_line_endings ... ok
[INFO] [stdout] test test_head_file_normal ... ok
[INFO] [stdout] test test_match_triggers_only_start_ellipsis ... ok
[INFO] [stdout] test test_normalize_path ... ok
[INFO] [stdout] test test_normalize_line_endings ... ok
[INFO] [stdout] test test_head_file_n_zero ... ok
[INFO] [stdout] test test_line_by_line_match_with_indent ... ok
[INFO] [stdout] test test_head_file_empty_file ... ok
[INFO] [stdout] test test_no_edits_provided ... ok
[INFO] [stdout] test test_head_file_n_larger_than_file ... ok
[INFO] [stdout] test test_panic_on_out_of_bounds_edit ... ok
[INFO] [stdout] test test_move_file ... ok
[INFO] [stdout] test test_preserve_unix_line_endings ... ok
[INFO] [stdout] test test_read_file_lines_exact_file_length ... ok
[INFO] [stdout] test test_read_file_lines_invalid_path ... ok
[INFO] [stdout] test test_read_file_lines_empty_file ... ok
[INFO] [stdout] test test_match_near_start_short_line ... ok
[INFO] [stdout] test test_match_triggers_only_end_ellipsis ... ok
[INFO] [stdout] test test_read_file_lines_limit_zero ... ok
[INFO] [stdout] test test_read_file ... ok
[INFO] [stdout] test test_preserve_windows_line_endings ... ok
[INFO] [stdout] test test_list_directory ... ok
[INFO] [stdout] test test_read_file_lines_no_limit ... ok
[INFO] [stdout] test test_read_file_lines_no_newline_at_end ... ok
[INFO] [stdout] test test_tail_file_empty_file ... ok
[INFO] [stdout] test test_snippet_back_chars ... ok
[INFO] [stdout] test test_search_files ... ok
[INFO] [stdout] test test_head_file_no_trailing_newline ... ok
[INFO] [stdout] test test_tail_file_invalid_path ... ok
[INFO] [stdout] test test_tail_file_normal ... ok
[INFO] [stdout] test test_search_files_with_exclude ... ok
[INFO] [stdout] test test_save_to_different_path ... ok
[INFO] [stdout] test test_trim_applied ... ok
[INFO] [stdout] test test_tail_file_single_line ... ok
[INFO] [stdout] test test_read_file_lines_offset_beyond_file ... ok
[INFO] [stdout] test test_validate_path_allowed ... ok
[INFO] [stdout] test test_read_file_lines_normal ... ok
[INFO] [stdout] test test_tail_file_no_newline_at_end ... ok
[INFO] [stdout] test test_validate_path_denied ... ok
[INFO] [stdout] test test_tail_file_n_larger_than_file ... ok
[INFO] [stdout] test test_tail_file_windows_line_endings ... ok
[INFO] [stdout] test test_unzip_file ... ok
[INFO] [stdout] test test_read_file_lines_windows_line_endings ... ok
[INFO] [stdout] test test_tail_file_n_zero ... ok
[INFO] [stdout] test test_unzip_file_non_existent ... ok
[INFO] [stdout] test test_try_new_success ... ok
[INFO] [stdout] test test_zip_files_empty_input ... ok
[INFO] [stdout] test test_zip_directory_already_exists ... ok
[INFO] [stdout] test test_write_file ... ok
[INFO] [stdout] test test_write_zip_entry_non_existent_file ... ok
[INFO] [stdout] test test_write_zip_entry ... ok
[INFO] [stdout] test test_zip_directory ... ok
[INFO] [stdout] test test_zip_files ... ok
[INFO] [stdout] test test_content_search ... ok
[INFO] [stdout] test search_files_content ... ok
[INFO] [stdout] test test_try_new_invalid_directory - should panic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 102 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_tools.rs (/opt/rustwide/target/debug/deps/test_tools-0caf81ea4f412739)
[INFO] [stdout] running 6 tests
[INFO] [stdout] test test_create_directory_outside_allowed ... ok
[INFO] [stderr]    Doc-tests rust_mcp_filesystem
[INFO] [stdout] test test_create_directory_nested ... ok
[INFO] [stdout] test adhoc ... ok
[INFO] [stdout] test test_create_directory_existing_directory ... ok
[INFO] [stdout] test test_create_directory_new_directory ... ok
[INFO] [stdout] test test_create_directory_invalid_path ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test src/macros.rs - macros::invoke_tools (line 16) ... FAILED
[INFO] [stdout] test src/macros.rs - macros::invoke_tools (line 31) ... FAILED
[INFO] [stdout] test src/macros.rs - macros::invoke_tools (line 22) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/macros.rs - macros::invoke_tools (line 16) stdout ----
[INFO] [stdout] error: expected one of `!`, `+`, `::`, `where`, or `{`, found `}`
[INFO] [stdout]  --> src/macros.rs:18:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn run_tool(params: ParamsType, fs_service: &FsService) -> ServiceResult<()>
[INFO] [stdout]   |          -------- while parsing this `fn`                                         - expected one of `!`, `+`, `::`, `where`, or `{`
[INFO] [stdout] 4 | } _doctest_main_src_macros_rs_16_0() }
[INFO] [stdout]   | ^ unexpected token
[INFO] [stdout] 
[INFO] [stdout] error: free function without a body
[INFO] [stdout]  --> src/macros.rs:17:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn run_tool(params: ParamsType, fs_service: &FsService) -> ServiceResult<()>
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- help: provide a definition for the function: `{ <body> }`
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ParamsType` in this scope
[INFO] [stdout]  --> src/macros.rs:17:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn run_tool(params: ParamsType, fs_service: &FsService) -> ServiceResult<()>
[INFO] [stdout]   |                           ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `FsService` in this scope
[INFO] [stdout]  --> src/macros.rs:17:52
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn run_tool(params: ParamsType, fs_service: &FsService) -> ServiceResult<()>
[INFO] [stdout]   |                                                    ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ServiceResult` in this scope
[INFO] [stdout]  --> src/macros.rs:17:66
[INFO] [stdout]   |
[INFO] [stdout] 3 | async fn run_tool(params: ParamsType, fs_service: &FsService) -> ServiceResult<()>
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this type alias
[INFO] [stdout]   |
[INFO] [stdout] 2 + use rust_mcp_filesystem::error::ServiceResult;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0412`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/macros.rs - macros::invoke_tools (line 31) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `tool_params` in this scope
[INFO] [stdout]  --> src/macros.rs:32:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | match tool_params {
[INFO] [stdout]   |       ^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FileSystemTools`
[INFO] [stdout]  --> src/macros.rs:33:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     FileSystemTools::ReadMediaFileTool(params) => ReadMediaFileTool::run_tool(params, &self.fs_service).await,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ use of undeclared type `FileSystemTools`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]   |
[INFO] [stdout] 2 + use rust_mcp_filesystem::tools::FileSystemTools;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]  --> src/macros.rs:33:88
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_macros_rs_31_0() {
[INFO] [stdout]   |                                         -------------------------------- this function can't have a `self` parameter
[INFO] [stdout] 3 | match tool_params {
[INFO] [stdout] 4 |     FileSystemTools::ReadMediaFileTool(params) => ReadMediaFileTool::run_tool(params, &self.fs_service).await,
[INFO] [stdout]   |                                                                                        ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FileSystemTools`
[INFO] [stdout]  --> src/macros.rs:34:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     FileSystemTools::WriteFileTool(params) => WriteFileTool::run_tool(params, &self.fs_service).await,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ use of undeclared type `FileSystemTools`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]   |
[INFO] [stdout] 2 + use rust_mcp_filesystem::tools::FileSystemTools;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error[E0424]: expected value, found module `self`
[INFO] [stdout]  --> src/macros.rs:34:80
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_macros_rs_31_0() {
[INFO] [stdout]   |                                         -------------------------------- this function can't have a `self` parameter
[INFO] [stdout] ...
[INFO] [stdout] 5 |     FileSystemTools::WriteFileTool(params) => WriteFileTool::run_tool(params, &self.fs_service).await,
[INFO] [stdout]   |                                                                                ^^^^ `self` value is a keyword only available in methods with a `self` parameter
[INFO] [stdout] 
[INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks
[INFO] [stdout]  --> src/macros.rs:33:105
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_macros_rs_31_0() {
[INFO] [stdout]   |                                      ------------------------------------- this is not `async`
[INFO] [stdout] 3 | match tool_params {
[INFO] [stdout] 4 |     FileSystemTools::ReadMediaFileTool(params) => ReadMediaFileTool::run_tool(params, &self.fs_service).await,
[INFO] [stdout]   |                                                                                                         ^^^^^ only allowed inside `async` functions and blocks
[INFO] [stdout] 
[INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks
[INFO] [stdout]  --> src/macros.rs:34:97
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_macros_rs_31_0() {
[INFO] [stdout]   |                                      ------------------------------------- this is not `async`
[INFO] [stdout] ...
[INFO] [stdout] 5 |     FileSystemTools::WriteFileTool(params) => WriteFileTool::run_tool(params, &self.fs_service).await,
[INFO] [stdout]   |                                                                                                 ^^^^^ only allowed inside `async` functions and blocks
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ReadMediaFileTool`
[INFO] [stdout]  --> src/macros.rs:33:51
[INFO] [stdout]   |
[INFO] [stdout] 4 |     FileSystemTools::ReadMediaFileTool(params) => ReadMediaFileTool::run_tool(params, &self.fs_service).await,
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^^^^^ use of undeclared type `ReadMediaFileTool`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `WriteFileTool`
[INFO] [stdout]  --> src/macros.rs:34:47
[INFO] [stdout]   |
[INFO] [stdout] 5 |     FileSystemTools::WriteFileTool(params) => WriteFileTool::run_tool(params, &self.fs_service).await,
[INFO] [stdout]   |                                               ^^^^^^^^^^^^^ use of undeclared type `WriteFileTool`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 9 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0424, E0425, E0433, E0728.
[INFO] [stdout] For more information about an error, try `rustc --explain E0424`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/macros.rs - macros::invoke_tools (line 22) stdout ----
[INFO] [stdout] error: cannot find macro `match_filesystem_tools` in this scope
[INFO] [stdout]  --> src/macros.rs:23:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | match_filesystem_tools!(
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/macros.rs - macros::invoke_tools (line 16)
[INFO] [stdout]     src/macros.rs - macros::invoke_tools (line 22)
[INFO] [stdout]     src/macros.rs - macros::invoke_tools (line 31)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.57s; merged doctests compilation took 0.33s
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "88b161565172c7153547ff57a875dd3e2256f514831ec8dc25e2ebab76b5a417", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "88b161565172c7153547ff57a875dd3e2256f514831ec8dc25e2ebab76b5a417", kill_on_drop: false }`
[INFO] [stdout] 88b161565172c7153547ff57a875dd3e2256f514831ec8dc25e2ebab76b5a417
