[INFO] fetching crate shell-sanitize-rules 0.1.0...
[INFO] testing shell-sanitize-rules-0.1.0 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate shell-sanitize-rules 0.1.0 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate shell-sanitize-rules 0.1.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate shell-sanitize-rules 0.1.0
[INFO] tweaked toml for crates.io crate shell-sanitize-rules 0.1.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate shell-sanitize-rules 0.1.0 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate shell-sanitize-rules 0.1.0 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-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 394af0159bf2010f9cb9daa022e3d42034e877f412e3e17c8181398356804235
[INFO] running `Command { std: "docker" "start" "-a" "394af0159bf2010f9cb9daa022e3d42034e877f412e3e17c8181398356804235", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "394af0159bf2010f9cb9daa022e3d42034e877f412e3e17c8181398356804235", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "394af0159bf2010f9cb9daa022e3d42034e877f412e3e17c8181398356804235", kill_on_drop: false }`
[INFO] [stdout] 394af0159bf2010f9cb9daa022e3d42034e877f412e3e17c8181398356804235
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bee1f5ea5a6b29aa97d658af14db23a232a1039d523b098d5eb1f926dd96227f
[INFO] running `Command { std: "docker" "start" "-a" "bee1f5ea5a6b29aa97d658af14db23a232a1039d523b098d5eb1f926dd96227f", kill_on_drop: false }`
[INFO] [stderr]    Compiling shell-sanitize v0.1.0
[INFO] [stderr]    Compiling shell-sanitize-rules v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.56s
[INFO] running `Command { std: "docker" "inspect" "bee1f5ea5a6b29aa97d658af14db23a232a1039d523b098d5eb1f926dd96227f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bee1f5ea5a6b29aa97d658af14db23a232a1039d523b098d5eb1f926dd96227f", kill_on_drop: false }`
[INFO] [stdout] bee1f5ea5a6b29aa97d658af14db23a232a1039d523b098d5eb1f926dd96227f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 653a18e603ac2a99f42bbac15aa050e9b46e49f3f154c5c50d43c67770afb69f
[INFO] running `Command { std: "docker" "start" "-a" "653a18e603ac2a99f42bbac15aa050e9b46e49f3f154c5c50d43c67770afb69f", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling syn v2.0.116
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling clap_builder v4.5.58
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling clap v4.5.58
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling zerocopy-derive v0.8.39
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling proptest v1.10.0
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling shell-sanitize-rules v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 27.80s
[INFO] running `Command { std: "docker" "inspect" "653a18e603ac2a99f42bbac15aa050e9b46e49f3f154c5c50d43c67770afb69f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "653a18e603ac2a99f42bbac15aa050e9b46e49f3f154c5c50d43c67770afb69f", kill_on_drop: false }`
[INFO] [stdout] 653a18e603ac2a99f42bbac15aa050e9b46e49f3f154c5c50d43c67770afb69f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 20dc3e02660ef1ef36e65fa5a3ee9389aa675313de0680f5779536eb92e1605c
[INFO] running `Command { std: "docker" "start" "-a" "20dc3e02660ef1ef36e65fa5a3ee9389aa675313de0680f5779536eb92e1605c", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shell_sanitize_rules-e9b9df7ce42ad82a)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test charset::tests::ascii_membership ... ok
[INFO] [stdout] test charset::tests::non_ascii_membership ... ok
[INFO] [stdout] test charset::tests::duplicates_handled ... ok
[INFO] [stdout] test charset::tests::mixed_ascii_and_non_ascii ... ok
[INFO] [stdout] test charset::tests::empty_set ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/preset_tests.rs (/opt/rustwide/target/debug/deps/preset_tests-98b45b683ff78f15)
[INFO] [stdout] 
[INFO] [stdout] running 36 tests
[INFO] [stdout] test file_path::accepts_relative_paths ... ok
[INFO] [stdout] test command_arg::rejects_ansi_escape ... ok
[INFO] [stdout] test command_arg::accepts_shell_metacharacters ... ok
[INFO] [stdout] test file_path::rejects_absolute_paths ... ok
[INFO] [stdout] test file_path::rejects_ai_traversal_attack ... ok
[INFO] [stdout] test file_path::rejects_control_chars_in_path ... ok
[INFO] [stdout] test file_path::rejects_parent_traversal ... ok
[INFO] [stdout] test file_path_absolute::accepts_relative_paths ... ok
[INFO] [stdout] test file_path_absolute::rejects_traversal_even_in_absolute ... ok
[INFO] [stdout] test preset_boundaries::absolute_path_passes_file_path_absolute_but_fails_file_path ... ok
[INFO] [stdout] test file_path_absolute::accepts_absolute_paths ... ok
[INFO] [stdout] test preset_boundaries::command_arg_is_most_permissive ... ok
[INFO] [stdout] test shell_command::accepts_paths_without_traversal ... ok
[INFO] [stdout] test shell_command::accepts_safe_identifiers ... ok
[INFO] [stdout] test shell_command::rejects_ai_env_exfiltration ... ok
[INFO] [stdout] test shell_command::rejects_command_substitution ... ok
[INFO] [stdout] test shell_command::rejects_env_variable_exfiltration ... ok
[INFO] [stdout] test shell_command::rejects_pipe_injection ... ok
[INFO] [stdout] test shell_command::rejects_ai_prompt_injection_shell ... ok
[INFO] [stdout] test strict::accepts_minimal_safe_input ... ok
[INFO] [stdout] test strict::rejects_combined_ai_attack ... ok
[INFO] [stdout] test shell_command::rejects_newline_command_splitting ... ok
[INFO] [stdout] test shell_command::rejects_semicolon_injection ... ok
[INFO] [stdout] test shell_command::rejects_glob_expansion ... ok
[INFO] [stdout] test strict::rejects_path_traversal ... ok
[INFO] [stdout] test strict::rejects_glob ... ok
[INFO] [stdout] test strict::rejects_env_expansion ... ok
[INFO] [stdout] test command_arg::accepts_normal_argument ... ok
[INFO] [stdout] test strict::rejects_shell_injection ... ok
[INFO] [stdout] test preset_boundaries::shell_meta_passes_file_path_but_fails_shell_command ... ok
[INFO] [stdout] test preset_boundaries::strict_is_superset_of_all_presets ... ok
[INFO] [stdout] test preset_boundaries::traversal_passes_shell_command_but_fails_file_path ... ok
[INFO] [stdout] test command_arg::rejects_null_byte ... ok
[INFO] [stdout] test file_path::accepts_current_dir_prefix ... ok
[INFO] [stdout] test strict::rejects_control_char ... ok
[INFO] [stderr]      Running tests/proptest_rules.rs (/opt/rustwide/target/debug/deps/proptest_rules-b0bdd40f6457a919)
[INFO] [stdout] test file_path::allows_shell_metacharacters_in_path ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test null_byte_always_rejected ... ok
[INFO] [stdout] test alphanumeric_always_passes_shell_meta ... ok
[INFO] [stdout] test star_always_rejected ... ok
[INFO] [stdout] test dotdot_always_rejected ... ok
[INFO] [stdout] test semicolon_always_rejected ... ok
[INFO] [stdout] test dollar_var_always_rejected ... ok
[INFO] [stdout] test env_expansion_rule_never_panics ... ok
[INFO] [stdout] test shell_meta_rule_never_panics ... ok
[INFO] [stdout] test alphanumeric_always_passes_control_char ... ok
[INFO] [stdout] test control_char_rule_never_panics ... ok
[INFO] [stdout] test path_traversal_rule_never_panics ... ok
[INFO] [stdout] test glob_rule_never_panics ... ok
[INFO] [stdout] test alphanumeric_always_passes_env ... ok
[INFO] [stdout] test alphanumeric_always_passes_glob ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.52s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rules_tests.rs (/opt/rustwide/target/debug/deps/rules_tests-e15bd2ecaef6fda1)
[INFO] [stdout] 
[INFO] [stdout] running 60 tests
[INFO] [stdout] test control_char::accepts_empty ... ok
[INFO] [stdout] test control_char::allows_configured_exceptions ... ok
[INFO] [stdout] test control_char::accepts_unicode_text ... ok
[INFO] [stdout] test control_char::rejects_newline ... ok
[INFO] [stdout] test control_char::rejects_c1_controls ... ok
[INFO] [stdout] test control_char::rejects_del ... ok
[INFO] [stdout] test control_char::reports_multiple_violations ... ok
[INFO] [stdout] test control_char::tab_rejected_by_default ... ok
[INFO] [stdout] test control_char::rejects_null_byte ... ok
[INFO] [stdout] test env_expansion::accepts_dollar_at_end ... ok
[INFO] [stdout] test control_char::accepts_ascii_printable ... ok
[INFO] [stdout] test env_expansion::multiple_vars_all_reported ... ok
[INFO] [stdout] test glob::accepts_paths ... ok
[INFO] [stdout] test env_expansion::rejects_dollar_braced ... ok
[INFO] [stdout] test control_char::rejects_escape_sequence ... ok
[INFO] [stdout] test env_expansion::rejects_dollar_name ... ok
[INFO] [stdout] test env_expansion::rejects_dollar_paren ... ok
[INFO] [stdout] test env_expansion::posix_only_skips_windows ... ok
[INFO] [stdout] test glob::custom_denied ... ok
[INFO] [stdout] test glob::rejects_star ... ok
[INFO] [stdout] test integration::default_rules_reject_command_injection ... ok
[INFO] [stdout] test integration::violations_from_multiple_rules_aggregated ... ok
[INFO] [stdout] test path_traversal::accepts_absolute_when_allowed ... ok
[INFO] [stdout] test env_expansion::accepts_dollar_number ... ok
[INFO] [stdout] test env_expansion::rejects_underscore_prefixed ... ok
[INFO] [stdout] test integration::default_rules_reject_path_traversal ... ok
[INFO] [stdout] test integration::default_rules_reject_env_expansion ... ok
[INFO] [stdout] test glob::rejects_brackets ... ok
[INFO] [stdout] test glob::accepts_normal_text ... ok
[INFO] [stdout] test integration::default_rules_reject_tilde_expansion ... ok
[INFO] [stdout] test path_traversal::accepts_current_dir ... ok
[INFO] [stdout] test glob::rejects_braces ... ok
[INFO] [stdout] test path_traversal::rejects_nested_traversal ... ok
[INFO] [stdout] test env_expansion::accepts_plain_text ... ok
[INFO] [stdout] test path_traversal::rejects_parent_traversal ... ok
[INFO] [stdout] test shell_meta::accepts_alphanumeric_and_safe_chars ... ok
[INFO] [stdout] test integration::default_rules_accept_safe_input ... ok
[INFO] [stdout] test glob::rejects_question_mark ... ok
[INFO] [stdout] test path_traversal::rejects_absolute_windows ... ok
[INFO] [stdout] test path_traversal::rejects_backslash_traversal ... ok
[INFO] [stdout] test path_traversal::rejects_windows_forward_slash ... ok
[INFO] [stdout] test env_expansion::rejects_windows_percent ... ok
[INFO] [stdout] test shell_meta::accepts_path_separators ... ok
[INFO] [stdout] test shell_meta::custom_denied_chars ... ok
[INFO] [stdout] test path_traversal::accepts_simple_filename ... ok
[INFO] [stdout] test shell_meta::extra_denied_chars ... ok
[INFO] [stdout] test path_traversal::accepts_dot_in_filename ... ok
[INFO] [stdout] test path_traversal::rejects_absolute_unix ... ok
[INFO] [stdout] test shell_meta::rejects_parentheses ... ok
[INFO] [stdout] test shell_meta::accepts_dot ... ok
[INFO] [stdout] test shell_meta::rejects_semicolon ... ok
[INFO] [stdout] test shell_meta::accepts_spaces ... ok
[INFO] [stdout] test shell_meta::rejects_ampersand ... ok
[INFO] [stdout] test shell_meta::rejects_backtick ... ok
[INFO] [stdout] test shell_meta::rejects_dollar ... ok
[INFO] [stdout] test shell_meta::rejects_pipe ... ok
[INFO] [stdout] test shell_meta::rejects_tilde_user ... ok
[INFO] [stdout] test shell_meta::rejects_redirect ... ok
[INFO] [stdout] test shell_meta::rejects_tilde ... ok
[INFO] [stdout] test path_traversal::accepts_relative_path ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 60 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shell_sanitize_rules
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test src/control_char.rs - control_char::ControlCharRule::allowing (line 30) ... ok
[INFO] [stdout] test src/presets.rs - presets::command_arg (line 107) ... ok
[INFO] [stdout] test src/presets.rs - presets::file_path (line 171) ... ok
[INFO] [stdout] test src/presets.rs - presets::file_path_absolute (line 205) ... ok
[INFO] [stdout] test src/presets.rs - presets::strict (line 240) ... ok
[INFO] [stdout] test src/lib.rs - (line 7) ... ok
[INFO] [stdout] test src/presets.rs - presets::shell_command (line 135) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.52s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "20dc3e02660ef1ef36e65fa5a3ee9389aa675313de0680f5779536eb92e1605c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "20dc3e02660ef1ef36e65fa5a3ee9389aa675313de0680f5779536eb92e1605c", kill_on_drop: false }`
[INFO] [stdout] 20dc3e02660ef1ef36e65fa5a3ee9389aa675313de0680f5779536eb92e1605c
