[INFO] cloning repository https://github.com/jparoz/mecha-oracle
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jparoz/mecha-oracle" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjparoz%2Fmecha-oracle", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjparoz%2Fmecha-oracle'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7a7b8f36a59289a4e8d8490f2e841cb32d05396f
[INFO] testing jparoz/mecha-oracle against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjparoz%2Fmecha-oracle" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jparoz/mecha-oracle
[INFO] finished tweaking git repo https://github.com/jparoz/mecha-oracle
[INFO] tweaked toml for git repo https://github.com/jparoz/mecha-oracle written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jparoz/mecha-oracle on toolchain 1.99.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jparoz/mecha-oracle 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.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b
[INFO] running `Command { std: "docker" "start" "28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b", 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" "28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b", 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" "28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling ureq-proto v0.6.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling utf8-zero v0.8.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling ureq v3.3.0
[INFO] [stderr]    Compiling mecha-oracle v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 29s
[INFO] running `Command { std: "docker" "inspect" "28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b", 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" "28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling mecha-oracle v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 24.83s
[INFO] running `Command { std: "docker" "inspect" "28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b", 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" "28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/mecha_oracle-b7c7d42c9e9f2f83)
[INFO] [stdout] 
[INFO] [stdout] running 649 tests
[INFO] [stdout] test cards::scryfall::tests::non_numeric_power_is_none ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_entry_missing_layout_defaults_to_card ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_entry_routes_double_faced_token ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_entry_routes_emblem ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_dryad_arbor_is_land_and_creature ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_entry_routes_normal_card ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_entry_routes_token ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_entry_skips_acorn_stamp ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_entry_skips_art_series ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_entry_skips_silver_border ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_forest ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_grizzly_bears ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_hybrid_cost ... ok
[INFO] [stdout] test cards::scryfall::tests::scryfall_colors_empty_for_colorless_card ... ok
[INFO] [stdout] test cards::scryfall::tests::unknown_symbol_is_skipped_not_errored ... ok
[INFO] [stdout] test cards::tests::keyword_only_card_has_no_unparsed_spans ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_generic_hybrid_cost ... ok
[INFO] [stdout] test cards::tests::iter_returns_all_non_token_cards ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_phyrexian_cost ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_snow_cost ... ok
[INFO] [stdout] test cards::scryfall::tests::scryfall_colors_missing_key_defaults_to_empty ... ok
[INFO] [stdout] test cards::scryfall::tests::scryfall_colors_parsed_for_blue_card ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_colorless_symbol_in_cost ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_hill_giant ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_hybrid_phyrexian_cost ... ok
[INFO] [stdout] test cards::scryfall::tests::parse_x_cost ... ok
[INFO] [stdout] test cards::tests::get_token_returns_token ... ok
[INFO] [stdout] test engine::activated::tests::already_tapped_returns_error ... ok
[INFO] [stdout] test engine::activated::tests::can_pay_cost_true_when_untapped_and_mana_sufficient ... ok
[INFO] [stdout] test engine::activated::tests::insufficient_mana_returns_error ... ok
[INFO] [stdout] test cards::tests::token_does_not_overwrite_card ... ok
[INFO] [stdout] test engine::activated::tests::mill_two_resolves_via_resolve_top ... ok
[INFO] [stdout] test engine::activated::tests::non_mana_activate_puts_on_stack_not_immediate ... ok
[INFO] [stdout] test engine::activated::tests::mill_two_puts_on_stack_not_immediate ... ok
[INFO] [stdout] test engine::activated::tests::non_mana_activate_not_your_priority_returns_error ... ok
[INFO] [stdout] test engine::activated::tests::summoning_sick_creature_with_tap_cost_returns_error ... ok
[INFO] [stdout] test engine::activated::tests::tap_mana_ability_taps_and_adds_mana ... ok
[INFO] [stdout] test engine::activated::tests::snow_mana_source_adds_snow_tagged_mana ... ok
[INFO] [stdout] test engine::activated::tests::tap_mana_ability_creates_checkpoint ... ok
[INFO] [stdout] test engine::activated::tests::non_mana_activate_resolves_via_resolve_top ... ok
[INFO] [stdout] test engine::activated::tests::unimplemented_cost_puts_effect_on_stack ... ok
[INFO] [stdout] test cards::tests::landfall_card_loads_successfully ... ok
[INFO] [stdout] test engine::activated::tests::can_pay_cost_false_when_tapped ... ok
[INFO] [stdout] test engine::casting::tests::cannot_play_second_land_in_same_turn ... ok
[INFO] [stdout] test cards::tests::landfall_card_has_unparsed_span ... ok
[INFO] [stdout] test engine::casting::tests::cast_aura_on_creature_succeeds_and_enters_attached ... ok
[INFO] [stdout] test engine::activated::tests::ward_trigger_pushed_above_activated_ability_when_targeting_opponent_ward_creature ... ok
[INFO] [stdout] test engine::casting::tests::cast_creature_puts_spell_on_stack_not_battlefield ... ok
[INFO] [stdout] test engine::casting::tests::cannot_cast_creature_without_mana ... ok
[INFO] [stdout] test engine::casting::tests::cast_aura_on_non_creature_fails ... ok
[INFO] [stdout] test engine::casting::tests::cast_dashed_deducts_only_alternative_cost ... ok
[INFO] [stdout] test engine::casting::tests::cast_evoked_deducts_only_alternative_cost ... ok
[INFO] [stdout] test engine::casting::tests::cast_flash_creature_with_nonempty_stack_succeeds ... ok
[INFO] [stdout] test engine::casting::tests::cast_instant_when_not_active_player_succeeds ... ok
[INFO] [stdout] test engine::casting::tests::cast_instant_succeeds_with_nonempty_stack ... ok
[INFO] [stdout] test engine::casting::tests::cast_aura_without_target_fails ... ok
[INFO] [stdout] test engine::casting::tests::cast_kicked_deducts_mana_cost_plus_kicker ... ok
[INFO] [stdout] test engine::casting::tests::cast_creature_caster_retains_priority ... ok
[INFO] [stdout] test engine::casting::tests::cast_dashed_without_dash_rule_returns_invalid_cast_mode ... ok
[INFO] [stdout] test engine::casting::tests::cast_creature_clears_mana_checkpoint ... ok
[INFO] [stdout] test engine::casting::tests::cast_creature_resolves_to_battlefield_after_both_pass ... ok
[INFO] [stdout] test engine::casting::tests::cast_creature_without_flash_fails_with_nonempty_stack ... ok
[INFO] [stdout] test engine::casting::tests::cast_creature_not_your_priority_returns_error ... ok
[INFO] [stdout] test engine::casting::tests::cast_kicked_without_kicker_rule_returns_invalid_cast_mode ... ok
[INFO] [stdout] test cards::tests::landfall_card_span_structure ... ok
[INFO] [stdout] test cards::tests::llanowar_elves_loads_with_activated_ability ... ok
[INFO] [stdout] test cards::tests::unparsed_count_reflects_landfall_card ... ok
[INFO] [stdout] test engine::activated::tests::ability_index_out_of_range_returns_error ... ok
[INFO] [stdout] test engine::activated::tests::mill_fewer_cards_than_n_resolves_without_error ... ok
[INFO] [stdout] test engine::casting::tests::aura_goes_to_graveyard_when_target_gone_before_resolution ... ok
[INFO] [stdout] test engine::casting::tests::cast_multikicked_twice_deducts_base_plus_two_kicker ... ok
[INFO] [stdout] test engine::casting::tests::cast_multikicked_zero_returns_invalid_cast_mode ... ok
[INFO] [stdout] test engine::casting::tests::cast_noncreature_with_prowess_creature_puts_boost_on_stack ... ok
[INFO] [stdout] test engine::casting::tests::cast_spell_with_x_deducts_x_mana ... ok
[INFO] [stdout] test engine::casting::tests::cast_spell_with_x_stores_x_value_on_stack_object ... ok
[INFO] [stdout] test engine::casting::tests::cast_targeted_spell_with_illegal_target_returns_illegal_target ... ok
[INFO] [stdout] test engine::casting::tests::cast_spell_caster_retains_priority ... ok
[INFO] [stdout] test engine::casting::tests::cast_spell_moves_card_to_stack ... ok
[INFO] [stdout] test engine::casting::tests::cast_targeted_spell_without_target_returns_wrong_number ... ok
[INFO] [stdout] test engine::casting::tests::cast_targeted_spell_with_valid_target_succeeds ... ok
[INFO] [stdout] test engine::casting::tests::cast_untargeted_spell_with_no_targets_still_works ... ok
[INFO] [stdout] test engine::casting::tests::negate_counters_opponent_noncreature_spell ... ok
[INFO] [stdout] test engine::casting::tests::ward_life_trigger_pushed_above_spell ... ok
[INFO] [stdout] test engine::casting::tests::counterspell_counters_opponent_creature_spell ... ok
[INFO] [stdout] test engine::casting::tests::ward_trigger_pushed_above_spell_when_targeting_opponent_ward_creature ... ok
[INFO] [stdout] test engine::casting::tests::play_land_fails_with_nonempty_stack ... ok
[INFO] [stdout] test engine::casting::tests::play_land_not_your_priority_returns_error ... ok
[INFO] [stdout] test engine::casting::tests::play_land_moves_from_hand_to_battlefield ... ok
[INFO] [stdout] test engine::combat::tests::can_block_attacker_non_shadow_cannot_block_shadow ... ok
[INFO] [stdout] test engine::casting::tests::ward_trigger_not_pushed_when_targeting_own_ward_creature ... ok
[INFO] [stdout] test engine::combat::tests::anthem_increases_attacker_damage ... ok
[INFO] [stdout] test engine::combat::tests::can_block_attacker_non_horsemanship_cannot_block_horsemanship ... ok
[INFO] [stdout] test engine::casting::tests::counterspell_fizzles_when_target_already_gone ... ok
[INFO] [stdout] test engine::combat::tests::blocked_attacker_deals_no_player_damage_no_trigger ... ok
[INFO] [stdout] test engine::combat::tests::can_block_attacker_decayed_cannot_block ... ok
[INFO] [stdout] test engine::combat::tests::blocked_creatures_deal_damage_to_each_other ... ok
[INFO] [stdout] test engine::combat::tests::attacking_taps_the_attacker ... ok
[INFO] [stdout] test engine::combat::tests::can_block_attacker_ground_cannot_block_flier ... ok
[INFO] [stdout] test engine::casting::tests::negate_cannot_target_creature_spell ... ok
[INFO] [stdout] test engine::casting::tests::play_land_clears_mana_checkpoint ... ok
[INFO] [stdout] test engine::combat::tests::can_block_attacker_reach_can_block_flier ... ok
[INFO] [stdout] test engine::combat::tests::can_block_attacker_returns_false_for_unknown_attacker ... ok
[INFO] [stdout] test engine::combat::tests::can_block_attacker_returns_false_for_unknown_blocker ... ok
[INFO] [stdout] test engine::combat::tests::can_block_attacker_shadow_cannot_block_non_shadow ... ok
[INFO] [stdout] test engine::combat::tests::can_block_attacker_shadow_can_block_shadow ... ok
[INFO] [stdout] test engine::combat::tests::can_block_attacker_skulk_not_blockable_by_greater_power ... ok
[INFO] [stdout] test engine::combat::tests::can_block_attacker_skulk_blockable_by_equal_power ... ok
[INFO] [stdout] test engine::combat::tests::can_block_attacker_vanilla_vs_vanilla ... ok
[INFO] [stdout] test engine::combat::tests::deathtouch_marks_target_for_sba ... ok
[INFO] [stdout] test engine::combat::tests::declare_attackers_sets_declared_flag ... ok
[INFO] [stdout] test engine::combat::tests::decayed_creature_cannot_block ... ok
[INFO] [stdout] test engine::combat::tests::declare_blockers_flanking_attacker_puts_trigger_on_stack ... ok
[INFO] [stdout] test engine::combat::tests::declare_attackers_clears_mana_checkpoint ... ok
[INFO] [stdout] test engine::combat::tests::declare_blockers_clears_mana_checkpoint ... ok
[INFO] [stdout] test engine::combat::tests::declare_attackers_exalted_puts_trigger_on_stack ... ok
[INFO] [stdout] test engine::combat::tests::declare_blockers_sets_declared_flag ... ok
[INFO] [stdout] test engine::combat::tests::double_striker_deals_damage_in_both_rounds ... ok
[INFO] [stdout] test engine::combat::tests::fear_allows_black_creature_to_block ... ok
[INFO] [stdout] test engine::combat::tests::fear_blocks_non_artifact_non_black_creature ... ok
[INFO] [stdout] test engine::combat::tests::first_striker_kills_blocker_before_it_can_deal_damage ... ok
[INFO] [stdout] test engine::combat::tests::flier_can_block_flier ... ok
[INFO] [stdout] test engine::combat::tests::haste_creature_can_attack_while_summoning_sick ... ok
[INFO] [stdout] test engine::combat::tests::infect_and_toxic_together_stack_poison ... ok
[INFO] [stdout] test engine::combat::tests::infect_blocked_deals_minus_counters_not_marked_damage ... ok
[INFO] [stdout] test engine::combat::tests::infect_deals_minus_counters_to_blocker_and_poison_to_player ... ok
[INFO] [stdout] test engine::combat::tests::intimidate_allows_same_color_blocker ... ok
[INFO] [stdout] test engine::combat::tests::intimidate_blocks_different_color_non_artifact ... ok
[INFO] [stdout] test engine::combat::tests::islandwalk_blockable_when_no_island_on_battlefield ... ok
[INFO] [stdout] test engine::combat::tests::islandwalk_unblockable_when_defender_controls_island ... ok
[INFO] [stdout] test engine::combat::tests::lifelink_still_triggers_with_wither ... ok
[INFO] [stdout] test engine::combat::tests::menace_allows_two_blockers ... ok
[INFO] [stdout] test engine::combat::tests::menace_allows_zero_blockers ... ok
[INFO] [stdout] test engine::combat::tests::menace_requires_two_or_more_blockers ... ok
[INFO] [stdout] test engine::combat::tests::protection_from_artifact_blocks_artifact_blocker ... ok
[INFO] [stdout] test engine::combat::tests::larger_creature_kills_smaller_and_survives ... ok
[INFO] [stdout] test engine::combat::tests::lifelink_attacker_gains_life_from_combat_damage ... ok
[INFO] [stdout] test engine::combat::tests::protection_from_everything_prevents_all_combat_damage ... ok
[INFO] [stdout] test engine::combat::tests::protection_from_red_allows_blue_blocker ... ok
[INFO] [stdout] test engine::combat::tests::protection_from_red_blocker_takes_no_damage_from_red_attacker ... ok
[INFO] [stdout] test engine::combat::tests::protection_from_red_blocks_red_blocker ... ok
[INFO] [stdout] test engine::combat::tests::reach_creature_can_block_flier ... ok
[INFO] [stdout] test engine::combat::tests::skulk_can_be_blocked_by_equal_or_lesser_power ... ok
[INFO] [stdout] test engine::combat::tests::skulk_cannot_be_blocked_by_greater_power ... ok
[INFO] [stdout] test engine::combat::tests::toxic_adds_poison_counters_in_addition_to_life_damage ... ok
[INFO] [stdout] test engine::combat::tests::trample_attacker_fires_deals_combat_damage_to_player_trigger ... ok
[INFO] [stdout] test engine::combat::tests::no_first_strikers_means_single_round_and_no_extra_step ... ok
[INFO] [stdout] test engine::combat::tests::trample_deathtouch_one_damage_is_lethal_per_blocker ... ok
[INFO] [stdout] test engine::combat::tests::protection_from_red_attacker_takes_no_damage_from_red_blocker ... ok
[INFO] [stdout] test engine::combat::tests::summoning_sick_creature_cannot_attack ... ok
[INFO] [stdout] test engine::combat::tests::vigilant_attacker_does_not_tap ... ok
[INFO] [stdout] test engine::combat::tests::tapped_creature_cannot_block ... ok
[INFO] [stdout] test engine::combat::tests::multiple_blockers_take_damage_in_order ... ok
[INFO] [stdout] test engine::combat::tests::wither_deals_minus_counters_to_blocker_not_marked_damage ... ok
[INFO] [stdout] test engine::combat::tests::wither_blocker_deals_minus_counters_to_attacker ... ok
[INFO] [stdout] test engine::combat::tests::wither_unblocked_still_deals_life_damage_to_player ... ok
[INFO] [stdout] test engine::combat::tests::trample_sends_excess_to_player ... ok
[INFO] [stdout] test engine::combat::tests::unblocked_attacker_fires_deals_combat_damage_to_player_trigger ... ok
[INFO] [stdout] test engine::combat::tests::non_flier_cannot_block_flier ... ok
[INFO] [stdout] test engine::costs::tests::pay_life_component_deducts_life ... ok
[INFO] [stdout] test engine::costs::tests::can_pay_tap_returns_false_when_already_tapped ... ok
[INFO] [stdout] test engine::costs::tests::pay_mana_component_with_x_deducts_x_mana ... ok
[INFO] [stdout] test engine::costs::tests::pay_mana_component_deducts_from_pool ... ok
[INFO] [stdout] test engine::costs::tests::pay_life_insufficient_returns_error ... ok
[INFO] [stdout] test engine::costs::tests::can_pay_mana_always_returns_true_structurally ... ok
[INFO] [stdout] test engine::costs::tests::pay_mana_insufficient_returns_error ... ok
[INFO] [stdout] test engine::costs::tests::decline_pending_cost_executes_on_declined_and_clears ... ok
[INFO] [stdout] test engine::combat::tests::unblocked_attacker_deals_damage_to_player ... ok
[INFO] [stdout] test engine::costs::tests::pay_pending_cost_clears_payment_and_runs_on_paid ... ok
[INFO] [stdout] test engine::cycling::tests::cycle_card_draw_resolves_after_stack_resolves ... ok
[INFO] [stdout] test engine::cycling::tests::cycle_card_insufficient_mana_returns_error ... ok
[INFO] [stdout] test engine::cycling::tests::cycle_card_not_in_hand_returns_error ... ok
[INFO] [stdout] test engine::cycling::tests::cycle_card_not_your_priority_returns_error ... ok
[INFO] [stdout] test engine::equip::tests::equip_fails_cannot_afford_cost ... ok
[INFO] [stdout] test engine::equip::tests::equip_puts_ability_on_stack ... ok
[INFO] [stdout] test engine::equip::tests::equip_fails_equipment_not_on_battlefield ... ok
[INFO] [stdout] test engine::equip::tests::equip_deducts_mana_cost ... ok
[INFO] [stdout] test engine::mana::tests::can_pay_mana_phyrexian_true_with_2_life_and_no_mana ... ok
[INFO] [stdout] test engine::equip::tests::equip_reattach_moves_attachment ... ok
[INFO] [stdout] test engine::mana::tests::cannot_pay_g_with_red_mana ... ok
[INFO] [stdout] test engine::mana::tests::cannot_pay_1g_with_only_1_green ... ok
[INFO] [stdout] test engine::cycling::tests::cycle_card_no_cycling_ability_returns_error ... ok
[INFO] [stdout] test engine::mana::tests::generic_cost_satisfied_by_any_color ... ok
[INFO] [stdout] test engine::mana::tests::greedy_plan_hybrid_prefers_larger_side ... ok
[INFO] [stdout] test engine::mana::tests::can_pay_mana_true_for_hybrid_with_one_side ... ok
[INFO] [stdout] test engine::mana::tests::cannot_tap_already_tapped_land ... ok
[INFO] [stdout] test engine::mana::tests::greedy_plan_phyrexian_prefers_blood ... ok
[INFO] [stdout] test engine::mana::tests::greedy_plan_phyrexian_falls_back_to_color_if_low_life ... ok
[INFO] [stdout] test engine::mana::tests::greedy_plan_returns_none_if_insufficient ... ok
[INFO] [stdout] test engine::mana::tests::greedy_plan_snow_pip ... ok
[INFO] [stdout] test engine::mana::tests::greedy_plan_x_pip_deducts_chosen_amount ... ok
[INFO] [stdout] test engine::mana::tests::greedy_plan_x_pip_returns_none_if_insufficient ... ok
[INFO] [stdout] test engine::mana::tests::greedy_plan_x_pip_none_deducts_zero ... ok
[INFO] [stdout] test engine::mana::tests::invalid_plan_returns_error ... ok
[INFO] [stdout] test engine::mana::tests::pay_1g_with_green_and_any ... ok
[INFO] [stdout] test engine::mana::tests::pay_mana_cost_x_none_pays_zero ... ok
[INFO] [stdout] test engine::mana::tests::pay_with_phyrexian_blood_plan ... ok
[INFO] [stdout] test engine::mana::tests::pay_with_snow_plan ... ok
[INFO] [stdout] test engine::costs::tests::pay_pending_cost_wrong_player_returns_error ... ok
[INFO] [stdout] test engine::mana::tests::pay_with_hybrid_plan ... ok
[INFO] [stdout] test engine::costs::tests::tap_component_is_skipped_by_pay_cost_components ... ok
[INFO] [stdout] test engine::mana::tests::reset_mana_returns_err_with_no_checkpoint ... ok
[INFO] [stdout] test engine::mana::tests::tap_forest_adds_green_mana ... ok
[INFO] [stdout] test engine::mana::tests::tap_land_for_mana_creates_checkpoint_on_first_tap ... ok
[INFO] [stdout] test engine::equip::tests::equip_fails_opponents_creature ... ok
[INFO] [stdout] test engine::mana::tests::second_tap_appends_to_existing_checkpoint ... ok
[INFO] [stdout] test engine::mana::tests::greedy_plan_covers_hybrid_pip ... ok
[INFO] [stdout] test engine::equip::tests::equip_fails_target_is_not_creature ... ok
[INFO] [stdout] test engine::mana::tests::reset_mana_restores_pools_and_untaps_lands ... ok
[INFO] [stdout] test engine::cycling::tests::cycle_card_discards_card_and_puts_draw_on_stack ... ok
[INFO] [stdout] test engine::equip::tests::equip_fails_not_main_phase ... ok
[INFO] [stdout] test engine::equip::tests::equip_fails_stack_not_empty ... ok
[INFO] [stdout] test engine::mana::tests::tap_snow_forest_adds_snow_tagged_green ... ok
[INFO] [stdout] test engine::stack::tests::add_counter_to_creature_places_counter_on_permanent ... ok
[INFO] [stdout] test engine::stack::tests::add_counter_to_player_places_counter_on_player ... ok
[INFO] [stdout] test engine::stack::tests::boost_permanent_pt_noop_if_not_on_battlefield ... ok
[INFO] [stdout] test engine::stack::tests::counter_spell_step_counters_targeted_stack_spell ... ok
[INFO] [stdout] test engine::mana::tests::tap_regular_forest_does_not_add_snow_tag ... ok
[INFO] [stdout] test engine::stack::tests::boost_permanent_pt_effect_applies_delta ... ok
[INFO] [stdout] test engine::stack::tests::dash_resolution_injects_haste_into_permanent_state ... ok
[INFO] [stdout] test engine::stack::tests::dash_creature_returns_to_hand_at_end_step ... ok
[INFO] [stdout] test engine::stack::tests::creature_spell_still_resolves_to_battlefield ... ok
[INFO] [stdout] test engine::stack::tests::deal_damage_to_creature_marks_damage ... ok
[INFO] [stdout] test engine::stack::tests::deal_damage_to_player_reduces_life ... ok
[INFO] [stdout] test engine::stack::tests::deathtouch_nonzero_sets_damaged_by_deathtouch_and_sba_destroys ... ok
[INFO] [stdout] test engine::stack::tests::deathtouch_zero_damage_does_not_set_flag ... ok
[INFO] [stdout] test engine::stack::tests::evoke_resolution_pushes_sacrifice_trigger ... ok
[INFO] [stdout] test engine::stack::tests::infect_damage_to_creature_places_minus_one_counters ... ok
[INFO] [stdout] test engine::stack::tests::infect_damage_to_player_gives_poison_counters_not_life_loss ... ok
[INFO] [stdout] test engine::stack::tests::deal_damage_to_protected_creature_is_prevented ... ok
[INFO] [stdout] test engine::stack::tests::inject_source_flags_empty_abilities_leaves_flags_false ... ok
[INFO] [stdout] test engine::stack::tests::inject_source_flags_non_deal_damage_step_passes_through ... ok
[INFO] [stdout] test engine::stack::tests::inject_source_flags_sets_lifelink_from_abilities ... ok
[INFO] [stdout] test engine::stack::tests::inject_source_flags_sets_wither_and_infect ... ok
[INFO] [stdout] test engine::stack::tests::instant_draw_three_executes_fully ... ok
[INFO] [stdout] test engine::stack::tests::instant_spell_draw_effect_executes_before_graveyard ... ok
[INFO] [stdout] test engine::stack::tests::instant_spell_resolves_to_graveyard ... ok
[INFO] [stdout] test engine::stack::tests::lifelink_damage_to_player_gains_life_for_controller ... ok
[INFO] [stdout] test engine::stack::tests::lifelink_damage_to_creature_gains_life_for_controller ... ok
[INFO] [stdout] test engine::stack::tests::lifelink_zero_damage_gains_no_life ... ok
[INFO] [stdout] test engine::stack::tests::move_zone_graveyard_to_battlefield_transitions_object ... ok
[INFO] [stdout] test engine::stack::tests::move_zone_noop_when_object_not_in_from_zone ... ok
[INFO] [stdout] test engine::stack::tests::move_zone_to_battlefield_fires_etb_triggers ... ok
[INFO] [stdout] test engine::stack::tests::pass_priority_once_shifts_priority_to_opponent ... ok
[INFO] [stdout] test engine::stack::tests::pass_priority_twice_empty_stack_advances_step ... ok
[INFO] [stdout] test engine::stack::tests::pass_priority_wrong_player_returns_error ... ok
[INFO] [stdout] test engine::stack::tests::pass_priority_resets_consecutive_passes_after_resolution ... ok
[INFO] [stdout] test engine::stack::tests::payment_step_substitutes_resolving_spells_x_value ... ok
[INFO] [stdout] test engine::stack::tests::resolve_top_spell_collects_etb_triggers_onto_stack ... ok
[INFO] [stdout] test engine::stack::tests::resolve_top_empty_stack_is_noop ... ok
[INFO] [stdout] test engine::stack::tests::resolve_top_triggered_ability_mills ... ok
[INFO] [stdout] test engine::stack::tests::sorcery_with_no_parseable_effects_just_goes_to_graveyard ... ok
[INFO] [stdout] test engine::stack::tests::targeted_activated_ability_fizzles_when_player_target_loses ... ok
[INFO] [stdout] test engine::equip::tests::equip_fails_not_your_priority ... ok
[INFO] [stdout] test engine::stack::tests::targeted_spell_fizzles_when_target_leaves_before_resolution ... ok
[INFO] [stdout] test engine::equip::tests::equip_resolution_sets_attached_to ... ok
[INFO] [stdout] test engine::stack::tests::resolve_top_spell_moves_card_to_battlefield ... ok
[INFO] [stdout] test engine::stack::tests::resolve_top_triggered_ability_draws_card ... ok
[INFO] [stdout] test engine::stack::tests::unimplemented_steps_are_skipped_silently ... ok
[INFO] [stdout] test engine::stack::tests::resolve_top_triggered_ability_gains_life ... ok
[INFO] [stdout] test engine::stack::tests::payment_step_sets_pending_payment ... ok
[INFO] [stdout] test engine::stack::tests::vanilla_deal_damage_to_creature_unchanged ... ok
[INFO] [stdout] test engine::stack::tests::vanilla_deal_damage_to_player_unchanged ... ok
[INFO] [stdout] test engine::stack::tests::wither_damage_to_creature_places_minus_one_counters ... ok
[INFO] [stdout] test engine::stack::tests::pass_priority_twice_resolves_top_spell ... ok
[INFO] [stdout] test engine::state_based_actions::tests::aura_attached_to_nonexistent_permanent_goes_to_graveyard ... ok
[INFO] [stdout] test engine::state_based_actions::tests::aura_not_attached_to_anything_goes_to_graveyard ... ok
[INFO] [stdout] test engine::state_based_actions::tests::aura_with_protected_quality_goes_to_graveyard_via_sba ... ok
[INFO] [stdout] test engine::state_based_actions::tests::check_and_apply_sbas_no_dies_trigger_when_creature_survives ... ok
[INFO] [stdout] test engine::state_based_actions::tests::anthem_prevents_zero_toughness_death ... ok
[INFO] [stdout] test engine::state_based_actions::tests::check_and_apply_sbas_returns_dies_trigger_when_creature_dies ... ok
[INFO] [stdout] test engine::state_based_actions::tests::creature_with_lethal_damage_goes_to_graveyard ... ok
[INFO] [stdout] test engine::state_based_actions::tests::deathtouch_damage_kills_non_indestructible_creature ... ok
[INFO] [stdout] test engine::stack::tests::wither_damage_to_player_is_regular_life_loss ... ok
[INFO] [stdout] test engine::state_based_actions::tests::aura_attached_to_valid_creature_survives ... ok
[INFO] [stdout] test engine::stack::tests::wither_and_deathtouch_combined_on_creature ... ok
[INFO] [stdout] test engine::state_based_actions::tests::sba_removes_min_of_unequal_counter_counts ... ok
[INFO] [stdout] test engine::state_based_actions::tests::equipment_attached_to_creature_stays_attached ... ok
[INFO] [stdout] test engine::state_based_actions::tests::player_at_zero_life_loses ... ok
[INFO] [stdout] test engine::state_based_actions::tests::ten_poison_counters_causes_loss ... ok
[INFO] [stdout] test engine::state_based_actions::tests::undying_creature_returns_with_plus_counter_after_dying ... ok
[INFO] [stdout] test engine::state_based_actions::tests::equipment_attached_to_non_creature_becomes_detached ... ok
[INFO] [stdout] test engine::state_based_actions::tests::multiple_dying_creatures_all_go_to_graveyard ... ok
[INFO] [stdout] test engine::state_based_actions::tests::nine_poison_counters_does_not_cause_loss ... ok
[INFO] [stdout] test engine::state_based_actions::tests::persist_does_not_trigger_when_minus_counter_present ... ok
[INFO] [stdout] test engine::state_based_actions::tests::sba_cancels_equal_plus_and_minus_one_counters ... ok
[INFO] [stdout] test engine::state_based_actions::tests::player_at_negative_life_loses ... ok
[INFO] [stdout] test engine::state_based_actions::tests::sba_does_not_cancel_mismatched_pt_modifier_counters ... ok
[INFO] [stdout] test engine::state_based_actions::tests::equipment_on_protected_creature_detaches_via_sba ... ok
[INFO] [stdout] test engine::state_based_actions::tests::indestructible_survives_deathtouch_damage ... ok
[INFO] [stdout] test engine::state_based_actions::tests::indestructible_survives_lethal_damage ... ok
[INFO] [stdout] test engine::state_based_actions::tests::sba_counter_cancellation_and_toughness_zero_chain ... ok
[INFO] [stdout] test engine::state_based_actions::tests::undying_does_not_trigger_when_plus_counter_present ... ok
[INFO] [stdout] test engine::state_based_actions::tests::creature_below_lethal_damage_survives ... ok
[INFO] [stdout] test engine::state_based_actions::tests::persist_creature_returns_with_minus_counter_after_dying ... ok
[INFO] [stdout] test engine::targeting::tests::creature_on_battlefield_is_legal_target_for_creature_filter ... ok
[INFO] [stdout] test engine::targeting::tests::any_filter_includes_creatures_and_players ... ok
[INFO] [stdout] test engine::targeting::tests::creature_spell_not_legal_for_noncreature_filter ... ok
[INFO] [stdout] test engine::targeting::tests::battlefield_object_not_legal_for_spell_filter ... ok
[INFO] [stdout] test engine::targeting::tests::creature_with_hexproof_is_legal_target_for_controller ... ok
[INFO] [stdout] test engine::targeting::tests::creature_with_hexproof_is_not_legal_target_for_opponent ... ok
[INFO] [stdout] test engine::targeting::tests::creature_with_shroud_is_not_legal_target_for_anyone ... ok
[INFO] [stdout] test engine::targeting::tests::creature_filter_excludes_players ... ok
[INFO] [stdout] test engine::targeting::tests::hexproof_from_blue_allows_red_spell ... ok
[INFO] [stdout] test engine::targeting::tests::hexproof_from_blue_blocks_blue_spell_from_opponent ... ok
[INFO] [stdout] test engine::targeting::tests::hexproof_from_blue_allows_controller_targeting ... ok
[INFO] [stdout] test engine::targeting::tests::legal_targets_spell_filter_excludes_creature_spell ... ok
[INFO] [stdout] test engine::targeting::tests::player_filter_excludes_creatures ... ok
[INFO] [stdout] test engine::targeting::tests::legal_targets_spell_any_returns_matching_stack_spells ... ok
[INFO] [stdout] test engine::targeting::tests::instant_spell_legal_for_noncreature_filter ... ok
[INFO] [stdout] test engine::targeting::tests::protection_from_blue_allows_red_spell ... ok
[INFO] [stdout] test engine::targeting::tests::protection_from_artifact_blocks_artifact_source ... ok
[INFO] [stdout] test engine::targeting::tests::active_player_is_legal_player_target ... ok
[INFO] [stdout] test engine::targeting::tests::protection_from_blue_blocks_blue_spell ... ok
[INFO] [stdout] test engine::targeting::tests::spell_on_stack_is_legal_for_spell_any ... ok
[INFO] [stdout] test engine::targeting::tests::targets_still_legal_false_after_spell_countered ... ok
[INFO] [stdout] test engine::targeting::tests::targets_still_legal_false_for_player_who_lost ... ok
[INFO] [stdout] test engine::targeting::tests::targets_still_legal_false_when_creature_off_battlefield ... ok
[INFO] [stdout] test engine::targeting::tests::targets_still_legal_true_for_empty_slice ... ok
[INFO] [stdout] test engine::targeting::tests::legal_targets_spell_filter_excludes_triggered_abilities ... ok
[INFO] [stdout] test engine::targeting::tests::targets_still_legal_true_for_player_alive ... ok
[INFO] [stdout] test engine::targeting::tests::nonexistent_object_is_not_legal_target ... ok
[INFO] [stdout] test engine::targeting::tests::triggered_ability_not_legal_spell_target ... ok
[INFO] [stdout] test engine::targeting::tests::targets_still_legal_true_for_spell_on_stack ... ok
[INFO] [stdout] test engine::tests::anthem_does_not_apply_to_non_creature ... ok
[INFO] [stdout] test engine::targeting::tests::object_not_on_battlefield_is_not_legal_target ... ok
[INFO] [stdout] test engine::tests::has_protection_from_color_returns_true_for_matching_color ... ok
[INFO] [stdout] test engine::tests::aura_grants_pt_to_enchanted_creature ... ok
[INFO] [stdout] test engine::tests::has_protection_from_everything_always_true ... ok
[INFO] [stdout] test engine::triggered::tests::collect_attack_triggers_two_exalted_permanents_give_two_triggers ... ok
[INFO] [stdout] test engine::triggered::tests::collect_etb_assigns_unique_stack_ids ... ok
[INFO] [stdout] test engine::tests::two_anthems_stack ... ok
[INFO] [stdout] test engine::triggered::tests::battle_cry_boosts_other_attackers_not_self ... ok
[INFO] [stdout] test engine::tests::equipment_grants_pt_to_attached_creature ... ok
[INFO] [stdout] test engine::tests::anthem_does_not_apply_to_opponent_creature ... ok
[INFO] [stdout] test engine::triggered::tests::bushido_trigger_fires_on_block ... ok
[INFO] [stdout] test engine::triggered::tests::bushido_trigger_silent_when_attacker_unblocked ... ok
[INFO] [stdout] test engine::tests::bonus_drops_to_zero_when_anthem_leaves_battlefield ... ok
[INFO] [stdout] test engine::targeting::tests::targets_still_legal_true_when_creature_on_battlefield ... ok
[INFO] [stdout] test engine::tests::detached_equipment_does_not_grant_pt ... ok
[INFO] [stdout] test engine::tests::anthem_grants_bonus_to_same_controller_creature ... ok
[INFO] [stdout] test engine::tests::no_anthem_means_zero_bonus ... ok
[INFO] [stdout] test engine::triggered::tests::collect_etb_draw_trigger_returns_stack_object ... ok
[INFO] [stdout] test engine::tests::object_ids_filter_restricts_to_specific_id ... ok
[INFO] [stdout] test engine::triggered::tests::collect_targeted_by_does_not_trigger_for_own_permanent ... ok
[INFO] [stdout] test engine::triggered::tests::collect_triggers_for_event_etb_fires_draw_trigger ... ok
[INFO] [stdout] test engine::triggered::tests::collect_triggers_for_event_etb_does_not_fire_for_other_events ... ok
[INFO] [stdout] test engine::triggered::tests::collect_triggers_for_event_evolve_fires_on_etb_with_greater_power ... ok
[INFO] [stdout] test engine::triggered::tests::deals_combat_damage_any_trigger_fires_for_player_and_creature_events ... ok
[INFO] [stdout] test engine::triggered::tests::deals_combat_damage_to_creature_trigger_fires_when_blocking ... ok
[INFO] [stdout] test engine::triggered::tests::deals_combat_damage_to_player_trigger_silent_for_creature_damage_event ... ok
[INFO] [stdout] test engine::triggered::tests::collect_etb_gain_life_trigger_returns_stack_object ... ok
[INFO] [stdout] test engine::triggered::tests::evolve_does_not_trigger_for_opponent_creature_etb ... ok
[INFO] [stdout] test engine::triggered::tests::evolve_does_not_trigger_on_itself ... ok
[INFO] [stdout] test engine::triggered::tests::evolve_triggers_when_creature_with_greater_power_enters ... ok
[INFO] [stdout] test engine::triggered::tests::evolve_does_not_trigger_when_equal_power_and_toughness_enters ... ok
[INFO] [stdout] test engine::triggered::tests::evolve_triggers_when_creature_with_greater_toughness_enters ... ok
[INFO] [stdout] test engine::triggered::tests::exalted_trigger_silent_for_multiple_attackers ... ok
[INFO] [stdout] test engine::triggered::tests::exalted_trigger_fires_for_single_attacker ... ok
[INFO] [stdout] test engine::triggered::tests::flanking_trigger_fires_when_blocker_lacks_flanking ... ok
[INFO] [stdout] test engine::triggered::tests::flanking_trigger_suppressed_when_blocker_has_flanking ... ok
[INFO] [stdout] test engine::triggered::tests::melee_trigger_fires_on_attack ... ok
[INFO] [stdout] test engine::triggered::tests::persist_trigger_fires_on_death_when_no_minus_counter ... ok
[INFO] [stdout] test engine::triggered::tests::persist_trigger_suppressed_when_minus_counter_present ... ok
[INFO] [stdout] test engine::triggered::tests::prowess_trigger_fires_on_noncreature_spell ... ok
[INFO] [stdout] test engine::triggered::tests::prowess_trigger_silent_on_creature_spell ... ok
[INFO] [stdout] test engine::triggered::tests::subject_lacks_counter_condition_not_satisfied_when_counter_present ... ok
[INFO] [stdout] test engine::triggered::tests::subject_lacks_counter_condition_satisfied_when_no_counter ... ok
[INFO] [stdout] test engine::triggered::tests::training_does_not_trigger_when_attacking_alone ... ok
[INFO] [stdout] test engine::triggered::tests::training_does_not_trigger_when_no_ally_with_greater_power ... ok
[INFO] [stdout] test engine::triggered::tests::training_trigger_targets_training_creature_itself ... ok
[INFO] [stdout] test engine::triggered::tests::training_triggers_when_attacking_with_higher_power_ally ... ok
[INFO] [stdout] test engine::triggered::tests::undying_trigger_fires_on_death_when_no_plus_counter ... ok
[INFO] [stdout] test engine::triggered::tests::undying_trigger_suppressed_when_plus_counter_present ... ok
[INFO] [stdout] test engine::triggered::tests::ward_trigger_fires_for_opponent_targeting ... ok
[INFO] [stdout] test engine::turn::tests::advance_from_end_of_combat_clears_combat_state ... ok
[INFO] [stdout] test engine::turn::tests::advance_step_consumes_extra_steps_before_static_sequence ... ok
[INFO] [stdout] test engine::turn::tests::advance_step_drains_all_mana_pools ... ok
[INFO] [stdout] test engine::turn::tests::advance_step_from_da_with_no_attackers_goes_to_eoc ... ok
[INFO] [stdout] test engine::turn::tests::advance_step_resets_priority_to_active_player ... ok
[INFO] [stdout] test engine::turn::tests::advance_step_sequences_correctly ... ok
[INFO] [stdout] test engine::turn::tests::advance_step_from_da_with_attackers_goes_to_db ... ok
[INFO] [stdout] test engine::turn::tests::drawing_from_empty_library_causes_loss ... ok
[INFO] [stdout] test engine::turn::tests::cleanup_step_clears_pt_boost_until_eot ... ok
[INFO] [stdout] test engine::turn::tests::apply_step_start_resolves_combat_damage ... ok
[INFO] [stdout] test engine::turn::tests::draw_card_fires_draws_card_event_and_collects_trigger ... ok
[INFO] [stdout] test engine::turn::tests::draw_card_function_works_directly ... ok
[INFO] [stdout] test engine::turn::tests::draw_event_does_not_fire_non_draw_triggers ... ok
[INFO] [stdout] test engine::turn::tests::cleanup_step_removes_damage_from_creatures ... ok
[INFO] [stdout] test engine::turn::tests::draw_step_moves_top_card_to_hand ... ok
[INFO] [stdout] test engine::turn::tests::non_decayed_attacker_not_sacrificed_at_end_of_combat ... ok
[INFO] [stdout] test engine::turn::tests::phase_step_event_does_not_fire_for_non_active_player ... ok
[INFO] [stdout] test engine::turn::tests::decayed_attacker_sacrificed_at_end_of_combat ... ok
[INFO] [stdout] test engine::triggered::tests::collect_etb_no_triggers_returns_empty ... ok
[INFO] [stdout] test parser::oracle::tests::ability_word_line_splits_at_em_dash ... ok
[INFO] [stdout] test parser::oracle::tests::activated_with_unknown_effect_emits_parsed_unimplemented_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::all_implemented_keywords_parse ... ok
[INFO] [stdout] test parser::oracle::tests::ability_word_emits_ability_word_and_unparsed_annotations ... ok
[INFO] [stdout] test engine::turn::tests::untap_step_creature_is_no_longer_summoning_sick ... ok
[INFO] [stdout] test engine::turn::tests::end_of_cleanup_rotates_active_player_and_resets_turn ... ok
[INFO] [stdout] test parser::oracle::tests::bare_unimplemented_keyword_emits_parsed_unimplemented ... ok
[INFO] [stdout] test engine::turn::tests::untap_step_untaps_active_player_permanents ... ok
[INFO] [stdout] test parser::oracle::tests::battle_cry_parses_as_static_ability ... ok
[INFO] [stdout] test engine::turn::tests::advance_step_clears_mana_checkpoint ... ok
[INFO] [stdout] test engine::turn::tests::untap_step_does_not_untap_opponents_permanents ... ok
[INFO] [stdout] test engine::turn::tests::phase_step_event_collects_upkeep_trigger ... ok
[INFO] [stdout] test parser::oracle::tests::battlegrowth_put_counter_on_target_creature ... ok
[INFO] [stdout] test parser::oracle::tests::blank_lines_skipped ... ok
[INFO] [stdout] test parser::oracle::tests::brainstorm_then_split ... ok
[INFO] [stdout] test parser::oracle::tests::clean_activated_ability_emits_active_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::color_anthem_parses_as_continuous_effect ... ok
[INFO] [stdout] test parser::oracle::tests::comma_separated_keywords ... ok
[INFO] [stdout] test parser::oracle::tests::condescend_parses_unless_x_with_trailing_scry ... ok
[INFO] [stdout] test parser::oracle::tests::continuous_pt_effect_emits_active_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::counterspell_parses_to_counter_any_spell ... ok
[INFO] [stdout] test parser::oracle::tests::cumulative_upkeep_emits_parsed_unimplemented ... ok
[INFO] [stdout] test parser::oracle::tests::disdainful_stroke_parses_min_mana_value ... ok
[INFO] [stdout] test parser::oracle::tests::dispel_parses_to_counter_instant_or_sorcery_spell ... ok
[INFO] [stdout] test parser::oracle::tests::em_dash_cr702_keyword_emits_parsed_unimplemented_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::em_dash_inside_parens_not_split ... ok
[INFO] [stdout] test parser::oracle::tests::em_dash_keyword_emits_whole_paragraph_as_parsed_unimplemented ... ok
[INFO] [stdout] test parser::oracle::tests::empty_oracle_text_returns_empty ... ok
[INFO] [stdout] test parser::oracle::tests::empty_text_returns_empty_vec ... ok
[INFO] [stdout] test parser::oracle::tests::essence_scatter_parses_to_counter_creature_spell ... ok
[INFO] [stdout] test parser::oracle::tests::etb_battlefield_form_parses_as_triggered ... ok
[INFO] [stdout] test parser::oracle::tests::etb_creature_form_parses_as_triggered ... ok
[INFO] [stdout] test parser::oracle::tests::etb_card_name_subject_parses_as_triggered ... ok
[INFO] [stdout] test parser::oracle::tests::etb_multistep_effect_parses_as_triggered ... ok
[INFO] [stdout] test parser::oracle::tests::etb_trigger_emits_active_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::etb_self_draw_parses_as_triggered ... ok
[INFO] [stdout] test parser::oracle::tests::etb_unknown_effect_becomes_parsed_unimplemented ... ok
[INFO] [stdout] test parser::oracle::tests::etb_with_unknown_effect_emits_parsed_unimplemented_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::fear_parses_as_static_ability ... ok
[INFO] [stdout] test parser::oracle::tests::find_colon_none_for_no_colon ... ok
[INFO] [stdout] test parser::oracle::tests::find_colon_at_depth_zero_comma_cost ... ok
[INFO] [stdout] test parser::oracle::tests::find_colon_skips_inside_parens ... ok
[INFO] [stdout] test parser::oracle::tests::flash_parses_as_static_ability ... ok
[INFO] [stdout] test parser::oracle::tests::find_colon_skips_inside_braces ... ok
[INFO] [stdout] test parser::oracle::tests::flying_emits_active_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::flashfreeze_parses_color_filter ... ok
[INFO] [stdout] test parser::oracle::tests::glorious_anthem_parses_as_continuous_effect ... ok
[INFO] [stdout] test parser::oracle::tests::fully_parsed_spans_emit_active_annotations ... ok
[INFO] [stdout] test parser::oracle::tests::hexproof_from_artifacts_parses ... ok
[INFO] [stdout] test parser::oracle::tests::implemented_spell_step_does_not_emit_parsed_unimplemented_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::instant_draw_one_card ... ok
[INFO] [stdout] test parser::oracle::tests::hexproof_from_black_parses ... ok
[INFO] [stdout] test parser::oracle::tests::keyword_with_reminder_text ... ok
[INFO] [stdout] test parser::oracle::tests::keyword_and_ability_word_on_separate_lines ... ok
[INFO] [stdout] test parser::oracle::tests::landwalk_variants_parse_as_static_ability ... ok
[INFO] [stdout] test parser::oracle::tests::life_payment_counter_parses_unless_life ... ok
[INFO] [stdout] test parser::oracle::tests::max_mana_value_spell_parses_correctly ... ok
[INFO] [stdout] test parser::oracle::tests::mixed_spell_text_emits_annotation_only_for_unimplemented_part ... ok
[INFO] [stdout] test parser::oracle::tests::mountaincycling_stays_parsed_unimplemented ... ok
[INFO] [stdout] test parser::oracle::tests::multiline_keywords ... ok
[INFO] [stdout] test parser::oracle::tests::negate_parses_to_counter_noncreature_spell ... ok
[INFO] [stdout] test parser::oracle::tests::one_draw_a_card_parses_as_activated ... ok
[INFO] [stdout] test parser::oracle::tests::nonbasic_landwalk_parses_as_nonbasic ... ok
[INFO] [stdout] test parser::oracle::tests::opt_period_then_draw ... ok
[INFO] [stdout] test parser::oracle::tests::parameterised_keyword_emits_parsed_unimplemented ... ok
[INFO] [stdout] test parser::oracle::tests::parse_ability_effect_add_mana ... ok
[INFO] [stdout] test parser::oracle::tests::parse_ability_effect_draw_a_card ... ok
[INFO] [stdout] test parser::oracle::tests::parse_ability_effect_gain_life ... ok
[INFO] [stdout] test parser::oracle::tests::parse_ability_effect_mill_two ... ok
[INFO] [stdout] test parser::oracle::tests::intimidate_parses_as_static_ability ... ok
[INFO] [stdout] test parser::oracle::tests::parse_ability_effect_multi_step ... ok
[INFO] [stdout] test parser::oracle::tests::islandwalk_parses_as_landwalk ... ok
[INFO] [stdout] test parser::oracle::tests::parse_activation_cost_mana_and_tap ... ok
[INFO] [stdout] test parser::oracle::tests::parse_activation_cost_tap_only ... ok
[INFO] [stdout] test parser::oracle::tests::parse_ability_effect_unknown_returns_none ... ok
[INFO] [stdout] test parser::oracle::tests::mana_leak_parses_unless_mana ... ok
[INFO] [stdout] test parser::oracle::tests::parse_bushido_n_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::parse_activation_cost_unrecognised_becomes_unimplemented ... ok
[INFO] [stdout] test parser::oracle::tests::parse_cycling_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::parse_cycling_colored_cost ... ok
[INFO] [stdout] test parser::oracle::tests::parse_cycling_with_reminder_text ... ok
[INFO] [stdout] test parser::oracle::tests::parse_draw_a_card_spell_is_untargeted ... ok
[INFO] [stdout] test parser::oracle::tests::parse_multikicker_mana_cost ... ok
[INFO] [stdout] test parser::oracle::tests::parse_number_word_digits_and_words ... ok
[INFO] [stdout] test parser::oracle::tests::parse_prowess_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::parse_evoke_mana_cost ... ok
[INFO] [stdout] test parser::oracle::tests::parse_toxic_n_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::parse_evolve_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::parsed_keyword_emits_active_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::parse_shroud_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::parse_exalted_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::parse_training_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::parse_flanking_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::protection_from_artifacts_parses_as_protection ... ok
[INFO] [stdout] test parser::oracle::tests::protection_from_artifacts_parses ... ok
[INFO] [stdout] test parser::oracle::tests::parse_giant_growth_effect ... ok
[INFO] [stdout] test parser::oracle::tests::parse_hexproof_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::protection_from_vampire_creatures_parses ... ok
[INFO] [stdout] test parser::oracle::tests::protection_from_everything_parses ... ok
[INFO] [stdout] test parser::oracle::tests::put_minus_counter_on_target_creature ... ok
[INFO] [stdout] test parser::oracle::tests::reminder_text_colon_not_treated_as_activated ... ok
[INFO] [stdout] test parser::oracle::tests::parse_infect_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::quench_parses_unless_two_mana ... ok
[INFO] [stdout] test parser::oracle::tests::reminder_text_only ... ok
[INFO] [stdout] test parser::oracle::tests::parse_kicker_malformed_cost_falls_back_to_unimplemented ... ok
[INFO] [stdout] test parser::oracle::tests::parse_kicker_mana_cost ... ok
[INFO] [stdout] test parser::oracle::tests::parse_lightning_bolt_effect ... ok
[INFO] [stdout] test parser::oracle::tests::parse_melee_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::parse_wither_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::parsed_unimplemented_keyword_emits_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::ponder_multi_sentence_mixed ... ok
[INFO] [stdout] test parser::oracle::tests::protection_from_blue_parses_as_protection ... ok
[INFO] [stdout] test parser::oracle::tests::put_two_counters_on_target_creature ... ok
[INFO] [stdout] test parser::oracle::tests::serum_visions_draw_then_scry ... ok
[INFO] [stdout] test parser::oracle::tests::reminder_text_emits_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::sacrifice_cost_becomes_unimplemented_in_cost_activated_parsed ... ok
[INFO] [stdout] test parser::oracle::tests::parse_dash_mana_cost ... ok
[INFO] [stdout] test parser::oracle::tests::single_color_filter_parses_correctly ... ok
[INFO] [stdout] test parser::oracle::tests::spell_annotations_have_no_duplicate_ranges ... ok
[INFO] [stdout] test parser::oracle::tests::subtype_anthem_parses_as_continuous_effect ... ok
[INFO] [stdout] test parser::oracle::tests::swampwalk_parses_as_landwalk ... ok
[INFO] [stdout] test parser::oracle::tests::tap_mill_two_parses_as_activated ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_cost_colorless_hybrid ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_cost_generic_and_color ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_cost_phyrexian ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_cost_hybrid_phyrexian ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_cost_plain_text_is_none ... ok
[INFO] [stdout] test parser::oracle::tests::tap_add_green_parses_as_activated ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_cost_non_symbol_text_is_none ... ok
[INFO] [stdout] test parser::oracle::tests::single_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_cost_generic_hybrid ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_cost_single_color ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_cost_snow ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_cost_hybrid ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_cost_x ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_pool_green ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_pool_two_colors ... ok
[INFO] [stdout] test parser::oracle::tests::two_word_keyword ... ok
[INFO] [stdout] test parser::oracle::tests::typecycling_with_space_emits_parsed_unimplemented ... ok
[INFO] [stdout] test parser::oracle::tests::two_tap_add_two_green_parses_as_activated ... ok
[INFO] [stdout] test parser::oracle::tests::unimplemented_activation_cost_emits_parsed_unimplemented_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::unimplemented_spell_step_emits_parsed_unimplemented_annotation ... ok
[INFO] [stdout] test parser::oracle::tests::unknown_effect_becomes_parsed_unimplemented ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_pool_generic_is_none ... ok
[INFO] [stdout] test parser::oracle::tests::ward_mana_parses_as_triggered_ability ... ok
[INFO] [stdout] test parser::oracle::tests::try_parse_mana_cost_tap_symbol_is_none ... ok
[INFO] [stdout] test parser::oracle::tests::ward_life_parses_as_triggered_ability ... ok
[INFO] [stdout] test parser::oracle::tests::unparsed_text_emits_annotation ... ok
[INFO] [stdout] test types::ability::tests::activated_ability_construction ... ok
[INFO] [stdout] test types::ability::tests::continuous_effect_roundtrips_through_rule ... ok
[INFO] [stdout] test types::ability::tests::annotation_kind_serialises_to_snake_case ... ok
[INFO] [stdout] test types::ability::tests::controller_filter_default_is_any ... ok
[INFO] [stdout] test types::ability::tests::cost_component_unimplemented_round_trips ... ok
[INFO] [stdout] test types::ability::tests::cost_type_alias_is_vec_cost_component ... ok
[INFO] [stdout] test types::ability::tests::display_name_canonical_casing ... ok
[INFO] [stdout] test types::ability::tests::display_name_counter_keywords ... ok
[INFO] [stdout] test types::ability::tests::display_name_new_keywords ... ok
[INFO] [stdout] test types::ability::tests::display_name_persist_undying ... ok
[INFO] [stdout] test types::ability::tests::hexproof_from_color_display_name ... ok
[INFO] [stdout] test types::ability::tests::permanent_filter_default_has_empty_object_ids ... ok
[INFO] [stdout] test types::ability::tests::new_static_ability_display_names ... ok
[INFO] [stdout] test types::ability::tests::protection_from_artifact_display_name ... ok
[INFO] [stdout] test types::ability::tests::protection_from_color_display_name_uses_quality ... ok
[INFO] [stdout] test types::ability::tests::rule_equip_construction ... ok
[INFO] [stdout] test types::ability::tests::protection_from_everything_display_name ... ok
[INFO] [stdout] test types::ability::tests::source_matches_quality_card_type ... ok
[INFO] [stdout] test types::ability::tests::rule_aura_construction ... ok
[INFO] [stdout] test types::ability::tests::source_matches_quality_color ... ok
[INFO] [stdout] test types::ability::tests::rules_text_variants_are_comparable ... ok
[INFO] [stdout] test types::ability::tests::source_matches_quality_creature_type ... ok
[INFO] [stdout] test types::ability::tests::source_matches_quality_everything ... ok
[INFO] [stdout] test types::ability::tests::spell_filter_any_of_colors_must_match_at_least_one ... ok
[INFO] [stdout] test types::ability::tests::spell_filter_combined_mv_and_color ... ok
[INFO] [stdout] test types::ability::tests::spell_filter_creature_includes_creature_only ... ok
[INFO] [stdout] test types::ability::tests::spell_filter_instant_or_sorcery_matches_either ... ok
[INFO] [stdout] test types::ability::tests::spell_filter_max_mana_value_accepts_at_or_below ... ok
[INFO] [stdout] test types::ability::tests::spell_filter_min_mana_value_accepts_at_or_above ... ok
[INFO] [stdout] test types::ability::tests::spell_filter_noncreature_excludes_creature_spells ... ok
[INFO] [stdout] test types::ability::tests::subject_lacks_counter_construction ... ok
[INFO] [stdout] test types::ability::tests::text_annotation_construction ... ok
[INFO] [stdout] test types::ability::tests::trigger_subject_filter_default_is_empty ... ok
[INFO] [stdout] test types::ability::tests::trigger_subject_filter_is_self_matches_same_id ... ok
[INFO] [stdout] test types::ability::tests::trigger_target_mode_default_is_none ... ok
[INFO] [stdout] test types::counter::tests::counter_kind_works_as_hashmap_key ... ok
[INFO] [stdout] test types::counter::tests::named_counter_equality ... ok
[INFO] [stdout] test types::counter::tests::pt_modifier_equality ... ok
[INFO] [stdout] test types::ability::tests::spell_filter_any_matches_all_types ... ok
[INFO] [stdout] test types::effect::tests::attach_step_construction ... ok
[INFO] [stdout] test types::effect::tests::effect_target_object_serializes_and_deserializes ... ok
[INFO] [stdout] test types::card_object::tests::basic_land_gets_intrinsic_mana_ability ... ok
[INFO] [stdout] test types::effect::tests::effect_target_player_serializes_and_deserializes ... ok
[INFO] [stdout] test types::card_object::tests::non_land_gets_no_intrinsic_ability ... ok
[INFO] [stdout] test types::card_object::tests::has_keyword_returns_true_for_matching_ability ... ok
[INFO] [stdout] test types::game_state::tests::combat_state_empty_has_declared_flags_false ... ok
[INFO] [stdout] test types::effect::tests::move_zone_step_construction ... ok
[INFO] [stdout] test types::game_state::tests::first_strike_done_starts_false ... ok
[INFO] [stdout] test types::card_object::tests::mountain_gets_intrinsic_tap_for_red_mana ... ok
[INFO] [stdout] test types::game_state::tests::game_not_over_initially ... ok
[INFO] [stdout] test types::card_object::tests::dual_land_gets_two_intrinsic_mana_abilities ... ok
[INFO] [stdout] test types::game_state::tests::extra_steps_starts_empty ... ok
[INFO] [stdout] test types::card_object::tests::is_creature_and_is_land_are_correct ... ok
[INFO] [stdout] test types::effect::tests::payment_step_construction ... ok
[INFO] [stdout] test types::game_state::tests::new_game_starts_at_turn_1_untap ... ok
[INFO] [stdout] test types::effect::tests::effect_target_stack_object_serializes_and_deserializes ... ok
[INFO] [stdout] test types::game_state::tests::new_game_consecutive_passes_is_zero ... ok
[INFO] [stdout] test types::game_state::tests::new_game_stack_objects_is_empty ... ok
[INFO] [stdout] test types::game_state::tests::alloc_stack_id_increments ... ok
[INFO] [stdout] test types::game_state::tests::pending_payment_starts_none ... ok
[INFO] [stdout] test types::game_state::tests::winner_when_opponent_loses ... ok
[INFO] [stdout] test types::ids::tests::object_id_ordering ... ok
[INFO] [stdout] test types::ids::tests::object_id_serializes_as_inner_u64 ... ok
[INFO] [stdout] test types::mana::tests::mana_cost_display ... ok
[INFO] [stdout] test types::mana::tests::mana_pip_display ... ok
[INFO] [stdout] test types::mana::tests::mana_pool_add_and_total ... ok
[INFO] [stdout] test types::mana::tests::mana_pool_starts_empty ... ok
[INFO] [stdout] test types::ids::tests::object_id_equality ... ok
[INFO] [stdout] test types::mana::tests::mana_value_generic_and_color ... ok
[INFO] [stdout] test types::ids::tests::player_id_as_hash_key ... ok
[INFO] [stdout] test types::mana::tests::mana_value_x_counts_zero ... ok
[INFO] [stdout] test types::ids::tests::player_id_serializes_as_inner_u8 ... ok
[INFO] [stdout] test types::mana::tests::mana_value_generic_hybrid_uses_numeric_component ... ok
[INFO] [stdout] test types::mana::tests::payment_plan_default_is_zero_blood_no_x ... ok
[INFO] [stdout] test types::mana::tests::add_non_snow_does_not_affect_snow_shadow ... ok
[INFO] [stdout] test types::mana::tests::add_snow_increments_both_color_and_snow_shadow ... ok
[INFO] [stdout] test types::game_state::tests::opponent_of_returns_other_player ... ok
[INFO] [stdout] test types::permanent::tests::add_counters_accumulates ... ok
[INFO] [stdout] test types::permanent::tests::bushido_n_returns_none_for_vanilla_creature ... ok
[INFO] [stdout] test types::permanent::tests::counter_count_returns_zero_for_absent_key ... ok
[INFO] [stdout] test types::permanent::tests::attached_to_initialises_to_none ... ok
[INFO] [stdout] test types::permanent::tests::ability_cycling_roundtrips ... ok
[INFO] [stdout] test types::permanent::tests::creature_not_sick_on_controllers_next_turn ... ok
[INFO] [stdout] test types::permanent::tests::effective_power_includes_continuous_bonus ... ok
[INFO] [stdout] test types::permanent::tests::effective_power_unaffected_by_named_counters ... ok
[INFO] [stdout] test types::permanent::tests::bushido_n_returns_some_for_bushido_creature ... ok
[INFO] [stdout] test types::permanent::tests::creature_can_attack_after_sickness_cleared ... ok
[INFO] [stdout] test types::permanent::tests::damaged_by_deathtouch_initialises_false ... ok
[INFO] [stdout] test types::permanent::tests::non_creature_permanent_is_never_summoning_sick ... ok
[INFO] [stdout] test types::permanent::tests::creature_still_sick_during_opponents_turn ... ok
[INFO] [stdout] test types::permanent::tests::effective_power_includes_pt_modifier_counters ... ok
[INFO] [stdout] test types::permanent::tests::new_permanent_enters_summoning_sick ... ok
[INFO] [stdout] test types::game_state::tests::alloc_id_increments ... ok
[INFO] [stdout] test types::permanent::tests::effective_power_includes_eot_boost ... ok
[INFO] [stdout] test types::permanent::tests::pt_delta_default_is_zero ... ok
[INFO] [stdout] test types::permanent::tests::effective_toughness_includes_eot_boost ... ok
[INFO] [stdout] test types::permanent::tests::effective_power_with_negative_boost_does_not_panic ... ok
[INFO] [stdout] test types::permanent::tests::negative_pt_modifier_counters_reduce_power_and_toughness ... ok
[INFO] [stdout] test types::permanent::tests::tapped_creature_cannot_attack_or_block ... ok
[INFO] [stdout] test types::permanent::tests::toxic_n_returns_some_for_toxic_creature ... ok
[INFO] [stdout] test types::permanent::tests::toxic_n_sums_multiple_toxic_abilities ... ok
[INFO] [stdout] test types::player::tests::player_add_counters_accumulates ... ok
[INFO] [stdout] test types::player::tests::player_counter_count_returns_zero_for_absent_key ... ok
[INFO] [stdout] test types::permanent::tests::toxic_n_returns_none_for_vanilla_creature ... ok
[INFO] [stdout] test types::player::tests::player_starts_at_20_life ... ok
[INFO] [stdout] test types::permanent::tests::pt_boost_until_eot_initialises_to_zero ... ok
[INFO] [stdout] test types::permanent::tests::summoning_sick_creature_with_haste_can_attack ... ok
[INFO] [stdout] test types::zone::tests::zone_owner_is_copy ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 649 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/mecha_oracle-152545414e01317c)
[INFO] [stdout] 
[INFO] [stdout] running 68 tests
[INFO] [stdout] test serve::tests::activate_land_ability_adds_mana_to_pool ... ok
[INFO] [stdout] test serve::tests::advancing_from_end_step_auto_advances_to_next_upkeep ... ok
[INFO] [stdout] test serve::tests::advance_step_rejected_when_game_is_over ... ok
[INFO] [stdout] test serve::tests::aura_cast_actions_shown_for_aura_in_hand_with_legal_target ... ok
[INFO] [stdout] test serve::tests::build_game_state_deals_7_cards_each ... ok
[INFO] [stdout] test serve::tests::autoskips_declare_blockers_when_no_valid_blocker_for_any_attacker ... ok
[INFO] [stdout] test serve::tests::build_game_state_requires_two_decklists ... ok
[INFO] [stdout] test serve::tests::build_game_state_unknown_card_returns_error ... ok
[INFO] [stdout] test serve::tests::build_game_state_starts_at_pre_combat_main ... ok
[INFO] [stdout] test serve::tests::build_game_view_mana_cost_is_braced ... ok
[INFO] [stdout] test serve::tests::build_game_view_initial_life_and_step ... ok
[INFO] [stdout] test serve::tests::build_game_view_land_colors_derived_from_subtype ... ok
[INFO] [stdout] test serve::tests::build_game_view_hand_counts ... ok
[INFO] [stdout] test serve::tests::can_block_true_only_for_defending_player_at_declare_blockers ... ok
[INFO] [stdout] test serve::tests::advance_step_blocked_before_attackers_declared ... ok
[INFO] [stdout] test serve::tests::can_attack_true_only_for_active_player_at_declare_attackers ... ok
[INFO] [stdout] test serve::tests::card_view_attached_to_is_none_when_not_attached ... ok
[INFO] [stdout] test serve::tests::counter_to_view_minus_modifier ... ok
[INFO] [stdout] test serve::tests::counter_to_view_mixed_modifier ... ok
[INFO] [stdout] test serve::tests::counter_to_view_named_already_capitalized ... ok
[INFO] [stdout] test serve::tests::can_cast_false_for_creature_when_not_active_player ... ok
[INFO] [stdout] test serve::tests::counter_to_view_plus_modifier ... ok
[INFO] [stdout] test serve::tests::counter_to_view_poison ... ok
[INFO] [stdout] test serve::tests::card_view_attached_to_shows_host_id_when_attached ... ok
[INFO] [stdout] test serve::tests::display_colors_colorless_nonland_is_empty ... ok
[INFO] [stdout] test serve::tests::display_colors_land_from_oracle_text_mana_symbol ... ok
[INFO] [stdout] test serve::tests::display_colors_land_from_single_basic_subtype ... ok
[INFO] [stdout] test serve::tests::card_view_includes_counters_for_permanent ... ok
[INFO] [stdout] test serve::tests::display_colors_land_unions_dual_subtypes_in_wubrg_order ... ok
[INFO] [stdout] test serve::tests::display_colors_land_with_no_recognized_color_is_empty ... ok
[INFO] [stdout] test serve::tests::can_cast_true_for_instant_in_hand_with_mana_and_priority ... ok
[INFO] [stdout] test serve::tests::counter_to_view_named_capitalizes_first_letter ... ok
[INFO] [stdout] test serve::tests::card_view_empty_counters_when_none ... ok
[INFO] [stdout] test serve::tests::dryad_arbor_appears_in_creatures_not_lands ... ok
[INFO] [stdout] test serve::tests::dispatch_activate_equip_routes_to_equip_engine ... ok
[INFO] [stdout] test serve::tests::dual_land_shows_two_mana_actions_in_view ... ok
[INFO] [stdout] test serve::tests::dual_land_activate_white_ability_adds_white_mana ... ok
[INFO] [stdout] test serve::tests::advance_step_blocked_before_blockers_declared ... ok
[INFO] [stdout] test serve::tests::equip_actions_not_shown_outside_main_phase ... ok
[INFO] [stdout] test serve::tests::hand_card_with_dash_generates_both_standard_and_dashed_actions ... ok
[INFO] [stdout] test serve::tests::hand_card_with_kicker_generates_both_standard_and_kicked_actions ... ok
[INFO] [stdout] test serve::tests::display_colors_uses_printed_colors_when_present ... ok
[INFO] [stdout] test serve::tests::display_colors_land_dedupes_subtype_and_text_match ... ok
[INFO] [stdout] test serve::tests::equip_actions_shown_for_equipment_on_battlefield_during_main_phase ... ok
[INFO] [stdout] test serve::tests::autoskips_declare_attackers_when_no_valid_attackers ... ok
[INFO] [stdout] test serve::tests::game_view_includes_combat_declared_flags ... ok
[INFO] [stdout] test serve::tests::format_type_line_with_subtype ... ok
[INFO] [stdout] test serve::tests::player_view_includes_poison_counters ... ok
[INFO] [stderr]      Running tests/cr_examples.rs (/opt/rustwide/target/release/deps/cr_examples-dc10db79c3bab559)
[INFO] [stdout] test serve::tests::nap_passing_priority_advances_step ... ok
[INFO] [stdout] test serve::tests::stack_item_view_spell_has_no_source_name ... ok
[INFO] [stdout] test serve::tests::blocker_ui_only_shows_valid_pairings ... ok
[INFO] [stdout] test serve::tests::target_display_name_resolves_each_target_kind ... ok
[INFO] [stdout] test tests::cli_serve_parses_deck_and_defaults ... ok
[INFO] [stdout] test serve::tests::ap_passing_priority_shifts_to_nap_without_advancing_step ... ok
[INFO] [stdout] test serve::tests::stack_item_view_includes_source_name_for_triggered_ability ... ok
[INFO] [stdout] test tests::cli_parse_coverage_subcommand ... ok
[INFO] [stdout] test serve::tests::aura_cast_actions_not_shown_when_no_legal_targets ... ok
[INFO] [stdout] test serve::tests::reset_mana_action_untaps_land_and_restores_pool ... ok
[INFO] [stdout] test tests::cli_serve_requires_deck_argument ... ok
[INFO] [stdout] test serve::tests::no_autoskip_declare_blockers_when_valid_blocker_exists ... ok
[INFO] [stdout] test serve::tests::stack_item_view_includes_source_colors_for_ability ... ok
[INFO] [stdout] test serve::tests::stack_item_view_includes_targets_and_source_name_for_ability ... ok
[INFO] [stdout] test serve::tests::no_autoskip_declare_attackers_when_valid_attacker_exists ... ok
[INFO] [stdout] test tests::cli_serve_shuffle_flag ... ok
[INFO] [stdout] test tests::cli_update_cards_subcommand ... ok
[INFO] [stdout] test tests::cli_verbose_is_global ... ok
[INFO] [stdout] test serve::tests::cycle_action_label_is_braced ... ok
[INFO] [stdout] test tests::parse_coverage_classification_clean_card ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 68 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 286 tests
[INFO] [stdout] test cr_101_2_ex1_cant_overrides_may_for_land_play ... ignored, requires: land-play permission/restriction layer system
[INFO] [stdout] test cr_101_4_ex1_each_player_sacrifices_active_player_chooses_first ... ignored, requires: APNAP simultaneous-choice resolution
[INFO] [stdout] test cr_106_5_ex1_meteor_crater_no_colored_permanents_produces_no_mana ... ignored, requires: custom mana-ability implementation (Meteor Crater)
[INFO] [stdout] test cr_106_6_ex1_doubling_cube_preserves_spending_restriction ... ignored, requires: mana-restriction tags and Doubling Cube ability
[INFO] [stdout] test cr_106_7_ex1_exotic_orchard_opponent_no_lands_produces_nothing ... ignored, requires: cross-player mana-production query ability (Exotic Orchard)
[INFO] [stdout] test cr_106_7_ex2_exotic_orchard_mutual_orchard_deadlock ... ignored, requires: cross-player mana-production query ability (Exotic Orchard)
[INFO] [stdout] test cr_106_7_ex3_exotic_orchard_with_forest_and_opponents_orchard ... ignored, requires: cross-player mana-production query ability (Exotic Orchard)
[INFO] [stdout] test cr_107_1b_ex2_negative_power_viridian_joiner_adds_zero_mana ... ignored, requires: dynamic-power mana ability (Viridian Joiner: add {G} equal to power)
[INFO] [stdout] test cr_107_1b_ex3_negative_power_chameleon_colossus_pump_stays_zero ... ignored, requires: self-referential X-equals-power activated ability (Chameleon Colossus)
[INFO] [stdout] test cr_107_4e_ex1_hybrid_gw_gw_payable_with_gg ... ok
[INFO] [stdout] test cr_107_1b_ex1_negative_power_from_boost ... ok
[INFO] [stdout] test cr_107_4e_ex2_hybrid_gw_gw_payable_with_gw ... ok
[INFO] [stdout] test cr_107_4e_ex3_hybrid_gw_gw_payable_with_ww ... ok
[INFO] [stdout] test cr_107_4f_ex1_phyrexian_wp_wp_paid_with_ww ... ok
[INFO] [stdout] test cr_107_4f_ex2_phyrexian_wp_wp_paid_with_w_and_2_life ... ok
[INFO] [stdout] test cr_110_5c_ex1_dimir_doppelganger_flip_card_copy ... ignored, requires: flip-card support and copy-effect engine
[INFO] [stdout] test cr_107_4f_ex3_phyrexian_wp_wp_paid_with_4_life ... ok
[INFO] [stdout] test cr_111_11_ex1_disa_tarmogoyf_token ... ignored, requires: token-from-oracle-reference engine (Tarmogoyf token)
[INFO] [stdout] test cr_111_12_ex1_mimic_vat_no_exiled_card_no_token ... ignored, requires: imprint/exile mechanic (Mimic Vat)
[INFO] [stdout] test cr_111_3_ex1_jade_mage_saproling_token_properties ... ignored, requires: token-creation engine
[INFO] [stdout] test cr_111_4_ex1_dwarf_berserker_token_name ... ignored, requires: token-creation engine with type-derived naming
[INFO] [stdout] test cr_111_4_ex2_boo_token_name_overrides_type ... ignored, requires: token-creation engine with explicit naming override
[INFO] [stdout] test cr_111_4_ex3_spitting_image_copy_token_name ... ignored, requires: token-creation engine and copy-effect engine
[INFO] [stdout] test cr_112_4_ex1_effect_changes_creature_color_on_entry ... ignored, requires: color-modification continuous-effect layer
[INFO] [stdout] test cr_113_12_ex1_muraganda_vanilla_with_aura_granting_ability ... ignored, requires: Muraganda Petroglyphs ability and static PT boost for vanilla creatures
[INFO] [stdout] test cr_113_12_ex2_muraganda_vanilla_with_color_change_aura_gets_boost ... ignored, requires: Muraganda Petroglyphs ability and colour-change Aura
[INFO] [stdout] test cr_113_2a_ex1_cant_block_is_an_ability ... ignored, requires: CantBlock static ability variant in the ability enum
[INFO] [stdout] test cr_113_6k_ex1_absolver_thrull_trigger_from_exile ... ignored, requires: triggered-ability-active-in-exile-zone support
[INFO] [stdout] test cr_113_6m_ex1_reassembling_skeleton_graveyard_only_activation ... ignored, requires: zone-restricted activated ability (graveyard-only activation)
[INFO] [stdout] test cr_115_1a_ex1_cycling_triggered_ability_is_targeted_card_is_not ... ignored, requires: cycling-triggered-ability targeting distinction
[INFO] [stdout] test cr_115_7e_ex1_arc_trail_targets_swapped_via_redirect ... ignored, requires: target-redirection spell effect (Redirect)
[INFO] [stdout] test cr_118_11_ex1_psychic_vortex_cumulative_upkeep_draw_replaced ... ignored, requires: cumulative-upkeep mechanic and draw-replacement effect
[INFO] [stdout] test cr_118_12_ex1_standstill_already_exiled_sacrifice_fails ... ignored, requires: inline-payment obligation (PendingPayment) with missing permanent
[INFO] [stdout] test cr_118_12_ex2_gather_specimens_dermoplasm_return_still_happens ... ignored, requires: Gather Specimens replacement effect and Dermoplasm morph ability
[INFO] [stdout] test cr_120_4d_ex1_boon_reflection_wither_lifelink_prevention ... ignored, requires: replacement-effect engine (Boon Reflection), wither, lifelink, prevention
[INFO] [stdout] test cr_120_4d_ex2_worship_awe_strike_prevention_life_gain ... ignored, requires: replacement-effect engine (Worship, Awe Strike) and damage processing
[INFO] [stdout] test cr_120_5_ex1_lightning_bolt_damage_sba_destroys_not_bolt ... ignored, requires: damage-attribution tracking (SBA destruction vs direct spell destruction)
[INFO] [stdout] test cr_123_6b_ex1_name_sticker_position_choice ... ignored, requires: stickers mechanic (Unfinity/Acorn)
[INFO] [stdout] test cr_123_6c_ex1_name_sticker_adventure_exile_position_retained ... ignored, requires: stickers mechanic and adventure mechanic
[INFO] [stdout] test cr_123_6c_ex2_name_sticker_copy_effect_position ... ignored, requires: stickers mechanic and copy effects
[INFO] [stdout] test cr_123_6c_ex3_witness_protection_overrides_name_sticker ... ignored, requires: stickers mechanic and Witness Protection text-change effect
[INFO] [stdout] test cr_201_2b_ex1_lilianas_contract_face_down_has_no_name ... ignored, requires: face-down permanents with no name and Liliana's Contract upkeep trigger
[INFO] [stdout] test cr_201_4a_ex1_dispossess_choose_any_artifact_name ... ignored, requires: name-choice effect implementation (Dispossess)
[INFO] [stdout] test cr_201_5a_ex1_gutter_grime_token_refers_to_creating_enchantment ... ignored, requires: token-creation engine with source-tracking for self-referential ability
[INFO] [stdout] test cr_201_5b_ex1_quicksilver_elemental_copied_ability_self_reference ... ignored, requires: copy-ability mechanic (Quicksilver Elemental) and self-reference resolution
[INFO] [stdout] test cr_201_5b_ex2_glacial_ray_splice_reach_deals_damage ... ignored, requires: splice-onto-Arcane mechanic
[INFO] [stdout] test cr_201_5b_ex3_ever_changing_dane_self_reference_after_copy ... ignored, requires: copy-ability self-reference (The Ever-Changing 'Dane)
[INFO] [stdout] test cr_202_2a_ex1_two_w_is_white ... ok
[INFO] [stdout] test cr_202_2a_ex2_generic_only_is_colorless ... ok
[INFO] [stdout] test cr_202_2a_ex3_two_w_b_is_white_and_black ... ok
[INFO] [stdout] test cr_202_3b_ex1_huntmaster_two_rg_mana_value_4 ... ok
[INFO] [stdout] test cr_202_3b_ex2_no_mana_cost_has_mana_value_zero ... ok
[INFO] [stdout] test cr_202_3_ex1_three_uu_mana_value_5 ... ok
[INFO] [stdout] test cr_202_3b_ex3_back_face_copy_no_cost_mana_value_zero ... ok
[INFO] [stdout] test cr_202_3f_ex1_hybrid_1_wu_wu_mana_value_3 ... ok
[INFO] [stdout] test cr_202_3f_ex2_generic_hybrid_2b_2b_2b_mana_value_6 ... ok
[INFO] [stdout] test cr_205_1b_ex1_all_lands_1_1_creatures_retain_land_type ... ignored, requires: continuous-effect layer adding creature type to lands
[INFO] [stdout] test cr_205_1b_ex2_all_artifacts_1_1_artifact_creatures_preserve_enchantment ... ignored, requires: continuous-effect layer adding creature type to artifacts
[INFO] [stdout] test cr_202_3g_ex1_phyrexian_1_wp_wp_mana_value_3 ... ok
[INFO] [stdout] test cr_205_3b_ex1_basic_land_mountain_type_line ... ok
[INFO] [stdout] test cr_205_3e_ex1_merfolk_wizard_acceptable_human_soldier_not_two_words ... ignored, requires: creature-type legality check (whitelist of official creature types)
[INFO] [stdout] test cr_205_4b_ex1_all_lands_1_1_creature_card_type_structure ... ignored, requires: continuous-effect layer giving lands power/toughness
[INFO] [stdout] test cr_208_2a_ex1_lost_order_of_jarkeld_star_power_toughness ... ignored, requires: characteristic-defining ability (CDA) for * power/toughness
[INFO] [stdout] test cr_208_3a_ex1_veteran_motorist_pump_before_vehicle_pt ... ignored, requires: crew mechanic and vehicle card type with entering-crew effect
[INFO] [stdout] test cr_400_6_ex1_exquisite_archangel_replacement_simultaneous_sba ... ignored, requires: replacement-effect engine and simultaneous SBA interaction
[INFO] [stdout] test cr_500_10_ex1_obeka_adds_beginning_phases_skipping_untap_and_draw ... ignored, requires: extra-phase addition (Obeka, Splitter of Seconds) and step-skipping
[INFO] [stdout] test cr_508_1c_ex1_two_attack_if_able_creatures_with_restrictions ... ignored, requires: attack-requirement and attack-restriction interaction
[INFO] [stdout] test cr_508_1d_ex1_attacks_if_able_plus_menace_restriction ... ignored, requires: attack-requirement with menace-restriction interaction
[INFO] [stdout] test cr_508_2a_ex1_trigger_when_green_creature_attacks ... ignored, requires: triggered ability keyed on creature colour while attacking
[INFO] [stdout] test cr_305_5_ex1_basic_land_mountain_subtype ... ok
[INFO] [stdout] test cr_509_1b_ex1_flying_and_shadow_evasion_cumulative ... ok
[INFO] [stdout] test cr_302_3_ex1_goblin_wizard_subtypes ... ok
[INFO] [stdout] test cr_509_1c_ex1_blocks_if_able_and_menace_must_block_with_both ... ignored, requires: declare-blockers legality check with 'blocks if able' requirement
[INFO] [stdout] test cr_509_3f_ex1_becomes_blocked_trigger_condition ... ignored, requires: becomes-blocked triggered ability with condition filtering
[INFO] [stdout] test cr_510_1c_ex1_blocked_by_two_creatures_legal_damage_assignments ... ignored, requires: multi-blocker damage assignment validation
[INFO] [stdout] test cr_601_2c_ex1_tap_two_targets_must_be_distinct ... ignored, requires: targeting-distinctness rule for spells with multiple targets
[INFO] [stdout] test cr_601_2h_ex1_altars_reap_sacrifice_additional_cost ... ignored, requires: additional-cost (sacrifice) payment during casting
[INFO] [stdout] test cr_205_3c_ex1_dryad_arbor_land_and_creature ... ok
[INFO] [stdout] test cr_601_3a_ex1_void_winnower_restricts_even_mv_spells ... ignored, requires: casting-restriction continuous effect (Void Winnower)
[INFO] [stdout] test cr_601_3b_ex1_aura_spells_cast_as_if_they_had_flash ... ignored, requires: flash-granting effect for specific spell types
[INFO] [stdout] test cr_601_3e_ex1_garruk_horde_cast_from_top_of_library ... ignored, requires: cast-from-top-of-library permission effect
[INFO] [stdout] test cr_601_3e_ex2_melek_cast_instant_sorcery_from_top ... ignored, requires: cast-from-top-of-library for instant/sorcery
[INFO] [stdout] test cr_601_4_ex1_inscription_of_abundance_modal_with_kicker ... ignored, requires: modal spells and kicker mechanic
[INFO] [stdout] test cr_602_1a_ex1_activation_cost_pay_and_tap_any_order ... ignored, requires: multi-component activation cost with flexible ordering
[INFO] [stdout] test cr_603_10a_ex1_two_simultaneous_triggers_same_controller ... ignored, requires: multiple-simultaneous-triggers ordering (APNAP)
[INFO] [stdout] test cr_603_11_ex1_reveal_first_card_drawn_each_turn ... ignored, requires: reveal-first-draw-per-turn triggered ability across turns
[INFO] [stdout] test cr_603_12_ex1_heart_piercer_manticore_etb_sacrifice ... ignored, requires: ETB triggered ability with optional sacrifice cost (Heart-Piercer Manticore)
[INFO] [stdout] test cr_603_2c_ex1_trigger_when_land_becomes_tapped_for_mana ... ignored, requires: tap-for-mana triggered ability (TriggerEvent::LandTappedForMana)
[INFO] [stdout] test cr_603_2e_ex1_becomes_tapped_only_on_state_change ... ignored, requires: state-change trigger (untapped→tapped only, not tapped→tapped)
[INFO] [stdout] test cr_603_2g_ex1_damage_trigger_skipped_if_all_prevented ... ignored, requires: damage-prevention effect and trigger-cancellation on zero damage
[INFO] [stdout] test cr_603_4_ex1_felidar_sovereign_upkeep_trigger_check_life ... ignored, requires: upkeep-conditional win trigger (Felidar Sovereign)
[INFO] [stdout] test cr_603_6b_ex1_would_enter_trigger_produces_token_for_land ... ignored, requires: ETB replacement effect producing tokens (complex interaction)
[INFO] [stdout] test cr_603_7a_ex1_when_creature_leaves_battlefield_not_in_bf ... ignored, requires: leaves-battlefield trigger zone tracking
[INFO] [stdout] test cr_603_7a_ex2_becomes_untapped_trigger_requires_on_battlefield ... ignored, requires: zone-tracking for would-trigger-in-wrong-zone
[INFO] [stdout] test cr_603_7c_ex1_delayed_trigger_at_beginning_of_next_end_step ... ignored, requires: delayed-triggered-ability engine
[INFO] [stdout] test cr_603_8_ex1_no_cards_in_hand_draw_self_trigger ... ignored, requires: self-referential draw trigger keyed on hand-size state
[INFO] [stdout] test cr_605_2_ex1_mana_ability_g_for_each_creature_you_control ... ignored, requires: dynamic mana-production ability keyed on creature count
[INFO] [stdout] test cr_605_4a_ex1_trigger_on_any_player_tapping_land ... ignored, requires: triggered ability on mana tapping (mana ability distinction)
[INFO] [stdout] test cr_606_5_ex1_carth_the_lion_loyalty_cost_modification ... ignored, requires: loyalty-ability cost modification (Carth the Lion)
[INFO] [stdout] test cr_607_2i_ex1_stormscape_battlemage_kicker_modes ... ignored, requires: multi-kicker-mode ability resolution (Stormscape Battlemage)
[INFO] [stdout] test cr_607_4_ex1_paradise_plume_choice_linked_abilities ... ignored, requires: as-this-enters choice binding to linked ability
[INFO] [stdout] test cr_607_5_ex1_arc_slogger_activation_limit ... ignored, requires: activation-limit mechanic (Arc-Slogger exile 10 cards)
[INFO] [stdout] test cr_607_5a_ex1_voice_of_all_copy_choice_propagation ... ignored, requires: copy-effect engine and as-this-enters choice propagation
[INFO] [stdout] test cr_607_5a_ex2_vesuvan_doppelganger_copies_voice_of_all_independent_choice ... ignored, requires: copy-effect engine and as-this-enters independent choice
[INFO] [stdout] test cr_608_2b_ex1_sorins_thirst_simultaneous_damage_and_life_loss ... ignored, requires: spell-resolution multi-step effect (damage + controller gains life)
[INFO] [stdout] test cr_608_2b_ex2_plague_spores_illegal_target_on_resolution ... ignored, requires: target-validity check on resolution (CR 608.2b illegal-target handling)
[INFO] [stdout] test cr_608_2d_ex1_optional_sacrifice_during_resolution ... ignored, requires: optional-during-resolution sacrifice effect
[INFO] [stdout] test cr_608_2f_ex1_blatant_thievery_per_opponent_control_gain ... ignored, requires: per-opponent control-gaining spell (multiplayer)
[INFO] [stdout] test cr_608_2f_ex2_soulfire_eruption_any_number_of_targets ... ignored, requires: variable-target spell resolution (Soulfire Eruption)
[INFO] [stdout] test cr_608_2i_ex1_effect_continues_after_target_leaves_attacking ... ignored, requires: mid-resolution zone-change and effect continuation
[INFO] [stdout] test cr_608_2j_ex1_destroy_all_black_destroys_white_black_creature ... ignored, requires: colour-checking against permanent's colour (multi-colour destroy)
[INFO] [stdout] test cr_608_2k_ex1_wall_of_tears_returns_blocker ... ignored, requires: blocks-triggered ability returning blocking creature
[INFO] [stdout] test cr_608_3e_ex1_lands_cant_enter_battlefield_prevention ... ignored, requires: land-entry prevention continuous effect (Worms of the Earth)
[INFO] [stdout] test cr_609_2_ex1_all_lands_creatures_only_affects_battlefield ... ignored, requires: continuous-effect layer scope (battlefield only, not other zones)
[INFO] [stdout] test cr_609_3_ex1_discard_two_with_only_one_card_in_hand ... ignored, requires: discard-effect with insufficient hand size handling
[INFO] [stdout] test cr_609_4a_ex1_vedalken_orrery_flash_all_nonland_spells ... ignored, requires: flash-granting static ability from artifact (Vedalken Orrery)
[INFO] [stdout] test cr_610_3d_ex1_two_banisher_priests_destroyed_simultaneously ... ignored, requires: delayed-return from Banisher Priest exile and simultaneous destruction
[INFO] [stdout] test cr_611_2b_ex1_master_thief_gain_control_on_enter ... ignored, requires: gain-control continuous effect (until leaves battlefield)
[INFO] [stdout] test cr_611_2c_ex1_eot_pt_boost_applies_to_later_entrants ... ignored, requires: ongoing until-end-of-turn effect applying to creatures that enter later
[INFO] [stdout] test cr_611_2c_ex2_prevent_all_creature_damage_eot_effect ... ignored, requires: ongoing prevention effect for all creature damage that turn
[INFO] [stdout] test cr_611_2e_ex1_arbiter_of_the_ideal_manifest ... ignored, requires: manifest mechanic and top-of-library reveal
[INFO] [stderr]      Running tests/scripted_game.rs (/opt/rustwide/target/release/deps/scripted_game-1cd7164382002a30)
[INFO] [stdout] test cr_611_3b_ex1_static_all_white_get_1_1_generates_continuous_effect ... ignored, requires: static-ability continuous-effect generation (PT boost for all white)
[INFO] [stdout] test cr_611_3c_ex1_static_effect_on_off_battlefield ... ignored, requires: static-effect activation/deactivation on zone change
[INFO] [stdout] test cr_613_4d_ex1_pt_switch_after_modification ... ignored, requires: layer-7 P/T effect ordering (PT modification then switch)
[INFO] [stdout] test cr_613_4d_ex2_pt_switch_order_matters ... ignored, requires: layer-7 P/T effect ordering
[INFO] [stdout] test cr_613_4d_ex3_pt_switch_with_prior_modification ... ignored, requires: layer-7 P/T effect ordering
[INFO] [stdout] test cr_613_5_ex1_honor_of_the_pure_static_pt_boost ... ignored, requires: continuous-effect PT boost for colored creatures (Honor of the Pure)
[INFO] [stdout] test cr_613_5_ex2_gray_ogre_counter_and_effects ... ignored, requires: counter-based PT and layered continuous-effect PT stacking
[INFO] [stdout] test cr_613_6_ex1_color_and_pt_effect_timestamp_ordering ... ignored, requires: layer system with timestamp ordering for colour and PT
[INFO] [stdout] test cr_613_6_ex2_act_of_treason_control_change_with_pt ... ignored, requires: control-change effect with PT modification in layer system
[INFO] [stdout] test cr_613_6_ex3_noncreature_artifacts_become_2_2 ... ignored, requires: type-change + PT-setting continuous effect for artifacts
[INFO] [stdout] test cr_613_6_ex4_svogthos_activated_creature_ability ... ignored, requires: activated type-change ability (Svogthos, the Restless Tomb)
[INFO] [stdout] test cr_613_7a_ex1_rune_of_flight_grants_equipment_flying ... ignored, requires: Aura granting Equipment an ability that the equipped creature gains
[INFO] [stdout] test cr_613_9_ex1_cant_block_vs_must_block_conflict ... ignored, requires: restriction/requirement conflict resolution in declare-blockers
[INFO] [stdout] test cr_613_9_ex2_pt_boost_vs_loses_all_abilities ... ignored, requires: layer-based ability-granting vs ability-removing interaction
[INFO] [stdout] test cr_614_12_ex1_voice_of_all_enter_choice_replacement ... ignored, requires: as-this-enters replacement effect for choice-on-entry
[INFO] [stdout] test cr_614_12_ex2_yixlid_jailer_graveyard_cards_lose_abilities ... ignored, requires: continuous effect removing abilities from graveyard cards
[INFO] [stdout] test cr_614_12_ex3_orb_of_dreams_permanents_enter_tapped ... ignored, requires: enters-tapped replacement effect (Orb of Dreams)
[INFO] [stdout] test cr_614_13a_ex1_sutured_ghoul_exile_as_enters ... ignored, requires: as-enters exile-from-hand choice (Sutured Ghoul)
[INFO] [stdout] test cr_614_13b_ex1_jund_plane_triggered_ability ... ignored, requires: planechase plane card triggered ability
[INFO] [stdout] test cr_614_13c_ex1_ashiok_pay_life_instead_of_exile ... ignored, requires: pay-life-instead-of-exile replacement effect (Ashiok, Wicked Manipulator)
[INFO] [stdout] test cr_614_4_ex1_regeneration_in_response_to_damage ... ignored, requires: regeneration mechanic and damage-response activation
[INFO] [stdout] test cr_614_5_ex1_two_simultaneous_replacement_effects ... ignored, requires: multiple-replacement-effect ordering (CR 616 layer)
[INFO] [stdout] test cr_615_10_ex1_daunting_defender_cleric_damage_redirect ... ignored, requires: damage-redirection prevention effect (Daunting Defender)
[INFO] [stdout] test cr_615_11_ex1_wojek_apothecary_prevent_and_gain_life ... ignored, requires: prevention-with-life-gain effect (Wojek Apothecary)
[INFO] [stdout] test cr_615_4_ex1_prevention_activated_in_response_to_damage ... ignored, requires: damage-prevention mechanic with response timing
[INFO] [stdout] test cr_616_1f_ex1_two_etb_replacement_effects ... ignored, requires: multiple ETB replacement effects and controller choice ordering
[INFO] [stdout] test cr_616_1f_ex2_essence_of_the_wild_enters_as_copy ... ignored, requires: ETB replacement 'enters as copy' (Essence of the Wild)
[INFO] [stdout] test cr_616_1g_ex1_token_copy_of_voice_of_all_choice ... ignored, requires: token-copy of as-enters-choice card (Voice of All token)
[INFO] [stdout] test cr_616_2_ex1_life_gain_replaced_by_card_draw ... ignored, requires: gain-life replacement drawing cards instead
[INFO] [stdout] test cr_700_14_ex1_bark_knuckle_boxer_when_cast ... ignored, requires: Bark-Knuckle Boxer triggered-when-cast ability
[INFO] [stdout] test cr_700_1_ex1_blocked_by_two_is_one_event ... ignored, requires: event-semantics tracking (blocked-by-two = one block event)
[INFO] [stdout] test cr_700_3c_ex1_fact_or_fiction_opponent_separates_piles ... ignored, requires: reveal + pile-division player choice effect (Fact or Fiction)
[INFO] [stdout] test cr_700_5a_ex1_altar_of_the_pantheon_devotion_colorless ... ignored, requires: devotion counting mechanic (number of colored mana symbols)
[INFO] [stdout] test cr_700_7_ex1_simultaneous_effect_two_results ... ignored, requires: simultaneous multi-part effect resolution
[INFO] [stdout] test cr_701_12a_ex1_exchange_control_one_illegal_target ... ignored, requires: exchange-control effect (both targets must be legal)
[INFO] [stdout] test cr_701_20c_ex1_telepathy_opponents_revealed_hand ... ignored, requires: play-with-revealed-hand continuous effect (Telepathy)
[INFO] [stdout] test cr_701_23b_ex1_splinter_exile_and_search_graveyard ... ignored, requires: search-graveyard-by-name effect (Splinter)
[INFO] [stdout] test cr_701_23c_ex1_lobotomy_exile_all_copies ... ignored, requires: search-all-zones-and-exile effect (Lobotomy)
[INFO] [stdout] test cr_701_23f_ex1_aven_mindcensor_restrict_search_to_top_4 ... ignored, requires: search-restriction replacement effect (Aven Mindcensor)
[INFO] [stdout] test cr_701_24c_ex1_guile_shuffles_into_library_from_graveyard ... ignored, requires: graveyard-replacement shuffle effect (Guile)
[INFO] [stdout] test cr_701_24c_ex2_black_suns_zenith_shuffles_into_library ... ignored, requires: graveyard-replacement shuffle effect (Black Sun's Zenith)
[INFO] [stdout] test cr_701_24d_ex1_loaming_shaman_etb_shuffle_graveyard ... ignored, requires: triggered shuffle-graveyard-into-library on ETB (Loaming Shaman)
[INFO] [stdout] test cr_701_24g_ex1_darksteel_colossus_and_gravebane_zombie_simultaneous ... ignored, requires: simultaneous zone-change with different replacement effects
[INFO] [stdout] test cr_701_42c_ex1_midnight_scavengers_conjure ... ignored, requires: conjure mechanic (Midnight Scavengers meld conjure)
[INFO] [stdout] test cr_701_67b_ex1_spirit_water_revival_craft ... ignored, requires: craft mechanic (Spirit Water Revival)
[INFO] [stdout] test cr_702_103d_ex1_aether_storm_creature_spells_cant_be_cast ... ignored, requires: cast-restriction static effect and life-to-remove (Aether Storm)
[INFO] [stdout] test cr_702_103d_ex2_garruks_horde_cast_from_top ... ignored, requires: cast-from-top-of-library permission with ravenous-related creature
[INFO] [stdout] test cr_702_14d_ex1_snow_forestwalk_doesnt_cancel_between_players ... ignored, requires: snow-landwalk variant and mutual snow-landwalk non-cancellation
[INFO] [stdout] test cr_702_15e_ex1_ajanis_pridemate_lifelink_trigger ... ignored, requires: lifelink life-gain triggered ability (Ajani's Pridemate)
[INFO] [stdout] test cr_702_177b_ex1_elvish_refueler_exhaust_once_per_game ... ignored, requires: exhaust mechanic (once-per-game activated ability)
[INFO] [stdout] test cr_702_184c_ex1_tapestry_warden_ward_granting ... ignored, requires: Tapestry Warden ability granting ward to other permanents
[INFO] [stdout] test cr_702_19b_ex1_can_block_additional_creature_blocks_two ... ignored, requires: can-block-additional-creature ability and multi-blocking assignment
[INFO] [stdout] test cr_702_19b_ex2_trample_blocker_protection_from_green ... ignored, requires: trample+protection interaction (protection prevents damage but trample assigns through)
[INFO] [stdout] test cr_702_19c_ex1_trample_against_planeswalker ... ignored, requires: planeswalker combat damage assignment and trample interaction
[INFO] [stdout] test cr_702_164b_ex1_toxic_stacks_additively ... ok
[INFO] [stdout] test cr_702_1a_ex1_varolz_echo_equals_mana_value ... ignored, requires: echo ability derived from graveyard card's mana value (Varolz)
[INFO] [stdout] test cr_702_1b_ex1_volcano_hellion_echo_x_equals_power ... ignored, requires: echo X ability keyed on power value (Volcano Hellion)
[INFO] [stdout] test cr_702_1b_ex2_fire_ice_echo_cost ... ignored, requires: split-card echo cost (Fire//Ice)
[INFO] [stdout] test cr_702_1c_ex1_concerted_effort_grants_keywords_each_upkeep ... ignored, requires: upkeep-triggered keyword-granting effect (Concerted Effort)
[INFO] [stdout] test cr_702_22h_ex1_banding_with_flying_evasion ... ignored, requires: banding mechanic with evasion interaction
[INFO] [stdout] test cr_702_24a_ex1_cumulative_upkeep_or_choice ... ignored, requires: cumulative-upkeep mechanic with alternative-cost option
[INFO] [stdout] test cr_702_24a_ex2_cumulative_upkeep_sacrifice_creature ... ignored, requires: cumulative-upkeep with sacrifice cost
[INFO] [stdout] test cr_702_24b_ex1_two_cumulative_upkeep_instances_stack ... ignored, requires: multiple cumulative-upkeep instances stacking (CR 702.24b)
[INFO] [stdout] test cr_702_26b_ex1_phased_out_creature_not_counted ... ignored, requires: phasing mechanic (phased-out permanents don't exist for counting)
[INFO] [stdout] test cr_702_26b_ex2_phased_out_creature_survives_destroy_all ... ignored, requires: phasing mechanic (phased-out permanents not affected by destroy-all)
[INFO] [stdout] test cr_702_44c_ex1_modular_sunburst_enters_with_counters_per_color ... ignored, requires: sunburst mechanic and modular ability stacking
[INFO] [stdout] test cr_702_47a_ex1_splice_card_stays_in_hand ... ignored, requires: splice-onto-Arcane mechanic
[INFO] [stdout] test cr_702_47c_ex1_glacial_ray_splice_adds_damage ... ignored, requires: splice-onto-Arcane mechanic with text merging
[INFO] [stdout] test cr_702_51b_ex1_heartless_summoning_cost_reduction ... ignored, requires: cost-reduction continuous effect (Heartless Summoning)
[INFO] [stdout] test cr_702_65b_ex1_aura_swap_no_legal_target_in_graveyard ... ignored, requires: aura-swap mechanic (swap enchanting Aura with one from hand)
[INFO] [stdout] test cr_702_65b_ex2_aura_swap_controller_doesnt_own ... ignored, requires: aura-swap ownership vs control distinction
[INFO] [stdout] test cr_704_4_ex1_maro_toughness_zero_mid_resolution_survives ... ignored, requires: dynamic-power-toughness CDA (Maro) and SBA-timing during resolution
[INFO] [stdout] test cr_704_7_ex1_lichs_mirror_replaces_simultaneous_loss ... ignored, requires: Lich's Mirror game-loss replacement effect and simultaneous SBAs
[INFO] [stdout] test cr_704_8_ex1_young_wolf_undying_with_positive_counter ... ignored, requires: undying mechanic and counter-interaction with SBAs
[INFO] [stdout] test cr_707_10_ex1_fork_copies_emerald_charm ... ignored, requires: spell-copy effect (Fork)
[INFO] [stdout] test cr_707_10_ex2_fling_copy_own_sacrifice ... ignored, requires: spell-copy of additional-cost spell (Fling)
[INFO] [stdout] test cr_707_10_ex3_dawnglow_infusion_copy ... ignored, requires: spell-copy of X-spell with color-check (Dawnglow Infusion)
[INFO] [stdout] test cr_707_10e_ex1_frontline_heroism_cast_trigger_token_copy ... ignored, requires: cast-triggered token-copy ability (Frontline Heroism)
[INFO] [stdout] test cr_707_11_ex1_unstable_shapeshifter_copies_olivia_self_reference ... ignored, requires: copy-effect self-reference replacement (Unstable Shapeshifter)
[INFO] [stdout] test cr_707_2_ex1_chimeric_staff_becomes_creature ... ignored, requires: activated type-change to creature with X-based P/T (Chimeric Staff)
[INFO] [stdout] test cr_707_2_ex2_clone_copies_face_down_grinning_demon ... ignored, requires: copy-effect engine and face-down permanent handling (morph)
[INFO] [stdout] test cr_707_3_ex1_vesuvan_doppelganger_copy_face ... ignored, requires: copy-effect engine with face-choice (Vesuvan Doppelganger)
[INFO] [stdout] test cr_707_3_ex2_tomoya_copies_nezumi_shortfang ... ignored, requires: flip-card support and copy-effect flipped-status preservation
[INFO] [stdout] test cr_707_3_ex3_face_down_demon_copies_wandering_eye ... ignored, requires: copy-effect engine and face-down status handling
[INFO] [stdout] test cr_707_3_ex4_face_down_demon_copies_wall_of_rats ... ignored, requires: copy-effect engine and face-down status handling
[INFO] [stdout] test cr_707_4_ex1_unstable_shapeshifter_copies_on_enter ... ignored, requires: ETB-triggered copy effect (Unstable Shapeshifter)
[INFO] [stdout] test cr_707_5_ex1_skyshroud_behemoth_fading_copy ... ignored, requires: fading mechanic and copy-effect counter inheritance
[INFO] [stdout] test cr_707_5_ex2_clone_copies_wall_of_omens_etb_triggers ... ignored, requires: copy-effect ETB trigger on copy (Clone of Wall of Omens draws a card)
[INFO] [stdout] test cr_707_6_ex1_clone_copies_adaptive_automaton_own_choice ... ignored, requires: copy-effect engine with as-enters choice (Adaptive Automaton)
[INFO] [stdout] test cr_707_8a_ex1_afflicted_deserter_dfc_copy_token ... ignored, requires: double-faced-card support and token-copy-DFC rules
[INFO] [stdout] test cr_707_8a_ex2_clone_not_dfc_token_also_not_dfc ... ignored, requires: copy-token DFC-status preservation
[INFO] [stdout] test cr_707_9a_ex1_quirion_elves_shapeshifter_copy_timing ... ignored, requires: copy-effect timing with ETB triggered abilities
[INFO] [stdout] test cr_707_9b_ex1_copy_artifact_enters_as_enchantment ... ignored, requires: copy-as-enchantment ability (Copy Artifact)
[INFO] [stdout] test cr_707_9d_ex1_quicksilver_gargantuan_7_7_copy ... ignored, requires: copy-effect engine with P/T override (Quicksilver Gargantuan)
[INFO] [stdout] test cr_707_9d_ex2_glasspool_mimic_copies_creature ... ignored, requires: copy-effect engine (Glasspool Mimic)
[INFO] [stdout] test cr_707_9e_ex1_altered_ego_copy_with_counters ... ignored, requires: copy-effect engine with extra-counter addition (Altered Ego)
[INFO] [stdout] test cr_707_9f_ex1_moritte_copies_as_legendary_snow ... ignored, requires: copy-effect engine with supertype addition (Moritte of the Frost)
[INFO] [stdout] test cr_709_4b_ex1_assault_battery_combined_cost_color ... ignored, requires: split-card combined mana cost and color
[INFO] [stdout] test cr_709_4b_ex2_fire_ice_combined_cost_equals_steam_augury ... ignored, requires: split-card combined mana cost comparison
[INFO] [stdout] test cr_710_2_ex1_akki_lavarunner_flips_to_legendary ... ignored, requires: flip-card mechanic (flip transformation on condition)
[INFO] [stdout] test cr_712_13a_ex1_mycosynth_lattice_march_machines_dfc ... ignored, requires: interaction between Mycosynth Lattice, March of the Machines, and DFCs
[INFO] [stdout] test cr_712_18_ex1_village_ironsmith_front_face_pt_effect ... ignored, requires: double-faced-card support (effects on front face)
[INFO] [stdout] test cr_712_21_ex1_chittering_host_melded_dies ... ignored, requires: meld mechanic and meld-unravel on death
[INFO] [stdout] test cr_712_21b_ex1_duplicant_etb_imprint ... ignored, requires: imprint mechanic (Duplicant ETB exile)
[INFO] [stdout] test cr_712_21c_ex1_otherworldly_journey_exile_and_return ... ignored, requires: exile-and-return mechanic (Otherworldly Journey delayed return)
[INFO] [stdout] test cr_712_21c_ex2_false_demise_return_enchanted_creature ... ignored, requires: Aura triggered-ability on enchanted-creature-dies (False Demise)
[INFO] [stdout] test cr_712_21c_ex3_mimic_vat_imprints_dying_creature ... ignored, requires: Mimic Vat imprint-on-death triggered ability
[INFO] [stdout] test cr_712_21d_ex1_leyline_of_the_void_replace_graveyard ... ignored, requires: graveyard-replacement exile effect (Leyline of the Void)
[INFO] [stdout] test cr_712_9_ex1_clone_copies_wildblood_pack_back_face ... ignored, requires: double-faced-card copy rules (clone of back face)
[INFO] [stdout] test cr_712_9_ex2_cytoshape_transformed_dfc_copy ... ignored, requires: double-faced-card copy interaction while transformed
[INFO] [stdout] test cr_722_3c_ex1_croaking_counterpart_copies_aviator ... ignored, requires: transforming-token-copy effect (Croaking Counterpart)
[INFO] [stdout] test cr_723_4_ex1_controller_sees_controlled_hand ... ignored, requires: player-control mechanic (Mindslaver) and hidden-information rules
[INFO] [stdout] test cr_723_5_ex1_controller_decides_spells_cast ... ignored, requires: player-control mechanic (spell-casting decisions)
[INFO] [stdout] test cr_723_5_ex2_controller_decides_attacks ... ignored, requires: player-control mechanic (attack decisions)
[INFO] [stdout] test cr_723_5a_ex1_controlled_player_mana_payment ... ignored, requires: player-control mana-payment decision (CR 723.5a)
[INFO] [stdout] test cr_723_5b_ex1_controlled_player_still_decides_to_leave ... ignored, requires: player-control mechanic (scope of what controller cannot decide)
[INFO] [stdout] test cr_727_2_ex1_living_wish_card_in_restarted_game_library ... ignored, requires: restart-game mechanic and outside-the-game card tracking
[INFO] [stdout] test cr_729_5_ex1_card_from_main_game_in_subgame_returns ... ignored, requires: subgame mechanic
[INFO] [stdout] test cr_732_2a_ex1_presence_of_gond_intruder_alarm_shortcut ... ignored, requires: game-shortcut handling for infinite loops (CR 732)
[INFO] [stdout] test cr_732_2b_ex1_go_shortcut_opponent_intervenes ... ignored, requires: game-shortcut proposal and acceptance (CR 732.2b)
[INFO] [stdout] test cr_732_3_ex1_fragmented_loop_active_player_must_break ... ignored, requires: loop-detection mechanic (CR 732.3)
[INFO] [stdout] test cr_732_5_ex1_mandatory_loop_not_forced_to_use_optional_ability ... ignored, requires: mandatory-loop handling and optional ability determination
[INFO] [stdout] test cr_800_4a_ex1_mind_control_controller_leaves ... ignored, requires: multiplayer player-leaving rules and aura-controller removal
[INFO] [stdout] test cr_800_4a_ex2_act_of_treason_controller_leaves ... ignored, requires: multiplayer player-leaving rules and control-effect removal
[INFO] [stdout] test cr_800_4a_ex3_bribery_owner_leaves_creature_exiled ... ignored, requires: multiplayer player-leaving rules (owner vs controller distinction)
[INFO] [stdout] test cr_800_4a_ex4_genesis_chamber_tokens_controller_leaves ... ignored, requires: multiplayer player-leaving rules and token controller tracking
[INFO] [stdout] test cr_800_4d_ex1_astral_slide_controller_leaves_before_end_step ... ignored, requires: multiplayer player-leaving rules and delayed-trigger abandonment
[INFO] [stdout] test cr_801_10_ex1_pyroclasm_range_1_six_player ... ignored, requires: multiplayer range-restricted damage spell (Pyroclasm)
[INFO] [stdout] test cr_801_11_ex1_coat_of_arms_range_restricted ... ignored, requires: multiplayer range-restricted static ability (Coat of Arms)
[INFO] [stdout] test cr_801_11_ex2_coat_of_arms_asymmetric_range ... ignored, requires: multiplayer range-of-influence asymmetric boost
[INFO] [stdout] test cr_801_13a_ex1_lava_axe_redirect_out_of_range ... ignored, requires: multiplayer range-restricted damage redirection (Captain's Maneuver)
[INFO] [stdout] test cr_801_13b_ex1_prevention_in_range_vs_out_of_range_source ... ignored, requires: multiplayer range-restricted prevention effect
[INFO] [stdout] test cr_801_13b_ex2_mending_hands_range_prevents_out_of_range_source ... ignored, requires: multiplayer range-restricted prevention (cross-player prevention)
[INFO] [stdout] test cr_801_13b_ex3_fog_prevents_combat_damage_within_range ... ignored, requires: multiplayer range-restricted combat-damage prevention (Fog)
[INFO] [stdout] test cr_801_2a_ex1_range_1_only_adjacent_players ... ignored, requires: multiplayer range-of-influence seating mechanic
[INFO] [stdout] test cr_801_2a_ex2_range_2_includes_two_seats_away ... ignored, requires: multiplayer range-of-influence seating mechanic
[INFO] [stdout] test cr_801_2c_ex1_player_leaving_changes_range ... ignored, requires: multiplayer range-of-influence and player-leaving update
[INFO] [stdout] test cr_801_5a_ex1_cuombajj_witches_opponent_target_within_range ... ignored, requires: multiplayer range-restricted targeting (Cuombajj Witches)
[INFO] [stdout] test cr_801_5b_ex1_opponent_chooses_outside_range ... ignored, requires: multiplayer opponent-chooses-mode across range (CR 801.5b)
[INFO] [stdout] test cr_801_5c_ex1_emperor_fact_or_fiction_nearest_opponent ... ignored, requires: Emperor format and range-of-influence Fact or Fiction
[INFO] [stdout] test cr_801_7_ex1_aura_triggers_range_restricted ... ignored, requires: multiplayer range-restricted event triggers on Auras
[INFO] [stdout] test cr_801_7a_ex1_extractor_demon_range_restricted_trigger ... ignored, requires: multiplayer range-of-influence triggered ability scope
[INFO] [stdout] test cr_802_2a_ex1_mountainwalk_depends_on_defending_player ... ignored, requires: multiplayer simultaneous attacks and per-defender landwalk check
[INFO] [stdout] test cr_807_4a_ex1_grand_melee_turn_markers_sixteen_players ... ignored, requires: Grand Melee format support
[INFO] [stdout] test cr_807_4j_ex1_grand_melee_extra_turn_deferred ... ignored, requires: Grand Melee format support with extra turns
[INFO] [stdout] test cr_809_3c_ex1_emperor_cannot_attack_at_start ... ignored, requires: Emperor format support (attack-range restrictions)
[INFO] [stdout] test cr_809_6a_ex1_emperor_four_player_teams_seating ... ignored, requires: Emperor format support and team seating arrangement
[INFO] [stdout] test cr_810_8a_ex1_2hg_transcendence_team_life_zero ... ignored, requires: Two-Headed Giant (2HG) format support
[INFO] [stdout] test cr_810_8a_ex2_2hg_player_draws_empty_library_team_loses ... ignored, requires: Two-Headed Giant (2HG) format support
[INFO] [stdout] test cr_810_8a_ex3_2hg_platinum_angel_team_cant_lose ... ignored, requires: Two-Headed Giant (2HG) format support
[INFO] [stdout] test cr_810_9_ex1_2hg_flame_rift_8_per_team ... ignored, requires: Two-Headed Giant (2HG) format support and team-life damage pooling
[INFO] [stdout] test cr_810_9a_ex1_2hg_beacon_of_immortality_doubles_life ... ignored, requires: Two-Headed Giant (2HG) format support and team-life accounting
[INFO] [stdout] test cr_810_9a_ex2_2hg_test_of_endurance_team_life ... ignored, requires: Two-Headed Giant (2HG) format support
[INFO] [stdout] test cr_810_9a_ex3_2hg_lurking_evil_half_life ... ignored, requires: Two-Headed Giant (2HG) format support
[INFO] [stdout] test cr_810_9c_ex1_2hg_life_total_becomes_effect ... ignored, requires: Two-Headed Giant (2HG) format support
[INFO] [stdout] test cr_810_9d_ex1_2hg_repay_in_kind_equalise_life ... ignored, requires: Two-Headed Giant (2HG) format support (Repay in Kind)
[INFO] [stdout] test cr_811_3_ex1_alternating_teams_seating_three_teams ... ignored, requires: Alternating Teams format support
[INFO] [stdout] test cr_902_4_ex1_vanguard_life_modifier_minus_3_starting_life_17 ... ignored, requires: Vanguard format support (life-modifier starting-life)
[INFO] [stdout] test cr_902_5a_ex1_vanguard_hand_modifier_plus_2_starting_hand_9 ... ignored, requires: Vanguard format support (hand-modifier starting-hand-size)
[INFO] [stdout] test cr_902_5b_ex1_vanguard_hand_modifier_minus_1_max_hand_6 ... ignored, requires: Vanguard format support (hand-modifier maximum-hand-size)
[INFO] [stdout] test cr_903_3_ex1_face_down_commander_is_still_a_commander ... ignored, requires: Commander format support (commander identity across face-down/copy)
[INFO] [stdout] test cr_903_4_ex1_bosh_iron_golem_color_identity_red ... ignored, requires: Commander color-identity calculation from rules-text mana symbols
[INFO] [stdout] test cr_903_4d_ex1_civilized_scholar_dfc_color_identity_blue_red ... ignored, requires: Commander color-identity from double-faced card both faces
[INFO] [stdout] test cr_903_5c_ex1_wort_raidmother_color_identity_red_green ... ignored, requires: Commander color-identity calculation including hybrid pips
[INFO] [stdout] test cr_903_5d_ex1_wort_deck_lands_must_match_color_identity ... ignored, requires: Commander deck-legality check against color identity
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 263 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test drawing_from_empty_library_loses_the_game ... ok
[INFO] [stderr]      Running tests/targeting.rs (/opt/rustwide/target/release/deps/targeting-faa59984da869775)
[INFO] [stdout] test deathtouch_rat_kills_hill_giant ... ok
[INFO] [stdout] test player_dies_at_zero_life_ends_game ... ok
[INFO] [stdout] test first_striker_kills_blocker_and_survives_unscathed ... ok
[INFO] [stdout] test scripted_game_runs_to_completion ... ok
[INFO] [stdout] test trample_excess_kills_player ... 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 5 tests
[INFO] [stdout] test giant_growth_cast_and_resolve_boosts_creature ... ok
[INFO] [stdout] test lightning_bolt_kills_creature ... ok
[INFO] [stdout] test cant_cast_giant_growth_targeting_shroud_creature ... ok
[INFO] [stdout] test giant_growth_fizzles_when_target_leaves ... ok
[INFO] [stdout] test lightning_bolt_damages_player ... ok
[INFO] [stderr]    Doc-tests mecha_oracle
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[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] running `Command { std: "docker" "inspect" "28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b", kill_on_drop: false }`
[INFO] [stdout] 28fdc12906ac0b89497c1b9a0c36ed62b688569684ea19a09d1f089873431b8b
