[INFO] fetching crate openpit 0.2.0... [INFO] testing openpit-0.2.0 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate openpit 0.2.0 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate openpit 0.2.0 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate openpit 0.2.0 [INFO] tweaked toml for crates.io crate openpit 0.2.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate openpit 0.2.0 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate openpit 0.2.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded smol_str v0.3.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d6421c3b1465b336bc6c782c9667f24e1231464242d538e042e0b17d82c00379 [INFO] running `Command { std: "docker" "start" "-a" "d6421c3b1465b336bc6c782c9667f24e1231464242d538e042e0b17d82c00379", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d6421c3b1465b336bc6c782c9667f24e1231464242d538e042e0b17d82c00379", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d6421c3b1465b336bc6c782c9667f24e1231464242d538e042e0b17d82c00379", kill_on_drop: false }` [INFO] [stdout] d6421c3b1465b336bc6c782c9667f24e1231464242d538e042e0b17d82c00379 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6605c5440afd7393aed2f1716d398f35c211704da151c5826a0ce2cafc01fb35 [INFO] running `Command { std: "docker" "start" "-a" "6605c5440afd7393aed2f1716d398f35c211704da151c5826a0ce2cafc01fb35", kill_on_drop: false }` [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rust_decimal v1.40.0 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling smol_str v0.3.6 [INFO] [stderr] Compiling openpit v0.2.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.12s [INFO] running `Command { std: "docker" "inspect" "6605c5440afd7393aed2f1716d398f35c211704da151c5826a0ce2cafc01fb35", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6605c5440afd7393aed2f1716d398f35c211704da151c5826a0ce2cafc01fb35", kill_on_drop: false }` [INFO] [stdout] 6605c5440afd7393aed2f1716d398f35c211704da151c5826a0ce2cafc01fb35 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1fc505b1391f7881a67ba3b37eb5e46034575600e8037b04d826c9e118bf4805 [INFO] running `Command { std: "docker" "start" "-a" "1fc505b1391f7881a67ba3b37eb5e46034575600e8037b04d826c9e118bf4805", kill_on_drop: false }` [INFO] [stderr] Compiling openpit v0.2.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 3.25s [INFO] running `Command { std: "docker" "inspect" "1fc505b1391f7881a67ba3b37eb5e46034575600e8037b04d826c9e118bf4805", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1fc505b1391f7881a67ba3b37eb5e46034575600e8037b04d826c9e118bf4805", kill_on_drop: false }` [INFO] [stdout] 1fc505b1391f7881a67ba3b37eb5e46034575600e8037b04d826c9e118bf4805 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 3ae3d535102d9d795e762c4179e1d967d9c91d05c3bcef7a21b2a0eddfe318ec [INFO] running `Command { std: "docker" "start" "-a" "3ae3d535102d9d795e762c4179e1d967d9c91d05c3bcef7a21b2a0eddfe318ec", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/openpit-578df557d3b14034) [INFO] [stdout] [INFO] [stdout] running 191 tests [INFO] [stdout] test core::engine::tests::build_rejects_duplicate_policy_names_across_stages ... ok [INFO] [stdout] test core::engine::tests::build_rejects_duplicate_policy_names_within_start_stage ... ok [INFO] [stdout] test core::engine::tests::build_error_display_is_stable ... ok [INFO] [stdout] test core::engine::tests::builder_builds_operational_empty_engine ... ok [INFO] [stdout] test core::engine::tests::apply_execution_report_aggregates_kill_switch_triggered ... ok [INFO] [stdout] test core::engine::tests::main_stage_observes_settlement_assets_independently ... ok [INFO] [stdout] test core::engine::tests::interleaved_requests_and_reports_preserve_original_tags_across_all_policies ... ok [INFO] [stdout] test core::engine::tests::light_stage_changes_are_not_rolled_back_when_execute_rejects ... ok [INFO] [stdout] test core::engine::tests::execute_table_cases_cover_success_commit_and_reject_rollback ... ok [INFO] [stdout] test core::engine::tests::order_core_execute_commit_and_rollback_apply_mutation_callback ... ok [INFO] [stdout] test core::engine::tests::order_core_request_returns_system_unavailable_when_engine_is_dropped ... ok [INFO] [stdout] test core::engine::tests::order_trade_input_start_pre_trade_rejects_before_request_is_created ... ok [INFO] [stdout] test core::engine::tests::request_returns_system_unavailable_when_engine_is_dropped ... ok [INFO] [stdout] test core::engine::tests::order_core_execute_rejects_and_rolls_back_mutations ... ok [INFO] [stdout] test core::engine::tests::reset_like_start_policy_state_allows_trading_to_resume ... ok [INFO] [stdout] test core::engine::tests::tagged_build_rejects_duplicate_policy_names_across_stages ... ok [INFO] [stdout] test core::engine::tests::start_pre_trade_allows_extreme_price_without_notional_precompute ... ok [INFO] [stdout] test core::engine::tests::tagged_build_rejects_duplicate_policy_names_within_start_stage ... ok [INFO] [stdout] test core::engine::tests::tagged_execute_rejects_and_rolls_back_mutations ... ok [INFO] [stdout] test core::engine::tests::tagged_execute_commit_and_rollback_apply_mutation_callback ... ok [INFO] [stdout] test core::engine::tests::sell_order_can_reserve_notional_without_engine_notional_cache ... ok [INFO] [stdout] test core::engine::tests::tagged_request_returns_system_unavailable_when_engine_is_dropped ... ok [INFO] [stdout] test core::engine::tests::accepts_order_without_operation_fields_when_no_policy_requires_them ... ok [INFO] [stdout] test core::engine::tests::tagged_start_pre_trade_rejects_before_request_is_created ... ok [INFO] [stdout] test core::engine::tests::tagged_reservation_mutation_callback_is_noop_when_engine_is_dropped ... ok [INFO] [stdout] test core::order::tests::collateral_asset_returns_some_when_set ... ok [INFO] [stdout] test core::execution_report::tests::fill_defaults_are_stable ... ok [INFO] [stdout] test core::instrument::tests::instrument_accessors_return_original_assets ... ok [INFO] [stdout] test core::engine::tests::order_core_reservation_mutation_callback_is_noop_when_engine_is_dropped ... ok [INFO] [stdout] test core::engine::tests::order_trade_input_build_rejects_duplicate_policy_names_across_stages ... ok [INFO] [stdout] test core::engine::tests::order_trade_input_build_rejects_duplicate_policy_names_within_start_stage ... ok [INFO] [stdout] test core::engine::tests::reservation_mutation_callback_is_noop_when_engine_is_dropped ... ok [INFO] [stdout] test core::engine::tests::start_pre_trade_table_cases_follow_registration_order_and_stop_on_first_reject ... ok [INFO] [stdout] test param::asset::tests::try_from_validates_asset_code ... ok [INFO] [stdout] test param::cash_flow::tests::converts_from_pnl_and_fee ... ok [INFO] [stdout] test param::fee::tests::converts_to_negative_pnl ... ok [INFO] [stdout] test param::fee::tests::converts_to_position_size ... ok [INFO] [stdout] test param::fill_type::tests::display_uses_api_names ... ok [INFO] [stdout] test param::leverage::tests::boundaries_are_valid_in_table ... ok [INFO] [stdout] test param::leverage::tests::display_omits_trailing_fractional_zeroes ... ok [INFO] [stdout] test param::leverage::tests::from_float_creates_fractional_values_table ... ok [INFO] [stdout] test param::leverage::tests::from_float_rejects_invalid_step_or_range_table ... ok [INFO] [stdout] test param::leverage::tests::from_u16_creates_valid_leverage ... ok [INFO] [stdout] test core::engine::tests::reservation_drop_triggers_rollback_in_reverse_order ... ok [INFO] [stdout] test core::order::tests::with_order_margin_delegates_collateral_asset ... ok [INFO] [stdout] test core::order::tests::with_order_operation_instrument_delegates_via_ref_arm ... ok [INFO] [stdout] test core::order::tests::collateral_asset_returns_none_when_not_set ... ok [INFO] [stdout] test core::request_trait::tests::deref_dispatch_calls_method_on_target ... ok [INFO] [stdout] test param::asset::tests::asset_error_display_is_stable ... ok [INFO] [stdout] test param::asset::tests::new_and_deref_work ... ok [INFO] [stdout] test param::leverage::tests::from_u16_rejects_values_above_business_limit ... ok [INFO] [stdout] test param::asset::tests::display_outputs_inner_value ... ok [INFO] [stdout] test param::asset::tests::new_rejects_empty_and_whitespace ... ok [INFO] [stdout] test param::leverage::tests::from_u16_rejects_zero ... ok [INFO] [stdout] test param::leverage::tests::from_u16_reports_overflow ... ok [INFO] [stdout] test param::leverage::tests::from_u16_scales_value ... ok [INFO] [stdout] test param::leverage::tests::margin_required_calculates_expected_value ... ok [INFO] [stdout] test param::leverage::tests::supports_max_business_leverage ... ok [INFO] [stdout] test param::pnl::tests::converts_to_cash_flow ... ok [INFO] [stdout] test param::pnl::tests::converts_to_position_size ... ok [INFO] [stdout] test param::position_effect::tests::display_uses_api_names ... ok [INFO] [stdout] test param::position_side::tests::display_uses_api_names ... ok [INFO] [stdout] test param::position_side::tests::opposite_returns_other_side ... ok [INFO] [stdout] test core::engine::tests::reserve_notional_policy_panics_when_volume_order_is_passed - should panic ... ok [INFO] [stdout] test core::engine::tests::reserve_notional_policy_panics_for_volume_based_order - should panic ... ok [INFO] [stdout] test param::position_side::tests::side_predicates_work ... ok [INFO] [stdout] test param::position_size::tests::builds_from_quantity_and_side ... ok [INFO] [stdout] test param::position_size::tests::converts_to_open_and_close_quantities ... ok [INFO] [stdout] test param::position_size::tests::supports_add_with_quantity_and_side ... ok [INFO] [stdout] test param::price::tests::calculate_volume_reports_overflow_for_extreme_values ... ok [INFO] [stdout] test param::price::tests::calculate_volume_works ... ok [INFO] [stdout] test param::quantity::tests::calculate_volume_is_commutative_with_price ... ok [INFO] [stdout] test param::side::tests::display_uses_api_names ... ok [INFO] [stdout] test param::side::tests::opposite_returns_other_side ... ok [INFO] [stdout] test param::side::tests::side_predicates_work ... ok [INFO] [stdout] test param::side::tests::sign_matches_direction ... ok [INFO] [stdout] test param::tests::error_display_messages_are_stable ... ok [INFO] [stdout] test param::quantity::tests::calculate_volume_propagates_price_overflow ... ok [INFO] [stdout] test param::tests::signed_common_arithmetic_paths_are_covered ... ok [INFO] [stdout] test param::tests::signed_macro_error_paths_are_covered ... ok [INFO] [stdout] test param::tests::signed_rounded_constructors_are_covered ... ok [INFO] [stdout] test param::tests::test_signed_common_methods::clone_creates_equal_value ... ok [INFO] [stdout] test param::position_size::tests::checked_add_quantity_reports_overflow ... ok [INFO] [stdout] test param::tests::test_signed_common_methods::copy_works ... ok [INFO] [stdout] test param::tests::test_signed_common_methods::debug_contains_value ... ok [INFO] [stdout] test param::tests::test_signed_common_methods::display_works_positive ... ok [INFO] [stdout] test param::tests::param_kind_display_is_stable ... ok [INFO] [stdout] test param::tests::rounding_strategy_constants_and_conversion_are_stable ... ok [INFO] [stdout] test param::tests::non_negative_new_unchecked_panics_for_negative_quantity_in_debug - should panic ... ok [INFO] [stdout] test param::tests::test_signed_common_methods::hash_is_deterministic ... ok [INFO] [stdout] test param::tests::test_signed_common_methods::is_zero_for_non_zero ... ok [INFO] [stdout] test param::tests::test_signed_common_methods::is_zero_for_zero_constant ... ok [INFO] [stdout] test param::tests::test_signed_common_methods::ordering_negative_vs_positive ... ok [INFO] [stdout] test param::tests::test_signed_common_methods::ordering_works ... ok [INFO] [stdout] test param::tests::test_signed_common_methods::string_roundtrip ... ok [INFO] [stdout] test param::tests::test_signed_common_methods::zero_constant_has_zero_decimal ... ok [INFO] [stdout] test param::tests::test_unsigned_common_methods::clone_creates_equal_value ... ok [INFO] [stdout] test param::tests::test_signed_common_methods::display_works_negative ... ok [INFO] [stdout] test param::tests::non_negative_macro_error_paths_are_covered ... ok [INFO] [stdout] test param::tests::test_unsigned_common_methods::copy_works ... ok [INFO] [stdout] test param::tests::test_unsigned_common_methods::debug_contains_value ... ok [INFO] [stdout] test param::tests::test_unsigned_common_methods::display_works ... ok [INFO] [stdout] test param::tests::test_unsigned_common_methods::hash_is_deterministic ... ok [INFO] [stdout] test param::tests::test_unsigned_common_methods::is_zero_for_non_zero ... ok [INFO] [stdout] test param::tests::test_unsigned_common_methods::is_zero_for_zero_constant ... ok [INFO] [stdout] test param::tests::test_unsigned_common_methods::zero_constant_has_zero_decimal ... ok [INFO] [stdout] test param::volume::tests::calculate_quantity_maps_internal_negative_result_to_underflow ... ok [INFO] [stdout] test param::volume::tests::calculate_quantity_reports_invalid_zero_price ... ok [INFO] [stdout] test param::volume::tests::calculate_quantity_reports_overflow_for_extreme_ratio ... ok [INFO] [stdout] test param::volume::tests::converts_to_cash_flow ... ok [INFO] [stdout] test pretrade::context::tests::stores_order_reference ... ok [INFO] [stdout] test param::tests::unsigned_common_arithmetic_paths_are_covered ... ok [INFO] [stdout] test param::trade_amount::tests::display_volume_variant ... ok [INFO] [stdout] test param::tests::test_unsigned_common_methods::ordering_works ... ok [INFO] [stdout] test param::tests::test_unsigned_common_methods::string_roundtrip ... ok [INFO] [stdout] test param::tests::unsigned_rounded_constructors_are_covered ... ok [INFO] [stdout] test param::trade::tests::display_formats_quantity_at_price ... ok [INFO] [stdout] test param::volume::tests::calculates_quantity ... ok [INFO] [stdout] test pretrade::handles::tests::commit_applies_mutations_in_registration_order ... ok [INFO] [stdout] test param::trade_amount::tests::display_quantity_variant ... ok [INFO] [stdout] test pretrade::handles::tests::commit_observer_can_ignore_non_kill_switch_mutations ... ok [INFO] [stdout] test pretrade::handles::tests::rollback_observer_can_ignore_non_kill_switch_mutations ... ok [INFO] [stdout] test pretrade::lock::tests::new_stores_some_price ... ok [INFO] [stdout] test pretrade::lock::tests::new_stores_none_price ... ok [INFO] [stdout] test pretrade::mutations::tests::default_creates_empty_mutation_collector ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::apply_execution_report_returns_false ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::additional_limits_and_set_limit_are_applied ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::notional_violation_returns_order_notional_exceeded ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::policy_name_is_stable ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::quantity_violation_returns_order_quantity_exceeded ... ok [INFO] [stdout] test pretrade::handles::tests::rollback_applies_mutations_in_reverse_registration_order ... ok [INFO] [stdout] test pretrade::lock::tests::lock_is_copy ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::resolve_notional_covers_volume_and_missing_price_paths ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::resolve_quantity_covers_invalid_volume_conversion_and_missing_price_paths ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::unconfigured_settlement_rejects_when_limit_is_missing ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::boundary_values_are_accepted ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::missing_limit_returns_order_size_limit_missing ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::volume_order_without_price_propagates_resolve_quantity_error ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::volume_overflow_is_treated_as_notional_exceeded ... ok [INFO] [stdout] test pretrade::policies::order_validation::tests::allows_missing_price_when_volume_is_present ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::volume_overflow_with_quantity_violation_returns_order_size_exceeded ... ok [INFO] [stdout] test pretrade::policies::order_validation::tests::apply_execution_report_returns_false ... ok [INFO] [stdout] test pretrade::policies::order_validation::tests::allows_zero_and_negative_price ... ok [INFO] [stdout] test pretrade::policies::order_validation::tests::policy_name_is_stable ... ok [INFO] [stdout] test pretrade::policies::order_validation::tests::rejects_zero_quantity ... ok [INFO] [stdout] test pretrade::policies::order_validation::tests::rejects_zero_volume ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::accumulate_realized_pnl_is_per_settlement_asset ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::apply_execution_report_marks_triggered_when_accumulation_overflows ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::apply_execution_report_updates_realized_pnl_and_reports_trigger ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::apply_execution_report_without_fee_uses_pnl_delta_directly ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::boundary_triggers_when_pnl_equals_negative_barrier ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::apply_execution_report_marks_triggered_when_fee_addition_overflows ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::constructor_rejects_non_positive_additional_barrier ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::constructor_rejects_non_positive_barrier ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::happy_path_order_passes_when_pnl_above_barrier ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::threshold_crossed_returns_true_when_barrier_negation_overflows ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::set_barrier_rejects_non_positive_barrier ... ok [INFO] [stdout] test pretrade::policies::rate_limit::tests::expired_timestamps_leave_sliding_window ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::missing_barrier_returns_order_reject ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::set_barrier_registers_new_settlement ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::error_display_messages_are_stable ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::policy_name_is_stable ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::trigger_is_sticky_until_reset ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::report_realized_pnl_marks_triggered_on_accumulation_overflow ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::reset_clears_trigger_and_resets_pnl ... ok [INFO] [stdout] test pretrade::policies::pnl_killswitch::tests::unconfigured_settlement_accumulates_but_does_not_trigger ... ok [INFO] [stdout] test pretrade::policies::rate_limit::tests::rejected_attempts_are_counted_and_not_rolled_back ... ok [INFO] [stdout] test pretrade::policies::rate_limit::tests::sliding_window_rejects_when_limit_is_exceeded ... ok [INFO] [stdout] test pretrade::policy::tests::post_trade_hooks_return_false ... ok [INFO] [stdout] test pretrade::mutations::tests::push_stores_mutation_pair ... ok [INFO] [stdout] test pretrade::policies::order_size_limit::tests::both_violations_are_returned_in_single_reject ... ok [INFO] [stdout] test pretrade::reject::tests::reject_code_as_str_and_display_are_stable_for_all_values ... ok [INFO] [stdout] test pretrade::reject::tests::rejects_display_multiple_joined_with_separator ... ok [INFO] [stdout] test pretrade::policy::tests::required_trait_methods_can_be_invoked_without_side_effects ... ok [INFO] [stdout] test pretrade::reject::tests::rejects_display_propagates_error_from_reject_fmt ... ok [INFO] [stdout] test pretrade::reject::tests::rejects_display_propagates_write_error ... ok [INFO] [stdout] test pretrade::reject::tests::rejects_display_single ... ok [INFO] [stdout] test pretrade::reject::tests::reject_display_formats_policy_reason_and_details ... ok [INFO] [stdout] test pretrade::reject::tests::rejects_deref_gives_slice_access ... ok [INFO] [stdout] test pretrade::request::tests::debug_format_is_opaque ... ok [INFO] [stdout] test pretrade::request::tests::execute_consumes_request_and_delegates_to_handle ... ok [INFO] [stdout] test pretrade::reservation::tests::commit_with_locked_reservation_handle ... ok [INFO] [stdout] test pretrade::request::tests::execute_can_finalize_returned_reservation_with_rollback ... ok [INFO] [stdout] test pretrade::reject::tests::rejects_display_empty_produces_empty_string ... ok [INFO] [stdout] test pretrade::reservation::tests::commit_is_noop_for_finalized_reservation ... ok [INFO] [stdout] test pretrade::reservation::tests::drop_without_explicit_finalize_can_ignore_non_kill_switch_mutations ... ok [INFO] [stdout] test pretrade::reservation::tests::drop_without_explicit_finalize_rolls_back ... ok [INFO] [stdout] test pretrade::reservation::tests::lock_returns_handle_lock_with_none_price ... ok [INFO] [stdout] test pretrade::reservation::tests::lock_returns_handle_lock_with_some_price ... ok [INFO] [stdout] test pretrade::reservation::tests::rollback_is_noop_for_finalized_reservation ... ok [INFO] [stderr] Running tests/pretrade_scenario.rs (/opt/rustwide/target/debug/deps/pretrade_scenario-518ab4bd8ebc7f70) [INFO] [stdout] test param::position_size::tests::add_with_quantity_flips_position_sign ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 191 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test integration_custom_order_strategy_tag_policy ... ok [INFO] [stdout] test integration_table_main_stage_paths ... ok [INFO] [stdout] test integration_order_validation_checks_only_provided_fields ... ok [INFO] [stdout] test integration_with_order_operation_with_order_position_reduce_only_accessible ... ok [INFO] [stdout] test integration_engine_builder_defaults_and_guardrails ... ok [INFO] [stdout] test integration_table_order_size_limit_paths ... ok [INFO] [stdout] test integration_scenario_rate_limit_then_kill_switch_then_reset_resume ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.70s [INFO] [stdout] [INFO] [stderr] Doc-tests openpit [INFO] [stdout] [INFO] [stdout] running 37 tests [INFO] [stdout] test src/param/mod.rs - param (line 41) ... ok [INFO] [stdout] test src/param/mod.rs - param (line 89) ... ok [INFO] [stdout] test src/param/position_side.rs - param::position_side::PositionSide::opposite (line 61) ... ok [INFO] [stdout] test src/param/cash_flow.rs - param::cash_flow::CashFlow::from_str (line 24) ... ok [INFO] [stdout] test src/param/asset.rs - param::asset::Asset (line 33) ... ok [INFO] [stdout] test src/param/position_size.rs - param::position_size::PositionSize::checked_add_quantity (line 122) ... ok [INFO] [stdout] test src/param/leverage.rs - param::leverage::Leverage::from_u16 (line 55) ... ok [INFO] [stdout] test src/param/leverage.rs - param::leverage::Leverage::margin_required (line 135) ... ok [INFO] [stdout] test src/param/leverage.rs - param::leverage::Leverage::from_f64 (line 81) ... ok [INFO] [stdout] test src/param/mod.rs - param::RoundingStrategy::CONSERVATIVE_PROFIT (line 239) ... ok [INFO] [stdout] test src/param/leverage.rs - param::leverage::Leverage::value (line 116) ... ok [INFO] [stdout] test src/param/position_size.rs - param::position_size::PositionSize::from_str (line 24) ... ok [INFO] [stdout] test src/param/mod.rs - param::RoundingStrategy::CONSERVATIVE_LOSS (line 258) ... ok [INFO] [stdout] test src/param/pnl.rs - param::pnl::Pnl::from_str (line 24) ... ok [INFO] [stdout] test src/param/fee.rs - param::fee::Fee::from_str (line 24) ... ok [INFO] [stdout] test src/core/engine.rs - core::engine::Engine (line 82) ... ok [INFO] [stdout] test src/param/side.rs - param::side::Side::opposite (line 64) ... ok [INFO] [stdout] test src/param/volume.rs - param::volume::Volume::from_str_rounded (line 26) ... ok [INFO] [stdout] test src/pretrade/context.rs - pretrade::context::Context<'a,O>::order (line 32) ... ok [INFO] [stdout] test src/pretrade/mutations.rs - pretrade::mutations::Mutation (line 62) ... ok [INFO] [stdout] test src/param/price.rs - param::price::Price::from_str (line 24) ... ok [INFO] [stdout] test src/param/volume.rs - param::volume::Volume::from_str (line 24) ... ok [INFO] [stdout] test src/core/engine.rs - core::engine::EngineBuilder (line 176) ... ok [INFO] [stdout] test src/param/quantity.rs - param::quantity::Quantity::from_str_rounded (line 26) ... ok [INFO] [stdout] test src/param/position_size.rs - param::position_size::PositionSize::from_quantity_and_side (line 37) ... ok [INFO] [stdout] test src/pretrade/mutations.rs - pretrade::mutations::Mutations (line 82) ... ok [INFO] [stdout] test src/pretrade/policy.rs - pretrade::policy::CheckPreTradeStartPolicy (line 36) ... ok [INFO] [stdout] test src/param/quantity.rs - param::quantity::Quantity::from_str (line 24) ... ok [INFO] [stdout] test src/pretrade/mutations.rs - pretrade::mutations::RiskMutation (line 30) ... ok [INFO] [stdout] test src/pretrade/reject.rs - pretrade::reject::Reject (line 187) ... ok [INFO] [stdout] test src/pretrade/policy.rs - pretrade::policy::Policy (line 110) ... ok [INFO] [stdout] test src/pretrade/reject.rs - pretrade::reject::RejectScope (line 24) ... ok [INFO] [stdout] test src/pretrade/policies/order_size_limit.rs - pretrade::policies::order_size_limit::OrderSizeLimitPolicy (line 44) ... ok [INFO] [stdout] test src/pretrade/policies/rate_limit.rs - pretrade::policies::rate_limit::RateLimitPolicy (line 32) ... ok [INFO] [stdout] test src/pretrade/reservation.rs - pretrade::reservation::Reservation (line 58) ... ok [INFO] [stdout] test src/pretrade/request.rs - pretrade::request::Request::execute (line 55) ... ok [INFO] [stdout] test src/pretrade/policies/pnl_killswitch.rs - pretrade::policies::pnl_killswitch::PnlKillSwitchPolicy (line 34) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.40s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "3ae3d535102d9d795e762c4179e1d967d9c91d05c3bcef7a21b2a0eddfe318ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3ae3d535102d9d795e762c4179e1d967d9c91d05c3bcef7a21b2a0eddfe318ec", kill_on_drop: false }` [INFO] [stdout] 3ae3d535102d9d795e762c4179e1d967d9c91d05c3bcef7a21b2a0eddfe318ec