nixbot

builds

cancelled checks.aarch64-linux.tests build #278 · raw · eval 507 ms · 28.6 MiB allocated · ·

1this derivation will be built:2  /nix/store/0m2pa8bg1dlvl6iiqpilf0wvshbj248h-horae-tests-0.1.0.drv3building '/nix/store/0m2pa8bg1dlvl6iiqpilf0wvshbj248h-horae-tests-0.1.0.drv' on 'grpc://farm.numtide.com:50051?client-cert=/run/secrets/vars/per-machine/bld1/nix-farm-ci/crt&client-key=/run/secrets/vars/per-machine/bld1/nix-farm-ci/key&connect-timeout=22&system=aarch64-linux'4building '/nix/store/0m2pa8bg1dlvl6iiqpilf0wvshbj248h-horae-tests-0.1.0.drv' on farm.numtide.com:500515horae-tests-0.1.0> elastic-arm-779dd3ca: building 0m2pa8bg1dlvl6iiqpilf0wvshbj248h-horae-tests-0.1.0.drv6horae-tests-0.1.0> Running phase: unpackPhase7horae-tests-0.1.0> unpacking source archive /nix/store/17pxp6yp57n1cl142q3p6zs5izl5z2vr-source8horae-tests-0.1.0> source root is source9horae-tests-0.1.0> Running phase: patchPhase10horae-tests-0.1.0> Executing configureCargoCommonVars11horae-tests-0.1.0> decompressing cargo artifacts from /nix/store/iz15gsb1vnxn8iiqaks5c263ms6mxl74-horae-checks-deps-0.1.0/target.tar.zst to target12horae-tests-0.1.0> Running phase: updateAutotoolsGnuConfigScriptsPhase13horae-tests-0.1.0> Running phase: configurePhase14horae-tests-0.1.0> will append /build/source/.cargo-home/config.toml with contents of /nix/store/kqxgprj432hnlh0pqlk1779vyabfmw4i-vendor-cargo-deps/config.toml15horae-tests-0.1.0> default configurePhase, nothing to do16horae-tests-0.1.0> Running phase: buildPhase17horae-tests-0.1.0> +++ command cargo nextest run -p horae-core18horae-tests-0.1.0>    Compiling proc-macro2 v1.0.10619horae-tests-0.1.0>    Compiling serde_core v1.0.22820horae-tests-0.1.0>    Compiling serde v1.0.22821horae-tests-0.1.0>    Compiling num-traits v0.2.1922horae-tests-0.1.0>    Compiling quote v1.0.4623horae-tests-0.1.0>    Compiling syn v2.0.11824horae-tests-0.1.0>    Compiling uuid v1.23.425horae-tests-0.1.0>    Compiling serde_derive v1.0.22826horae-tests-0.1.0>    Compiling thiserror-impl v2.0.1827horae-tests-0.1.0>    Compiling thiserror v2.0.1828horae-tests-0.1.0>    Compiling chrono v0.4.4529horae-tests-0.1.0>    Compiling horae-core v0.1.0 (/build/source/crates/core)30horae-tests-0.1.0>     Finished `test` profile [unoptimized + debuginfo] target(s) in 13.33s31horae-tests-0.1.0> ------------32horae-tests-0.1.0>  Nextest run ID a063db41-673e-4cf9-b087-2ae36a855f1c with nextest profile: default33horae-tests-0.1.0>     Starting 191 tests across 1 binary34horae-tests-0.1.0>      Running [ 00:00:00]              0/191: 8 running, 0 passed, 0 skipped     35horae-tests-0.1.0>              [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band36horae-tests-0.1.0>              [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget37horae-tests-0.1.0>              [ 00:00:00] horae-core ls_exclude_blank_but_include_zero_allowances38horae-tests-0.1.0>              [ 00:00:00] horae-core ividual_overruns_or_recover_overflow_as_zero39horae-tests-0.1.0>              [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding40horae-tests-0.1.0>              [ 00:00:00] horae-core jects_invalid_inputs_and_widens_large_values41horae-tests-0.1.0>              [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows42horae-tests-0.1.0>      Running [ 00:00:00] =>          26/191: 8 running, 0 passed, 0 skipped     43horae-tests-0.1.0>              [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band44horae-tests-0.1.0>              [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget45horae-tests-0.1.0>              [ 00:00:00] horae-core ls_exclude_blank_but_include_zero_allowances46horae-tests-0.1.0>              [ 00:00:00] horae-core ividual_overruns_or_recover_overflow_as_zero47horae-tests-0.1.0>              [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding48horae-tests-0.1.0>              [ 00:00:00] horae-core jects_invalid_inputs_and_widens_large_values49horae-tests-0.1.0>              [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows50horae-tests-0.1.0>         PASS [   0.010s] horae-core budget::tests::current_band_is_the_highest_reached51horae-tests-0.1.0>         PASS [   0.007s] horae-core budget::tests::display_percentage_rounds_clamps_and_never_overflows52horae-tests-0.1.0>         PASS [   0.010s] horae-core budget::tests::allocated_totals_exclude_blank_but_include_zero_allowances53horae-tests-0.1.0>         PASS [   0.013s] horae-core budget::tests::configured_alert_threshold_is_exact_without_rounding54horae-tests-0.1.0>         PASS [   0.016s] horae-core budget::tests::configured_alert_accepts_zero_percent_but_not_zero_budget55horae-tests-0.1.0>         PASS [   0.016s] horae-core budget::tests::allocated_totals_do_not_hide_individual_overruns_or_recover_overflow_as_zero56horae-tests-0.1.0>         PASS [   0.019s] horae-core budget::tests::configured_alert_rejects_invalid_inputs_and_widens_large_values57horae-tests-0.1.0>         PASS [   0.007s] horae-core budget::tests::no_band_for_zero_or_missing_budget58horae-tests-0.1.0>         PASS [   0.021s] horae-core budget::tests::a_single_jump_announces_every_crossed_band59horae-tests-0.1.0>         PASS [   0.013s] horae-core budget::tests::each_crossing_is_announced_once60horae-tests-0.1.0>         PASS [   0.016s] horae-core budget::tests::drop_below_a_band_does_not_fire_but_current_resets61horae-tests-0.1.0>         PASS [   0.012s] horae-core budget::tests::large_values_do_not_overflow62horae-tests-0.1.0>         PASS [   0.008s] horae-core client::tests::default_rate_rejects_negative_fractional_cent_overflow_and_invalid_text63horae-tests-0.1.0>         PASS [   0.008s] horae-core client::tests::default_rate_preserves_absence_zero_and_exact_large_amounts64horae-tests-0.1.0>         PASS [   0.007s] horae-core client::tests::profile_accepts_supported_currencies_and_unicode_character_limit65horae-tests-0.1.0>         PASS [   0.004s] horae-core duration::tests::format_clamps_negative_to_zero66horae-tests-0.1.0>         PASS [   0.005s] horae-core duration::tests::parse_colon67horae-tests-0.1.0>         PASS [   0.009s] horae-core duration::tests::format_hhmm_pads_minutes68horae-tests-0.1.0>         PASS [   0.021s] horae-core budget::tests::over_budget_fires_even_without_a_configured_100_band69horae-tests-0.1.0>         PASS [   0.016s] horae-core client::tests::optional_text_normalizes_only_blank_fields70horae-tests-0.1.0>         PASS [   0.009s] horae-core duration::tests::minutes_between_is_exact_no_minimum71horae-tests-0.1.0>         PASS [   0.010s] horae-core duration::tests::format_round_trip72horae-tests-0.1.0>         PASS [   0.005s] horae-core duration::tests::parse_decimal73horae-tests-0.1.0>         PASS [   0.019s] horae-core client::tests::profile_rejects_blank_overlong_and_null_names74horae-tests-0.1.0>         PASS [   0.007s] horae-core duration::tests::parse_rejects_excessive_decimal_precision_and_numerator75horae-tests-0.1.0>         PASS [   0.011s] horae-core duration::tests::parse_decimal_rounds_half_minutes_exactly76horae-tests-0.1.0>         PASS [   0.007s] horae-core importers::harvest::convert::tests::conversion_handles_high_precision_without_intermediate_overflow77horae-tests-0.1.0>      Running [ 00:00:00] =>         27/191: 8 running, 27 passed, 0 skipped     78horae-tests-0.1.0>              [ 00:00:00] horae-core unsupported_currency_and_null_billing_fields79horae-tests-0.1.0>              [ 00:00:00] horae-core se_preserves_u32_boundary_without_saturating80horae-tests-0.1.0>              [ 00:00:00] horae-core rse_rejects_colon_overflow_without_panicking81horae-tests-0.1.0>              [ 00:00:00] horae-core cts_negative_non_finite_and_malformed_values82horae-tests-0.1.0>              [ 00:00:00] horae-core ests::parse_round_trips_each_minute_in_a_day83horae-tests-0.1.0>              [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals84horae-tests-0.1.0>              [ 00:00:00] horae-core he_i64_boundary_and_rejects_rounding_past_it85horae-tests-0.1.0>      Running [ 00:00:00] ==>        52/191: 8 running, 27 passed, 0 skipped     86horae-tests-0.1.0>              [ 00:00:00] horae-core unsupported_currency_and_null_billing_fields87horae-tests-0.1.0>              [ 00:00:00] horae-core se_preserves_u32_boundary_without_saturating88horae-tests-0.1.0>              [ 00:00:00] horae-core rse_rejects_colon_overflow_without_panicking89horae-tests-0.1.0>              [ 00:00:00] horae-core cts_negative_non_finite_and_malformed_values90horae-tests-0.1.0>              [ 00:00:00] horae-core ests::parse_round_trips_each_minute_in_a_day91horae-tests-0.1.0>              [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals92horae-tests-0.1.0>              [ 00:00:00] horae-core he_i64_boundary_and_rejects_rounding_past_it93horae-tests-0.1.0>         PASS [   0.025s] horae-core client::tests::profile_rejects_unsupported_currency_and_null_billing_fields94horae-tests-0.1.0>         PASS [   0.015s] horae-core duration::tests::parse_preserves_u32_boundary_without_saturating95horae-tests-0.1.0>         PASS [   0.016s] horae-core duration::tests::parse_rejects_colon_overflow_without_panicking96horae-tests-0.1.0>         PASS [   0.018s] horae-core duration::tests::parse_rejects_negative_non_finite_and_malformed_values97horae-tests-0.1.0>         PASS [   0.017s] horae-core duration::tests::parse_round_trips_each_minute_in_a_day98horae-tests-0.1.0>         PASS [   0.011s] horae-core importers::harvest::convert::tests::conversion_preserves_the_i64_boundary_and_rejects_rounding_past_it99horae-tests-0.1.0>         PASS [   0.008s] horae-core importers::harvest::convert::tests::conversion_reports_precision_and_numerator_limits100horae-tests-0.1.0>         PASS [   0.010s] horae-core importers::harvest::convert::tests::conversion_rejects_unrepresentable_scaled_values_without_panicking101horae-tests-0.1.0>         PASS [   0.005s] horae-core importers::harvest::convert::tests::hours_common_values_are_exact102horae-tests-0.1.0>         PASS [   0.012s] horae-core importers::harvest::convert::tests::garbage_is_rejected103horae-tests-0.1.0>         PASS [   0.009s] horae-core importers::harvest::convert::tests::money_rounds_third_decimal_half_up104horae-tests-0.1.0>         PASS [   0.018s] horae-core importers::harvest::convert::tests::high_precision_fraction_straddles_the_half_minute_exactly105horae-tests-0.1.0>         PASS [   0.012s] horae-core importers::harvest::convert::tests::negative_is_rejected106horae-tests-0.1.0>         PASS [   0.016s] horae-core importers::harvest::convert::tests::money_common_values_are_exact107horae-tests-0.1.0>         PASS [   0.020s] horae-core importers::harvest::convert::tests::leading_and_trailing_forms_parse108horae-tests-0.1.0>         PASS [   0.020s] horae-core importers::harvest::convert::tests::money_round_trip_against_exporter_transform109horae-tests-0.1.0>         PASS [   0.021s] horae-core importers::harvest::convert::tests::hours_round_trip_against_exporter_transform110horae-tests-0.1.0>         PASS [   0.010s] horae-core importers::harvest::convert::tests::round_half_up_at_the_boundary111horae-tests-0.1.0>         PASS [   0.015s] horae-core importers::harvest::keys::tests::client_key_equal_across_case_and_whitespace112horae-tests-0.1.0>         PASS [   0.011s] horae-core importers::harvest::keys::tests::normalize_matches_sql_harvest_norm_contract113horae-tests-0.1.0>         PASS [   0.012s] horae-core importers::harvest::keys::tests::composite_components_do_not_collide114horae-tests-0.1.0>         PASS [   0.005s] horae-core importers::harvest::keys::tests::project_key_prefers_code_when_present115horae-tests-0.1.0>         PASS [   0.012s] horae-core importers::harvest::keys::tests::normalize_trims_and_case_folds116horae-tests-0.1.0>         PASS [   0.012s] horae-core importers::harvest::keys::tests::occurrence_counter_keys_are_independent117horae-tests-0.1.0>         PASS [   0.012s] horae-core importers::harvest::keys::tests::occurrence_counter_numbers_repeats_from_zero118horae-tests-0.1.0>      Running [ 00:00:00] ==>        56/191: 8 running, 56 passed, 0 skipped     119horae-tests-0.1.0>              [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals120horae-tests-0.1.0>              [ 00:00:00] horae-core ts::time_entry_key_distinguishes_and_matches121horae-tests-0.1.0>              [ 00:00:00] horae-core d_new_inline_errors_reconcile_across_batches122horae-tests-0.1.0>              [ 00:00:00] horae-core quires_binding_and_no_imports_or_active_work123horae-tests-0.1.0>              [ 00:00:00] horae-core conserves_header_amount_and_bounds_each_line124horae-tests-0.1.0>              [ 00:00:00] horae-core s_when_errored_counts_match_collected_errors125horae-tests-0.1.0>              [ 00:00:00] horae-core cation_handles_empty_zero_and_full_discounts126horae-tests-0.1.0>         PASS [   0.019s] horae-core importers::harvest::keys::tests::project_key_falls_back_to_client_and_name127horae-tests-0.1.0>         PASS [   0.008s] horae-core importers::harvest::types::tests::import_modes_display_their_wire_names128horae-tests-0.1.0>         PASS [   0.007s] horae-core importers::harvest::types::tests::does_not_reconcile_when_an_errored_count_has_no_reported_error129horae-tests-0.1.0>         PASS [   0.012s] horae-core importers::harvest::keys::tests::task_key_shared_across_projects130horae-tests-0.1.0>      Running [ 00:00:00] ==>        56/191: 8 running, 56 passed, 0 skipped     131horae-tests-0.1.0>              [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals132horae-tests-0.1.0>              [ 00:00:00] horae-core ts::time_entry_key_distinguishes_and_matches133horae-tests-0.1.0>              [ 00:00:00] horae-core d_new_inline_errors_reconcile_across_batches134horae-tests-0.1.0>              [ 00:00:00] horae-core quires_binding_and_no_imports_or_active_work135horae-tests-0.1.0>              [ 00:00:00] horae-core conserves_header_amount_and_bounds_each_line136horae-tests-0.1.0>              [ 00:00:00] horae-core s_when_errored_counts_match_collected_errors137horae-tests-0.1.0>              [ 00:00:00] horae-core cation_handles_empty_zero_and_full_discounts138horae-tests-0.1.0>      Running [ 00:00:00] ===>       80/191: 8 running, 80 passed, 0 skipped     139horae-tests-0.1.0>              [ 00:00:00] horae-core keeps_zero_and_explicit_missing_project_rate140horae-tests-0.1.0>              [ 00:00:00] horae-core ed_rate_mode_ignores_unselected_rate_sources141horae-tests-0.1.0>              [ 00:00:00] horae-core addition_rejects_overflow_in_both_directions142horae-tests-0.1.0>              [ 00:00:00] horae-core currency_checks_and_representable_boundaries143horae-tests-0.1.0>              [ 00:00:00] horae-core format_cents_groups_thousands_and_keeps_sign144horae-tests-0.1.0>              [ 00:00:00] horae-core format_cents_plain_keeps_sign_below_one_unit145horae-tests-0.1.0>              [ 00:00:00] horae-core rse_cents_is_exact_where_a_float_would_drift146horae-tests-0.1.0>         PASS [   0.014s] horae-core importers::harvest::types::tests::archived_errors_and_new_inline_errors_reconcile_across_batches147horae-tests-0.1.0>         PASS [   0.016s] horae-core importers::harvest::keys::tests::time_entry_key_distinguishes_and_matches148horae-tests-0.1.0>         PASS [   0.012s] horae-core importers::harvest::types::tests::reconciles_when_errored_counts_match_collected_errors149horae-tests-0.1.0>         PASS [   0.023s] horae-core importers::harvest::types::account_switch_tests::account_switch_requires_binding_and_no_imports_or_active_work150horae-tests-0.1.0>         PASS [   0.015s] horae-core invoice::tests::discount_allocation_handles_empty_zero_and_full_discounts151horae-tests-0.1.0>         PASS [   0.016s] horae-core invoice::tests::discount_allocation_rejects_negative_lines_and_subtotal_overflow152horae-tests-0.1.0>         PASS [   0.005s] horae-core invoice::tests::discounted_fee_contribution_leaves_discount_available153horae-tests-0.1.0>         PASS [   0.013s] horae-core invoice::tests::discount_allocation_supports_maximum_representable_subtotal154horae-tests-0.1.0>         PASS [   0.010s] horae-core invoice::tests::invoice_adjustments_reject_negative_subtotal_and_overflow155horae-tests-0.1.0>         PASS [   0.010s] horae-core invoice::tests::invoice_adjustments_round_components_half_up156horae-tests-0.1.0>         PASS [   0.018s] horae-core invoice::tests::discount_allocation_uses_largest_remainder_then_stable_source_order157horae-tests-0.1.0>         PASS [   0.031s] horae-core invoice::tests::discount_allocation_conserves_header_amount_and_bounds_each_line158horae-tests-0.1.0>         PASS [   0.006s] horae-core invoice::tests::line_amount_half_hour159horae-tests-0.1.0>         PASS [   0.012s] horae-core invoice::tests::line_amount_accepts_large_representable_amounts160horae-tests-0.1.0>         PASS [   0.017s] horae-core invoice::tests::line_amount_90_minutes161horae-tests-0.1.0>         PASS [   0.093s] horae-core importers::harvest::convert::tests::conversion_matches_exact_scaled_rationals162horae-tests-0.1.0>         PASS [   0.012s] horae-core invoice::tests::line_amount_odd_minutes163horae-tests-0.1.0>         PASS [   0.023s] horae-core invoice::tests::invoice_adjustments_apply_discount_before_non_compounding_taxes164horae-tests-0.1.0>         PASS [   0.013s] horae-core invoice::tests::line_amount_exact_hour165horae-tests-0.1.0>         PASS [   0.009s] horae-core invoice::tests::line_amount_rounds_half_cents_up_not_to_even166horae-tests-0.1.0>         PASS [   0.009s] horae-core invoice::tests::line_amount_zero_minutes167horae-tests-0.1.0>         PASS [   0.015s] horae-core invoice::tests::line_amount_rejects_unrepresentable_results168horae-tests-0.1.0>         PASS [   0.008s] horae-core invoice::tests::resolve_rate_cascade169horae-tests-0.1.0>         PASS [   0.015s] horae-core invoice::tests::line_amount_zero_rate170horae-tests-0.1.0>      Running [ 00:00:00] ===>       80/191: 8 running, 80 passed, 0 skipped     171horae-tests-0.1.0>              [ 00:00:00] horae-core keeps_zero_and_explicit_missing_project_rate172horae-tests-0.1.0>              [ 00:00:00] horae-core ed_rate_mode_ignores_unselected_rate_sources173horae-tests-0.1.0>              [ 00:00:00] horae-core addition_rejects_overflow_in_both_directions174horae-tests-0.1.0>              [ 00:00:00] horae-core currency_checks_and_representable_boundaries175horae-tests-0.1.0>              [ 00:00:00] horae-core format_cents_groups_thousands_and_keeps_sign176horae-tests-0.1.0>              [ 00:00:00] horae-core format_cents_plain_keeps_sign_below_one_unit177horae-tests-0.1.0>              [ 00:00:00] horae-core rse_cents_is_exact_where_a_float_would_drift178horae-tests-0.1.0>      Running [ 00:00:00] ====>    114/191: 8 running, 114 passed, 0 skipped     179horae-tests-0.1.0>              [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection180horae-tests-0.1.0>              [ 00:00:00] horae-core ce_edges_without_extra_cross_resource_grants181horae-tests-0.1.0>              [ 00:00:00] horae-core tests::empty_selection_includes_member_floor182horae-tests-0.1.0>              [ 00:00:00] horae-core _added_and_removing_it_removes_the_dependent183horae-tests-0.1.0>              [ 00:00:00] horae-core ludes_floor_and_is_closed_under_dependencies184horae-tests-0.1.0>              [ 00:00:00] horae-core _and_project_manager_has_no_financial_grants185horae-tests-0.1.0>              [ 00:00:00] horae-core loor_cannot_be_removed_or_partially_modified186horae-tests-0.1.0>         PASS [   0.013s] horae-core invoice::tests::selected_rate_mode_ignores_unselected_rate_sources187horae-tests-0.1.0>         PASS [   0.014s] horae-core invoice::tests::selected_rate_keeps_zero_and_explicit_missing_project_rate188horae-tests-0.1.0>         PASS [   0.014s] horae-core money::tests::addition_rejects_overflow_in_both_directions189horae-tests-0.1.0>         PASS [   0.012s] horae-core money::tests::format_cents_groups_thousands_and_keeps_sign190horae-tests-0.1.0>         PASS [   0.007s] horae-core money::tests::format_cents_plain_keeps_sign_below_one_unit191horae-tests-0.1.0>         PASS [   0.005s] horae-core permissions::approvals::tests::catalog_grants_cannot_substitute_for_approval192horae-tests-0.1.0>         PASS [   0.012s] horae-core money::tests::parse_cents_is_exact_where_a_float_would_drift193horae-tests-0.1.0>         PASS [   0.018s] horae-core money::tests::addition_retains_currency_checks_and_representable_boundaries194horae-tests-0.1.0>         PASS [   0.009s] horae-core money::tests::parse_cents_rejects_what_it_cannot_represent195horae-tests-0.1.0>         PASS [   0.014s] horae-core money::tests::parse_cents_reads_whole_and_fractional_amounts196horae-tests-0.1.0>         PASS [   0.011s] horae-core permissions::approvals::tests::all_records_need_approval_scope_even_when_both_domains_are_readable197horae-tests-0.1.0>         PASS [   0.011s] horae-core money::tests::parse_cents_tolerates_grouping_spaces_and_signs198horae-tests-0.1.0>         PASS [   0.011s] horae-core permissions::approvals::tests::empty_record_sets_do_not_remove_identity_or_explicit_grant_checks199horae-tests-0.1.0>         PASS [   0.011s] horae-core permissions::approvals::tests::inactive_and_foreign_provenance_deny_even_with_all_grants200horae-tests-0.1.0>         PASS [   0.012s] horae-core permissions::approvals::tests::expense_read_scope_and_approval_scope_form_an_intersection201horae-tests-0.1.0>         PASS [   0.011s] horae-core permissions::approvals::tests::missing_dimensions_and_input_duplicates_do_not_infer_scope202horae-tests-0.1.0>         PASS [   0.008s] horae-core permissions::approvals::tests::reevaluation_does_not_reuse_prior_read_or_approval_success203horae-tests-0.1.0>         PASS [   0.009s] horae-core permissions::approvals::tests::one_unreadable_expense_denies_the_whole_supplied_set204horae-tests-0.1.0>         PASS [   0.010s] horae-core permissions::approvals::tests::no_expense_read_is_needed_when_there_are_no_expenses205horae-tests-0.1.0>         PASS [   0.012s] horae-core permissions::approvals::tests::only_expense_reads_or_their_write_prerequisites_make_others_expenses_visible206horae-tests-0.1.0>         PASS [   0.015s] horae-core permissions::approvals::tests::removing_the_last_matching_relationship_revokes_both_domains207horae-tests-0.1.0>         PASS [   0.009s] horae-core permissions::catalog::stored_tests::rejects_duplicate_grants_instead_of_silently_deduplicating208horae-tests-0.1.0>         PASS [   0.012s] horae-core permissions::catalog::stored_tests::rejects_unsupported_versions_even_for_valid_grants209horae-tests-0.1.0>         PASS [   0.013s] horae-core permissions::catalog::stored_tests::rejects_empty_saved_selection_instead_of_adding_member_floor210horae-tests-0.1.0>      Running [ 00:00:00] ====>    114/191: 8 running, 114 passed, 0 skipped     211horae-tests-0.1.0>              [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection212horae-tests-0.1.0>              [ 00:00:00] horae-core ce_edges_without_extra_cross_resource_grants213horae-tests-0.1.0>              [ 00:00:00] horae-core tests::empty_selection_includes_member_floor214horae-tests-0.1.0>              [ 00:00:00] horae-core _added_and_removing_it_removes_the_dependent215horae-tests-0.1.0>              [ 00:00:00] horae-core ludes_floor_and_is_closed_under_dependencies216horae-tests-0.1.0>              [ 00:00:00] horae-core _and_project_manager_has_no_financial_grants217horae-tests-0.1.0>              [ 00:00:00] horae-core loor_cannot_be_removed_or_partially_modified218horae-tests-0.1.0>         PASS [   0.013s] horae-core permissions::catalog::stored_tests::rejects_each_missing_floor_grant219horae-tests-0.1.0>         PASS [   0.012s] horae-core permissions::catalog::stored_tests::restores_custom_selection_without_reapplying_profile_defaults220horae-tests-0.1.0>         PASS [   0.016s] horae-core permissions::catalog::stored_tests::rejects_every_missing_prerequisite_without_repairing_input221horae-tests-0.1.0>         PASS [   0.009s] horae-core permissions::catalog::stored_tests::stored_order_does_not_change_the_selected_set222horae-tests-0.1.0>         PASS [   0.012s] horae-core permissions::catalog::stored_tests::restores_each_builtin_selection_without_changing_grants223horae-tests-0.1.0>         PASS [   0.009s] horae-core permissions::catalog::tests::approve_all_includes_read_scopes_but_not_write_or_expense_management224horae-tests-0.1.0>         PASS [   0.012s] horae-core permissions::catalog::tests::adding_all_catalog_grants_produces_exactly_the_catalog225horae-tests-0.1.0>         PASS [   0.012s] horae-core permissions::catalog::tests::administrator_selection_covers_known_catalog_without_unknown_ids226horae-tests-0.1.0>         PASS [   0.012s] horae-core permissions::catalog::tests::catalog_has_fifty_distinct_known_grants227horae-tests-0.1.0>         PASS [   0.008s] horae-core permissions::catalog::tests::direct_profile_defaults_match_the_known_reference_catalog228horae-tests-0.1.0>      Running [ 00:00:00] ====>    114/191: 8 running, 114 passed, 0 skipped     229horae-tests-0.1.0>              [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection230horae-tests-0.1.0>              [ 00:00:00] horae-core ce_edges_without_extra_cross_resource_grants231horae-tests-0.1.0>              [ 00:00:00] horae-core tests::empty_selection_includes_member_floor232horae-tests-0.1.0>              [ 00:00:00] horae-core _added_and_removing_it_removes_the_dependent233horae-tests-0.1.0>              [ 00:00:00] horae-core ludes_floor_and_is_closed_under_dependencies234horae-tests-0.1.0>              [ 00:00:00] horae-core _and_project_manager_has_no_financial_grants235horae-tests-0.1.0>              [ 00:00:00] horae-core loor_cannot_be_removed_or_partially_modified236horae-tests-0.1.0>      Running [ 00:00:00] =====>   134/191: 8 running, 114 passed, 0 skipped     237horae-tests-0.1.0>              [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection238horae-tests-0.1.0>              [ 00:00:00] horae-core ce_edges_without_extra_cross_resource_grants239horae-tests-0.1.0>              [ 00:00:00] horae-core tests::empty_selection_includes_member_floor240horae-tests-0.1.0>              [ 00:00:00] horae-core _added_and_removing_it_removes_the_dependent241horae-tests-0.1.0>              [ 00:00:00] horae-core ludes_floor_and_is_closed_under_dependencies242horae-tests-0.1.0>              [ 00:00:00] horae-core _and_project_manager_has_no_financial_grants243horae-tests-0.1.0>              [ 00:00:00] horae-core loor_cannot_be_removed_or_partially_modified244horae-tests-0.1.0>         PASS [   0.005s] horae-core permissions::catalog::tests::known_permission_name_decodes_without_legacy_role_conversion245horae-tests-0.1.0>         PASS [   0.013s] horae-core permissions::catalog::tests::empty_selection_includes_member_floor246horae-tests-0.1.0>         PASS [   0.016s] horae-core permissions::catalog::tests::dependency_graph_matches_the_reference_edges_without_extra_cross_resource_grants247horae-tests-0.1.0>         PASS [   0.011s] horae-core permissions::catalog::tests::every_declared_dependency_is_added_and_removing_it_removes_the_dependent248horae-tests-0.1.0>         PASS [   0.010s] horae-core permissions::catalog::tests::finance_profiles_cannot_edit_rates_and_project_manager_has_no_financial_grants249horae-tests-0.1.0>         PASS [   0.010s] horae-core permissions::catalog::tests::every_profile_includes_floor_and_is_closed_under_dependencies250horae-tests-0.1.0>         PASS [   0.018s] horae-core permissions::catalog::tests::floor_cannot_be_removed_or_partially_modified251horae-tests-0.1.0>         PASS [   0.014s] horae-core permissions::catalog::tests::member_has_only_own_time_and_expense_access252horae-tests-0.1.0>         PASS [   0.012s] horae-core permissions::catalog::tests::removing_invoice_draft_write_keeps_read_but_removes_managed_and_all_write253horae-tests-0.1.0>         PASS [   0.016s] horae-core permissions::catalog::tests::removing_absent_permission_is_an_idempotent_no_op254horae-tests-0.1.0>         PASS [   0.016s] horae-core permissions::catalog::tests::profiles_reject_legacy_rank_names_and_unknown_values255horae-tests-0.1.0>         PASS [   0.012s] horae-core permissions::catalog::tests::removing_managed_time_read_also_removes_all_reads_writes_and_approvals256horae-tests-0.1.0>         PASS [   0.011s] horae-core permissions::catalog::tests::removing_one_financial_permission_preserves_unrelated_families257horae-tests-0.1.0>         PASS [   0.007s] horae-core permissions::catalog::tests::report_and_withdrawal_grants_do_not_add_unrelated_authority258horae-tests-0.1.0>         PASS [   0.021s] horae-core permissions::catalog::tests::removing_any_non_floor_grant_keeps_the_remaining_selection_closed259horae-tests-0.1.0>         PASS [   0.006s] horae-core permissions::person_management::tests::each_catalog_grant_has_the_specified_compatibility_without_changing_grants260horae-tests-0.1.0>         PASS [   0.015s] horae-core permissions::catalog::tests::template_names_reject_empty_and_overlong_unicode_names261horae-tests-0.1.0>         PASS [   0.016s] horae-core permissions::catalog::tests::template_names_trim_without_changing_display_or_internal_spaces262horae-tests-0.1.0>         PASS [   0.018s] horae-core permissions::person_management::tests::combined_unrelated_grants_do_not_create_person_management_eligibility263horae-tests-0.1.0>         PASS [   0.018s] horae-core permissions::catalog::tests::unknown_permission_names_are_rejected264horae-tests-0.1.0>         PASS [   0.014s] horae-core permissions::person_management::tests::own_tracking_floor_does_not_qualify265horae-tests-0.1.0>      Running [ 00:00:00] =====>   135/191: 8 running, 135 passed, 0 skipped     266horae-tests-0.1.0>              [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection267horae-tests-0.1.0>              [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free268horae-tests-0.1.0>              [ 00:00:00] horae-core :any_compatible_grant_suffices_in_every_pair269horae-tests-0.1.0>              [ 00:00:00] horae-core s_last_compatible_grant_loss_and_restoration270horae-tests-0.1.0>              [ 00:00:00] horae-core val_need_neither_grants_nor_a_separate_actor271horae-tests-0.1.0>              [ 00:00:00] horae-core posal_in_every_position_without_filtering_it272horae-tests-0.1.0>              [ 00:00:00] horae-core _defaults_have_the_approved_financial_access273horae-tests-0.1.0>      Running [ 00:00:00] ======>  160/191: 8 running, 135 passed, 0 skipped     274horae-tests-0.1.0>              [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection275horae-tests-0.1.0>              [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free276horae-tests-0.1.0>              [ 00:00:00] horae-core :any_compatible_grant_suffices_in_every_pair277horae-tests-0.1.0>              [ 00:00:00] horae-core s_last_compatible_grant_loss_and_restoration278horae-tests-0.1.0>              [ 00:00:00] horae-core val_need_neither_grants_nor_a_separate_actor279horae-tests-0.1.0>              [ 00:00:00] horae-core posal_in_every_position_without_filtering_it280horae-tests-0.1.0>              [ 00:00:00] horae-core _defaults_have_the_approved_financial_access281horae-tests-0.1.0>         PASS [   0.016s] horae-core permissions::person_management::tests::other_people_and_empty_removal_need_neither_grants_nor_a_separate_actor282horae-tests-0.1.0>         PASS [   0.020s] horae-core permissions::person_management::tests::eligibility_tracks_last_compatible_grant_loss_and_restoration283horae-tests-0.1.0>         PASS [   0.079s] horae-core permissions::catalog::stored_tests::restores_each_valid_grant_pair_and_its_revoked_selection284horae-tests-0.1.0>         PASS [   0.016s] horae-core permissions::rates::tests::all_six_defaults_have_the_approved_financial_access285horae-tests-0.1.0>         PASS [   0.016s] horae-core permissions::person_management::tests::self_link_rejects_the_proposal_in_every_position_without_filtering_it286horae-tests-0.1.0>         PASS [   0.013s] horae-core permissions::rates::tests::billable_actions_use_only_their_own_grant_and_owner_scope287horae-tests-0.1.0>         PASS [   0.013s] horae-core permissions::rates::tests::billable_owner_never_uses_the_other_management_dimension288horae-tests-0.1.0>         PASS [   0.041s] horae-core permissions::person_management::tests::any_compatible_grant_suffices_in_every_pair289horae-tests-0.1.0>         PASS [   0.010s] horae-core permissions::rates::tests::explicit_rate_edits_require_write_even_for_zero_or_an_equal_value290horae-tests-0.1.0>         PASS [   0.017s] horae-core permissions::rates::tests::cost_and_billable_grants_are_independent_and_read_does_not_allow_write291horae-tests-0.1.0>         PASS [   0.011s] horae-core permissions::rates::tests::grant_removal_denies_without_mutating_the_remaining_selection292horae-tests-0.1.0>         PASS [   0.011s] horae-core permissions::rates::tests::read_only_cost_grant_cannot_authorize_an_explicit_rate_edit293horae-tests-0.1.0>         PASS [   0.013s] horae-core permissions::rates::tests::identity_and_tenant_mismatches_deny_even_all_financial_grants294horae-tests-0.1.0>         PASS [   0.014s] horae-core permissions::rates::tests::removing_read_prerequisites_denies_both_actions295horae-tests-0.1.0>         PASS [   0.011s] horae-core permissions::rates::tests::unrelated_catalog_grants_never_authorize_ordinary_financial_fields296horae-tests-0.1.0>         PASS [   0.012s] horae-core permissions::rates::tests::unchanged_rate_edit_requires_no_financial_write_grant297horae-tests-0.1.0>         PASS [   0.016s] horae-core permissions::tests::assignment_matching_searches_all_members_and_is_insensitive_to_duplicates298horae-tests-0.1.0>         PASS [   0.010s] horae-core permissions::tests::every_scope_combination_matches_only_explicitly_granted_dimensions299horae-tests-0.1.0>         PASS [   0.010s] horae-core permissions::tests::inactive_or_foreign_context_is_denied_for_every_scope_combination300horae-tests-0.1.0>         PASS [   0.016s] horae-core permissions::tests::assignments_do_not_grant_scope_and_missing_assignments_do_not_match301horae-tests-0.1.0>         PASS [   0.012s] horae-core project::tests::basics_accept_same_day_but_reject_reversed_dates302horae-tests-0.1.0>         PASS [   0.009s] horae-core project::tests::basics_reject_overlong_code_and_unsupported_currency303horae-tests-0.1.0>         PASS [   0.010s] horae-core project::tests::basics_reject_blank_and_overlong_names304horae-tests-0.1.0>      Running [ 00:00:00] ======>  163/191: 8 running, 163 passed, 0 skipped     305horae-tests-0.1.0>              [ 00:00:00] horae-core hedules_validate_amounts_and_milestone_total306horae-tests-0.1.0>              [ 00:00:00] horae-core ts_are_only_available_for_time_and_materials307horae-tests-0.1.0>              [ 00:00:00] horae-core ts::monthly_fee_dates_follow_calendar_months308horae-tests-0.1.0>              [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs309horae-tests-0.1.0>              [ 00:00:00] horae-core yment_terms_support_receipt_and_checked_days310horae-tests-0.1.0>              [ 00:00:00] horae-core tests::percentage_preserves_exact_hundredths311horae-tests-0.1.0>              [ 00:00:00] horae-core e_rejects_invalid_precision_range_and_syntax312horae-tests-0.1.0>         PASS [   0.016s] horae-core permissions::tests::scope_union_obeys_set_laws313horae-tests-0.1.0>         PASS [   0.017s] horae-core permissions::tests::removing_an_assignment_removes_only_that_matching_dimension314horae-tests-0.1.0>         PASS [   0.097s] horae-core permissions::catalog::tests::normalization_is_idempotent_order_independent_and_duplicate_free315horae-tests-0.1.0>         PASS [   0.015s] horae-core project::tests::basics_accept_supported_currencies_and_optional_dates316horae-tests-0.1.0>         PASS [   0.013s] horae-core project::tests::fee_schedules_reject_missing_overlong_and_excessive_milestones317horae-tests-0.1.0>      Running [ 00:00:00] ======>  163/191: 8 running, 163 passed, 0 skipped     318horae-tests-0.1.0>              [ 00:00:00] horae-core hedules_validate_amounts_and_milestone_total319horae-tests-0.1.0>              [ 00:00:00] horae-core ts_are_only_available_for_time_and_materials320horae-tests-0.1.0>              [ 00:00:00] horae-core ts::monthly_fee_dates_follow_calendar_months321horae-tests-0.1.0>              [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs322horae-tests-0.1.0>              [ 00:00:00] horae-core yment_terms_support_receipt_and_checked_days323horae-tests-0.1.0>              [ 00:00:00] horae-core tests::percentage_preserves_exact_hundredths324horae-tests-0.1.0>              [ 00:00:00] horae-core e_rejects_invalid_precision_range_and_syntax325horae-tests-0.1.0>         PASS [   0.011s] horae-core project::tests::fee_schedules_validate_amounts_and_milestone_total326horae-tests-0.1.0>         PASS [   0.010s] horae-core project::tests::payment_terms_support_receipt_and_checked_days327horae-tests-0.1.0>         PASS [   0.013s] horae-core project::tests::monetary_budgets_are_only_available_for_time_and_materials328horae-tests-0.1.0>         PASS [   0.008s] horae-core project::tests::percentage_preserves_exact_hundredths329horae-tests-0.1.0>         PASS [   0.013s] horae-core project::tests::monthly_fee_dates_reject_invalid_calendar_inputs330horae-tests-0.1.0>         PASS [   0.009s] horae-core rounding::tests::effective_minutes_respect_frozen_history_including_zero331horae-tests-0.1.0>         PASS [   0.014s] horae-core project::tests::monthly_fee_dates_follow_calendar_months332horae-tests-0.1.0>         PASS [   0.016s] horae-core project::tests::percentage_rejects_invalid_precision_range_and_syntax333horae-tests-0.1.0>         PASS [   0.009s] horae-core rounding::tests::result_is_multiple_of_inc334horae-tests-0.1.0>         PASS [   0.006s] horae-core state::tests::member_submit_and_reopen335horae-tests-0.1.0>         PASS [   0.013s] horae-core rounding::tests::identity_when_inc_zero336horae-tests-0.1.0>         PASS [   0.011s] horae-core rounding::tests::nearest_ties_round_up337horae-tests-0.1.0>         PASS [   0.009s] horae-core rounding::tests::up_and_down338horae-tests-0.1.0>         PASS [   0.008s] horae-core state::tests::managers_invoice_open_and_approved_time339horae-tests-0.1.0>         PASS [   0.013s] horae-core state::tests::invoiced_is_final340horae-tests-0.1.0>         PASS [   0.009s] horae-core time_of_day::tests::parse_reads_12h_including_edges341horae-tests-0.1.0>         PASS [   0.011s] horae-core time_of_day::tests::parse_reads_24h342horae-tests-0.1.0>         PASS [   0.012s] horae-core time_of_day::tests::clamp_to_day_prevents_crossing_midnight343horae-tests-0.1.0>         PASS [   0.012s] horae-core time_of_day::tests::format_12h_matches_harvest_style344horae-tests-0.1.0>         PASS [   0.012s] horae-core state::tests::only_manager_can_approve345horae-tests-0.1.0>         PASS [   0.011s] horae-core time_of_day::tests::parse_rejects_out_of_range_and_garbage346horae-tests-0.1.0>         PASS [   0.011s] horae-core time_of_day::tests::snap_rounds_to_nearest_step347horae-tests-0.1.0>         PASS [   0.018s] horae-core time_of_day::tests::format_round_trips348horae-tests-0.1.0>         PASS [   0.005s] horae-core week::tests::configured_week_reports_an_unrepresentable_start349horae-tests-0.1.0>         PASS [   0.009s] horae-core types::tests::budget_kind_wire_strings_match_db_enum350horae-tests-0.1.0>         PASS [   0.007s] horae-core week::tests::maps_any_weekday_to_its_monday351horae-tests-0.1.0>         PASS [   0.008s] horae-core week::tests::configured_week_can_start_in_the_previous_year352horae-tests-0.1.0>         PASS [   0.008s] horae-core week::tests::configured_week_contains_each_day_for_all_seven_start_days353horae-tests-0.1.0> ------------354horae-tests-0.1.0>      Summary [   0.337s] 191 tests run: 191 passed, 0 skipped355horae-tests-0.1.0>      Running [ 00:00:00] ======== 191/191: 8 running, 163 passed, 0 skipped     356horae-tests-0.1.0>              [ 00:00:00] horae-core hedules_validate_amounts_and_milestone_total357horae-tests-0.1.0>              [ 00:00:00] horae-core ts_are_only_available_for_time_and_materials358horae-tests-0.1.0>              [ 00:00:00] horae-core ts::monthly_fee_dates_follow_calendar_months359horae-tests-0.1.0>              [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs360horae-tests-0.1.0>              [ 00:00:00] horae-core yment_terms_support_receipt_and_checked_days361horae-tests-0.1.0>              [ 00:00:00] horae-core tests::percentage_preserves_exact_hundredths362horae-tests-0.1.0>              [ 00:00:00] horae-core e_rejects_invalid_precision_range_and_syntax363horae-tests-0.1.0> The files belonging to this database system will be owned by user "nixbld".364horae-tests-0.1.0> This user must also own the server process.365horae-tests-0.1.0> 366horae-tests-0.1.0> The database cluster will be initialized with locale "C".367horae-tests-0.1.0> The default text search configuration will be set to "english".368horae-tests-0.1.0> 369horae-tests-0.1.0> Data page checksums are disabled.370horae-tests-0.1.0> 371horae-tests-0.1.0> fixing permissions on existing directory /build/tmp.U8Yd2ihqoM ... ok372horae-tests-0.1.0> creating subdirectories ... ok373horae-tests-0.1.0> selecting dynamic shared memory implementation ... posix374horae-tests-0.1.0> selecting default "max_connections" ... 100375horae-tests-0.1.0> selecting default "shared_buffers" ... 128MB376horae-tests-0.1.0> selecting default time zone ... UTC377horae-tests-0.1.0> creating configuration files ... ok378horae-tests-0.1.0> running bootstrap script ... ok379horae-tests-0.1.0> performing post-bootstrap initialization ... ok380horae-tests-0.1.0> syncing data to disk ... ok381horae-tests-0.1.0> 382horae-tests-0.1.0> initdb: warning: enabling "trust" authentication for local connections383horae-tests-0.1.0> initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.384horae-tests-0.1.0> 385horae-tests-0.1.0> Success. You can now start the database server using:386horae-tests-0.1.0> 387horae-tests-0.1.0>     pg_ctl -D /build/tmp.U8Yd2ihqoM -l logfile start388horae-tests-0.1.0> 389horae-tests-0.1.0> waiting for server to start.... done390horae-tests-0.1.0> server started391horae-tests-0.1.0> +++ command cargo test -p horae --features server392horae-tests-0.1.0>    Compiling horae v0.1.0 (/build/source/crates/horae)393horae-tests-0.1.0>    Compiling horae-core v0.1.0 (/build/source/crates/core)394horae-tests-0.1.0> error: `SQLX_OFFLINE=true` but there is no cached data for this query, run `cargo sqlx prepare` to update the query cache or unset `SQLX_OFFLINE`395horae-tests-0.1.0>    --> crates/horae/src/importers/harvest/streaming.rs:303:21396horae-tests-0.1.0>     |397horae-tests-0.1.0> 303 |           let error = sqlx::query!(398horae-tests-0.1.0>     |  _____________________^399horae-tests-0.1.0> 304 | |             "SELECT id FROM organizations WHERE id=$1 FOR NO KEY UPDATE NOWAIT",400horae-tests-0.1.0> 305 | |             ids.org_id401horae-tests-0.1.0> 306 | |         )402horae-tests-0.1.0>     | |_________^403horae-tests-0.1.0>     |404horae-tests-0.1.0>     = note: this error originates in the macro `$crate::sqlx_macros::expand_query` which comes from the expansion of the macro `sqlx::query` (in Nightly builds, run with -Z macro-backtrace for more info)405horae-tests-0.1.0>