[INFO] fetching crate transforms 2.2.0...
[INFO] testing transforms-2.2.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate transforms 2.2.0 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate transforms 2.2.0
[INFO] finished tweaking crates.io crate transforms 2.2.0
[INFO] tweaked toml for crates.io crate transforms 2.2.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate transforms 2.2.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate transforms 2.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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded criterion-plot v0.6.0
[INFO] [stderr]   Downloaded criterion v0.7.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15
[INFO] running `Command { std: "docker" "start" "c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15", 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" "c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15", 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" "c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling transforms v2.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.85s
[INFO] running `Command { std: "docker" "inspect" "c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15", 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" "c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling jiff-core v0.1.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling cobs v0.3.0
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling postcard v1.1.3
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling transforms v2.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling jiff v0.2.35
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling criterion-plot v0.6.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling env_filter v2.0.0
[INFO] [stderr]    Compiling criterion v0.7.0
[INFO] [stderr]    Compiling env_logger v0.11.11
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 18.78s
[INFO] running `Command { std: "docker" "inspect" "c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15", 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" "c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/transforms-d0ba71f26d9ddf3a)
[INFO] [stdout] 
[INFO] [stdout] running 184 tests
[INFO] [stdout] test core::buffer::tests::buffer_tests::duplicate_timestamp_insert_is_a_last_write_wins_upsert ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::coverage_reports_the_stored_range_of_a_dynamic_buffer ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::empty_buffer ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::insert_kind_mismatch_on_fresh_buffer_pins_no_frames ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::get_out_of_range_reports_covered_range ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::insert_and_get ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::insert_expires_entries_older_than_max_age ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::frame_pins_survive_the_buffer_being_emptied ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::insert_rejects_static_dynamic_mixing ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::get_nearest ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::get_on_empty_buffer_reports_no_transforms ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::out_of_order_insert_does_not_regress_latest_timestamp ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::remove_expired ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::remove_before_preserves_static_transforms ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::dynamic_buffer_never_expires_entries ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::zero_is_an_ordinary_dynamic_timestamp ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::remove_before_resets_the_expiry_reference ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::insert_and_get_static ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::zero_max_age_out_of_order_insert_is_ok_but_immediately_evicted ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::insert_rejects_child_frame_mismatch_static ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::remove_before ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::add_transform_rejects_a_republished_chain_that_left_validity ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::single_point_buffer ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::eviction_boundary_retains_a_sample_exactly_max_age_old ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::coverage_reports_empty_for_new_and_drained_buffers ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::coverage_reports_all_time_for_a_filled_static_buffer ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::emptied_dynamic_buffer_keeps_its_kind ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::static_insert_is_a_last_write_wins_upsert ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::a_deep_common_trunk_is_truncated_to_the_divergent_hops ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::eviction_boundary_evicts_one_nanosecond_past_max_age ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::insert_rejects_invalid_transforms ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::a_lookup_that_cannot_connect_its_frames_reports_why_not_an_overflow ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::add_transform_rejects_reparenting ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::add_transform_rejects_static_dynamic_mixing ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::basic_branch_navigation ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::add_transform_rejects_cycles ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::duplicate_timestamp_add_is_a_last_write_wins_upsert ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::failed_insert_does_not_bypass_cycle_detection ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::get_transform_at_unknown_fixed_frame_returns_not_found ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::basic_chain_linear ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::basic_chained_interpolation ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::add_transform_rejects_self_referential_frames ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::duplicate_static_add_is_a_last_write_wins_upsert ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::get_transform_at_missing_data_at_requested_times_returns_error ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::get_transform_disconnected_trees_returns_disconnected ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::an_overflowing_lookup_reports_the_flat_variant_only_where_it_inverts ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::basic_chain_linear_reverse ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::get_transform_at_across_a_reparented_hop_depends_on_the_fixed_frame ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::get_transform_for_same_frame_returns_identity_on_empty_registry ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::get_transform_partial_chain_reports_failing_frame ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::hops_follow_the_frame_rule_of_transform_composition ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::get_transform_for_success_with_point ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::basic_common_parent_elimination ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::get_transform_for_propagates_lookup_error ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::get_transform_mid_chain_gap_reports_gap_frame ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::get_transform_unknown_frame_takes_precedence_over_data_gap ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::get_transform_unknown_frame_returns_not_found ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::latest_common_time_reports_drained_frames_as_no_common_time ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::latest_common_time_reports_disjoint_ranges_as_no_common_time ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::basic_exact_match ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::latest_common_time_skips_static_hops_in_mixed_chains ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::latest_common_time_returns_static_for_all_static_chains ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::mixed_static_dynamic_chain_resolves_and_interpolates ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::basic_interpolation ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::basic_chain_rotation ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::latest_common_time_answers_at_the_single_shared_instant_of_touching_ranges ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::latest_common_time_diagnoses_unknown_and_disconnected_like_a_lookup ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::latest_common_time_is_bounded_by_the_laggiest_hop ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::latest_common_time_ignores_a_drained_edge_above_the_common_ancestor ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::latest_common_time_ignores_edges_above_the_common_ancestor ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_accepts_a_sibling_move ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_accepts_a_stale_seed_and_moves_coverage_backwards ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_collapses_latest_common_time_to_the_seed ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::remove_transforms_before_preserves_static_transforms ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::remove_transforms_before_removes_old_dynamic_transforms ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::remove_frame_mid_tree_strands_descendants ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::remove_frame_then_readding_root_reconnects_subtree ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::remove_transforms_before_keeps_the_buffer_kind ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::remove_transforms_before_keeps_the_parent_pin ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::remove_transforms_before_leaves_drained_frames_diagnosable ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::public_types_are_send_and_sync ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_diagnoses_the_frame_before_a_broken_seed ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_drops_the_frames_history_loudly ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_joins_two_disconnected_trees ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_rejects_a_self_referential_or_non_finite_seed ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_rejects_a_kind_change_in_both_directions ... ok
[INFO] [stdout] test core::buffer::tests::buffer_tests::insert_rejects_child_frame_mismatch_dynamic ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::not_found_at_names_an_edge_on_the_connecting_chain ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::not_found_at_renders_both_coverage_cases_in_seconds ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_accepts_an_unknown_new_parent ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_then_cleanup_keeps_the_new_pin_and_kind ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_rejects_an_unchanged_parent ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_diagnoses_a_root_and_an_unknown_frame_differently ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_rejects_cycles ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_moves_a_static_frame_and_keeps_it_static ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_seed_survives_a_lookup_bit_for_bit ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_moves_a_static_frame_in_a_max_age_registry ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_moves_the_whole_subtree ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_preserves_the_max_age_expiry_policy ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_refuses_the_old_edges_publisher_and_grows_coverage_back ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_rejects_a_non_unit_rotation_seed_as_the_flat_variant ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::reparent_frame_checks_the_topology_before_the_seed ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::same_frame_lookup_returns_identity ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::successive_reparent_frames_pay_per_move_and_can_disjoin_a_chain ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::static_transform_applies_directly_to_any_timestamp ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::time_travel_different_frames ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::conjugate ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::zero_max_age_keeps_only_the_newest_sample ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::identity_quaternion ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::time_travel_all_frames_equal_returns_identity ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::time_travel_source_equals_fixed_returns_inverted_target_leg ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::single_hop_lookup_returns_the_stored_transform_bit_for_bit ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::static_chain_composes_with_timestamped_data ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::time_travel_target_equals_fixed_returns_source_leg ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::time_travel_branching_tree ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::normalize_rejects_non_finite_quaternions ... ok
[INFO] [stdout] test geometry::point::tests::point_tests::transform_composes_orientation_on_the_left ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::with_max_age_expires_old_transforms_on_insert ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::normalize_zero_length ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::mul ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::time_travel_with_rotation ... ok
[INFO] [stdout] test geometry::point::tests::point_tests::new_exposes_the_components_it_was_built_from ... ok
[INFO] [stdout] test geometry::point::tests::point_tests::transform_from_a_different_frame_is_rejected_with_both_frames_named ... ok
[INFO] [stdout] test geometry::point::tests::point_tests::transform_from_a_different_time_is_rejected_with_both_times_named ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::normalize ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::quaternion_creation ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::norm ... ok
[INFO] [stdout] test core::registry::tests::registry_tests::time_travel_same_time ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::rotate_vector_multiple_axes ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::slerp_edge_cases ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::slerp_interior_points_follow_the_shortest_geodesic ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::slerp_interior_point_is_bit_pinned ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::scale ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::interpolate_rejects_mismatched_frames ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::interpolate_rejects_static_endpoints ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::quaternion_multiplication_properties ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::slerp ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::rotate_vector ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::slerp_clamps_t_to_the_unit_interval ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::slerp_uses_shortest_path_for_antipodal_quaternions ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::slerp_near_identity_point_is_bit_pinned ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::inverse ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::errors_survive_wall_clock_timestamps ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::inverse_rejects_overflow_in_any_single_translation_component ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::interpolate_over_a_zero_span_returns_the_earlier_endpoint ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::inverse_reports_a_non_finite_translation ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::mul_inverse_identity ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::mul_rejects_mismatched_timestamps ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::weighted_sum_pairs_each_weight_with_its_operand ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::interpolate_rejects_out_of_range_timestamps ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::slerp_near_antipodal_point_is_bit_pinned ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::mul_rejects_reversed_composition ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::slerp_takes_the_trig_branch_right_up_to_the_switchover ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::inverse_renormalizes_a_rotation_that_drifted_off_the_unit_sphere ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::timestamp_mismatch_payload_carries_both_times_in_seconds ... ok
[INFO] [stdout] test geometry::vector3::tests::vector3_tests::mul_scalar ... ok
[INFO] [stdout] test geometry::vector3::tests::vector3_tests::sub ... ok
[INFO] [stdout] test time::timestamp::tests::timestamp_tests::a_duration_wider_than_the_timestamp_range_is_rejected_both_ways ... ok
[INFO] [stdout] test time::timestamp::tests::timestamp_tests::adding_beyond_the_representable_range_overflows ... ok
[INFO] [stdout] test time::timestamp::tests::timestamp_tests::as_seconds ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::mul_translation ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::mul_with_rotation ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::new_exposes_the_components_it_was_built_from ... ok
[INFO] [stdout] test time::timestamp::tests::timestamp_tests::as_seconds_accuracy_boundary_is_2_pow_53_nanos ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::new_rejects_transforms_that_would_corrupt_every_lookup ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::the_unit_norm_boundary_is_exactly_the_published_tolerance ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::mul_rejects_unrelated_frames ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::mul_static_to_timestamped ... ok
[INFO] [stdout] test time::timestamp::tests::timestamp_tests::now_returns_a_positive_wall_clock_time ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::mul_timestamped_to_static ... ok
[INFO] [stdout] test time::timestamp::tests::timestamp_tests::ordering ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::self_multiplication_is_same_frame_multiplication ... ok
[INFO] [stdout] test time::timestamp::tests::timestamp_tests::subtraction_spans_the_whole_range ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::same_child_multiplication_is_rejected_with_the_frame_named ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::unrelated_frames_multiplication_names_both_sides ... ok
[INFO] [stdout] test geometry::transform::tests::transform_tests::validate_checks_a_transform_of_unknown_provenance ... ok
[INFO] [stdout] test geometry::vector3::tests::vector3_tests::add ... ok
[INFO] [stdout] test geometry::vector3::tests::vector3_tests::div_scalar ... ok
[INFO] [stdout] test time::timestamp::tests::timestamp_tests::checked_sub_below_zero_underflows ... ok
[INFO] [stdout] test time::timestamp::tests::timestamp_tests::creation ... ok
[INFO] [stdout] test time::timestamp::tests::timestamp_tests::the_top_of_the_range_is_an_ordinary_timestamp ... ok
[INFO] [stdout] test time::timestamp::tests::timestamp_tests::as_seconds_accuracy_loss ... ok
[INFO] [stdout] test time::timestamp::tests::timestamp_tests::try_now_returns_the_current_time_without_panicking ... ok
[INFO] [stdout] test geometry::quaternion::tests::quaternion_tests::slerp_near_antipodal_pair_stays_unit_and_on_the_small_arc ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 184 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests transforms
[INFO] [stdout] 
[INFO] [stdout] running 35 tests
[INFO] [stdout] test src/core/registry/mod.rs - core::registry::Registry<T>::get_transform_at (line 289) ... ok
[INFO] [stdout] test src/geometry/quaternion/mod.rs - geometry::quaternion::Quaternion::slerp (line 268) ... ok
[INFO] [stdout] test src/core/registry/mod.rs - core::registry::Registry<T>::latest_common_time (line 367) ... ok
[INFO] [stdout] test src/geometry/transform/mod.rs - geometry::transform::Transform (line 56) ... ok
[INFO] [stdout] test src/geometry/quaternion/mod.rs - geometry::quaternion::Quaternion::rotate_vector (line 222) ... ok
[INFO] [stdout] test src/core/registry/mod.rs - core::registry::Registry<T>::remove_frame (line 511) ... ok
[INFO] [stdout] test src/geometry/point/mod.rs - geometry::point::Point (line 21) ... ok
[INFO] [stdout] test src/../README.md - readme (line 41) ... ok
[INFO] [stdout] test src/geometry/quaternion/mod.rs - geometry::quaternion::Quaternion::identity (line 66) ... ok
[INFO] [stdout] test src/geometry/quaternion/mod.rs - geometry::quaternion::Quaternion::from_wxyz (line 43) ... ok
[INFO] [stdout] test src/geometry/point/mod.rs - geometry::point::Point<T>::new (line 62) ... ok
[INFO] [stdout] test src/core/registry/mod.rs - core::registry::Registry<T>::get_transform (line 192) ... ok
[INFO] [stdout] test src/geometry/quaternion/mod.rs - geometry::quaternion::Quaternion::norm (line 164) ... ok
[INFO] [stdout] test src/core/registry/mod.rs - core::registry::Registry<T>::reparent_frame (line 604) ... ok
[INFO] [stdout] test src/geometry/quaternion/mod.rs - geometry::quaternion::Quaternion::normalize (line 123) ... ok
[INFO] [stdout] test src/geometry/quaternion/mod.rs - geometry::quaternion::Quaternion::conjugate (line 89) ... ok
[INFO] [stdout] test src/geometry/transform/mod.rs - geometry::transform::Transform<T>::new (line 115) ... ok
[INFO] [stdout] test src/geometry/transform/mod.rs - geometry::transform::Transform<T>::interpolate (line 347) ... ok
[INFO] [stdout] test src/geometry/vector3/mod.rs - geometry::vector3::Vector3 (line 15) ... ok
[INFO] [stdout] test src/geometry/transform/mod.rs - geometry::transform::Transform<T>::inverse (line 436) ... ok
[INFO] [stdout] test src/geometry/vector3/mod.rs - geometry::vector3::Vector3::new (line 40) ... ok
[INFO] [stdout] test src/time/timestamp/mod.rs - time::timestamp::Timestamp::as_seconds_lossy (line 201) ... ok
[INFO] [stdout] test src/geometry/transform/traits.rs - geometry::transform::traits::Localized (line 18) ... ok
[INFO] [stdout] test src/lib.rs - (line 65) ... ok
[INFO] [stdout] test src/geometry/transform/mod.rs - geometry::transform::Transform<T>::static_between (line 179) ... ok
[INFO] [stdout] test src/time/stamp.rs - time::stamp::Stamp (line 31) ... ok
[INFO] [stdout] test src/geometry/transform/mod.rs - geometry::transform::Transform<T>::validate (line 283) ... ok
[INFO] [stdout] test src/time/timestamp/mod.rs - time::timestamp::Timestamp::try_now (line 86) ... ok
[INFO] [stdout] test src/time/timestamp/mod.rs - time::timestamp::Timestamp::now (line 56) ... ok
[INFO] [stdout] test src/time/timestamp/mod.rs - time::timestamp::Timestamp::from_nanos (line 128) ... ok
[INFO] [stdout] test src/geometry/transform/traits.rs - geometry::transform::traits::Transformable (line 69) ... ok
[INFO] [stdout] test src/time/traits.rs - time::traits::TimePoint (line 36) ... ok
[INFO] [stdout] test src/time/timestamp/mod.rs - time::timestamp::Timestamp::zero (line 113) ... ok
[INFO] [stdout] test src/time/timestamp/mod.rs - time::timestamp::Timestamp::as_seconds (line 170) ... ok
[INFO] [stdout] test src/time/timestamp/mod.rs - time::timestamp::Timestamp::as_nanos (line 143) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.96s; merged doctests compilation took 0.90s
[INFO] running `Command { std: "docker" "inspect" "c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15", kill_on_drop: false }`
[INFO] [stdout] c0c5adaaccd5e19d6eb30549dd065d1f338733caf98dc4698c4509a23dd1ad15
