1these 2 derivations will be built:2 /nix/store/hzj2486b0c0h93ilv53fggw99mgsj9wp-horae-checks-deps-0.1.0.drv3 /nix/store/l09bqipn858j5l1z8hyic20hy74a8j2m-horae-tests-0.1.0.drv4building '/nix/store/l09bqipn858j5l1z8hyic20hy74a8j2m-horae-tests-0.1.0.drv'5horae-tests-0.1.0> Running phase: unpackPhase6horae-tests-0.1.0> unpacking source archive /nix/store/gpfwd8br3bxsyjjxbh7l1m1lg2npc105-source7horae-tests-0.1.0> source root is source8horae-tests-0.1.0> Running phase: patchPhase9horae-tests-0.1.0> Executing configureCargoCommonVars10horae-tests-0.1.0> decompressing cargo artifacts from /nix/store/aqqajidabq30pp4nj7l2pybzsvmxfn2a-horae-checks-deps-0.1.0/target.tar.zst to target11horae-tests-0.1.0> Running phase: updateAutotoolsGnuConfigScriptsPhase12horae-tests-0.1.0> Running phase: configurePhase13horae-tests-0.1.0> will append /build/source/.cargo-home/config.toml with contents of /nix/store/i0bj632any4bjpvnl84zc2h7cq8zn0mz-vendor-cargo-deps/config.toml14horae-tests-0.1.0> default configurePhase, nothing to do15horae-tests-0.1.0> Running phase: buildPhase16horae-tests-0.1.0> +++ command cargo nextest run -p horae-core17horae-tests-0.1.0> Compiling proc-macro2 v1.0.10618horae-tests-0.1.0> Compiling serde_core v1.0.22819horae-tests-0.1.0> Compiling serde v1.0.22820horae-tests-0.1.0> Compiling num-traits v0.2.1921horae-tests-0.1.0> Compiling quote v1.0.4622horae-tests-0.1.0> Compiling syn v2.0.11823horae-tests-0.1.0> Compiling uuid v1.23.424horae-tests-0.1.0> Compiling serde_derive v1.0.22825horae-tests-0.1.0> Compiling thiserror-impl v2.0.1826horae-tests-0.1.0> Compiling thiserror v2.0.1827horae-tests-0.1.0> Compiling chrono v0.4.4528horae-tests-0.1.0> Compiling horae-core v0.1.0 (/build/source/crates/core)29horae-tests-0.1.0> Finished `test` profile [unoptimized + debuginfo] target(s) in 5.71s30horae-tests-0.1.0> ------------31horae-tests-0.1.0> Nextest run ID aaa169f5-0867-4958-9759-9ef88deb0a19 with nextest profile: default32horae-tests-0.1.0> Starting 121 tests across 1 binary33horae-tests-0.1.0> Running [ 00:00:00] 0/121: 48 running, 0 passed, 0 skipped 34horae-tests-0.1.0> [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding35horae-tests-0.1.0> [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget36horae-tests-0.1.0> [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band37horae-tests-0.1.0> [ 00:00:00] horae-core jects_invalid_inputs_and_widens_large_values38horae-tests-0.1.0> [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows39horae-tests-0.1.0> [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached40horae-tests-0.1.0> [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once41horae-tests-0.1.0> [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets42horae-tests-0.1.0> Running [ 00:00:00] =======> 120/121: 1 running, 120 passed, 0 skipped 43horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals44horae-tests-0.1.0> 45horae-tests-0.1.0> 46horae-tests-0.1.0> 47horae-tests-0.1.0> 48horae-tests-0.1.0> 49horae-tests-0.1.0> 50horae-tests-0.1.0> 51horae-tests-0.1.0> PASS [ 0.004s] horae-core budget::tests::a_single_jump_announces_every_crossed_band52horae-tests-0.1.0> PASS [ 0.005s] horae-core client::tests::profile_rejects_blank_overlong_and_null_names53horae-tests-0.1.0> PASS [ 0.005s] horae-core budget::tests::large_values_do_not_overflow54horae-tests-0.1.0> PASS [ 0.005s] horae-core budget::tests::configured_alert_threshold_is_exact_without_rounding55horae-tests-0.1.0> PASS [ 0.005s] horae-core budget::tests::configured_alert_accepts_zero_percent_but_not_zero_budget56horae-tests-0.1.0> PASS [ 0.005s] horae-core budget::tests::configured_alert_rejects_invalid_inputs_and_widens_large_values57horae-tests-0.1.0> PASS [ 0.006s] horae-core duration::tests::format_hhmm_pads_minutes58horae-tests-0.1.0> PASS [ 0.008s] horae-core duration::tests::parse_decimal59horae-tests-0.1.0> PASS [ 0.008s] horae-core budget::tests::each_crossing_is_announced_once60horae-tests-0.1.0> PASS [ 0.008s] horae-core budget::tests::over_budget_fires_even_without_a_configured_100_band61horae-tests-0.1.0> PASS [ 0.008s] horae-core client::tests::default_rate_preserves_absence_zero_and_exact_large_amounts62horae-tests-0.1.0> PASS [ 0.008s] horae-core budget::tests::drop_below_a_band_does_not_fire_but_current_resets63horae-tests-0.1.0> PASS [ 0.008s] horae-core duration::tests::format_clamps_negative_to_zero64horae-tests-0.1.0> PASS [ 0.008s] horae-core budget::tests::current_band_is_the_highest_reached65horae-tests-0.1.0> PASS [ 0.008s] horae-core duration::tests::parse_rejects_excessive_decimal_precision_and_numerator66horae-tests-0.1.0> PASS [ 0.008s] horae-core client::tests::optional_text_normalizes_only_blank_fields67horae-tests-0.1.0> PASS [ 0.008s] horae-core importers::harvest::convert::tests::money_round_trip_against_exporter_transform68horae-tests-0.1.0> PASS [ 0.009s] horae-core importers::harvest::keys::tests::normalize_trims_and_case_folds69horae-tests-0.1.0> PASS [ 0.009s] horae-core importers::harvest::convert::tests::hours_common_values_are_exact70horae-tests-0.1.0> PASS [ 0.010s] horae-core duration::tests::parse_decimal_rounds_half_minutes_exactly71horae-tests-0.1.0> PASS [ 0.010s] horae-core duration::tests::format_round_trip72horae-tests-0.1.0> PASS [ 0.010s] horae-core budget::tests::no_band_for_zero_or_missing_budget73horae-tests-0.1.0> PASS [ 0.009s] horae-core importers::harvest::convert::tests::money_rounds_third_decimal_half_up74horae-tests-0.1.0> PASS [ 0.010s] horae-core duration::tests::parse_colon75horae-tests-0.1.0> PASS [ 0.009s] horae-core duration::tests::minutes_between_is_exact_no_minimum76horae-tests-0.1.0> PASS [ 0.011s] horae-core importers::harvest::convert::tests::conversion_rejects_unrepresentable_scaled_values_without_panicking77horae-tests-0.1.0> PASS [ 0.011s] horae-core importers::harvest::convert::tests::negative_is_rejected78horae-tests-0.1.0> Running [ 00:00:00] =======> 120/121: 1 running, 120 passed, 0 skipped 79horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals80horae-tests-0.1.0> 81horae-tests-0.1.0> 82horae-tests-0.1.0> 83horae-tests-0.1.0> 84horae-tests-0.1.0> 85horae-tests-0.1.0> 86horae-tests-0.1.0> 87horae-tests-0.1.0> PASS [ 0.011s] horae-core importers::harvest::convert::tests::high_precision_fraction_straddles_the_half_minute_exactly88horae-tests-0.1.0> PASS [ 0.011s] horae-core importers::harvest::convert::tests::round_half_up_at_the_boundary89horae-tests-0.1.0> PASS [ 0.012s] horae-core importers::harvest::convert::tests::leading_and_trailing_forms_parse90horae-tests-0.1.0> PASS [ 0.012s] horae-core client::tests::profile_accepts_supported_currencies_and_unicode_character_limit91horae-tests-0.1.0> PASS [ 0.011s] horae-core importers::harvest::convert::tests::conversion_handles_high_precision_without_intermediate_overflow92horae-tests-0.1.0> PASS [ 0.012s] horae-core client::tests::profile_rejects_unsupported_currency_and_null_billing_fields93horae-tests-0.1.0> PASS [ 0.012s] horae-core duration::tests::parse_preserves_u32_boundary_without_saturating94horae-tests-0.1.0> PASS [ 0.012s] horae-core duration::tests::parse_round_trips_each_minute_in_a_day95horae-tests-0.1.0> PASS [ 0.012s] horae-core client::tests::default_rate_rejects_negative_fractional_cent_overflow_and_invalid_text96horae-tests-0.1.0> PASS [ 0.011s] horae-core importers::harvest::convert::tests::conversion_reports_precision_and_numerator_limits97horae-tests-0.1.0> PASS [ 0.012s] horae-core importers::harvest::convert::tests::garbage_is_rejected98horae-tests-0.1.0> PASS [ 0.012s] horae-core importers::harvest::convert::tests::hours_round_trip_against_exporter_transform99horae-tests-0.1.0> PASS [ 0.016s] horae-core duration::tests::parse_rejects_negative_non_finite_and_malformed_values100horae-tests-0.1.0> PASS [ 0.006s] horae-core importers::harvest::types::account_switch_tests::account_switch_requires_binding_and_no_imports_or_active_work101horae-tests-0.1.0> PASS [ 0.005s] horae-core invoice::tests::line_amount_half_hour102horae-tests-0.1.0> PASS [ 0.016s] horae-core duration::tests::parse_rejects_colon_overflow_without_panicking103horae-tests-0.1.0> PASS [ 0.016s] horae-core budget::tests::display_percentage_rounds_clamps_and_never_overflows104horae-tests-0.1.0> PASS [ 0.016s] horae-core importers::harvest::convert::tests::conversion_preserves_the_i64_boundary_and_rejects_rounding_past_it105horae-tests-0.1.0> PASS [ 0.016s] horae-core importers::harvest::keys::tests::composite_components_do_not_collide106horae-tests-0.1.0> PASS [ 0.006s] horae-core importers::harvest::keys::tests::task_key_shared_across_projects107horae-tests-0.1.0> PASS [ 0.016s] horae-core importers::harvest::keys::tests::client_key_equal_across_case_and_whitespace108horae-tests-0.1.0> PASS [ 0.016s] horae-core importers::harvest::convert::tests::money_common_values_are_exact109horae-tests-0.1.0> PASS [ 0.006s] horae-core importers::harvest::keys::tests::occurrence_counter_keys_are_independent110horae-tests-0.1.0> PASS [ 0.006s] horae-core invoice::tests::line_amount_exact_hour111horae-tests-0.1.0> PASS [ 0.016s] horae-core importers::harvest::keys::tests::normalize_matches_sql_harvest_norm_contract112horae-tests-0.1.0> Running [ 00:00:00] =======> 120/121: 1 running, 120 passed, 0 skipped 113horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals114horae-tests-0.1.0> 115horae-tests-0.1.0> 116horae-tests-0.1.0> 117horae-tests-0.1.0> 118horae-tests-0.1.0> 119horae-tests-0.1.0> 120horae-tests-0.1.0> 121horae-tests-0.1.0> PASS [ 0.006s] horae-core invoice::tests::discount_allocation_rejects_negative_lines_and_subtotal_overflow122horae-tests-0.1.0> PASS [ 0.006s] horae-core importers::harvest::keys::tests::time_entry_key_distinguishes_and_matches123horae-tests-0.1.0> PASS [ 0.006s] horae-core importers::harvest::types::tests::reconciles_when_errored_counts_match_collected_errors124horae-tests-0.1.0> PASS [ 0.006s] horae-core invoice::tests::discounted_fee_contribution_leaves_discount_available125horae-tests-0.1.0> PASS [ 0.005s] horae-core invoice::tests::discount_allocation_handles_empty_zero_and_full_discounts126horae-tests-0.1.0> PASS [ 0.006s] horae-core importers::harvest::keys::tests::project_key_prefers_code_when_present127horae-tests-0.1.0> PASS [ 0.006s] horae-core importers::harvest::types::tests::does_not_reconcile_when_an_errored_count_has_no_reported_error128horae-tests-0.1.0> PASS [ 0.006s] horae-core invoice::tests::line_amount_odd_minutes129horae-tests-0.1.0> PASS [ 0.006s] horae-core importers::harvest::types::tests::archived_errors_and_new_inline_errors_reconcile_across_batches130horae-tests-0.1.0> PASS [ 0.006s] horae-core importers::harvest::types::tests::import_modes_display_their_wire_names131horae-tests-0.1.0> PASS [ 0.006s] horae-core importers::harvest::keys::tests::occurrence_counter_numbers_repeats_from_zero132horae-tests-0.1.0> PASS [ 0.007s] horae-core invoice::tests::line_amount_rejects_unrepresentable_results133horae-tests-0.1.0> PASS [ 0.008s] horae-core invoice::tests::discount_allocation_supports_maximum_representable_subtotal134horae-tests-0.1.0> PASS [ 0.006s] horae-core invoice::tests::line_amount_zero_rate135horae-tests-0.1.0> PASS [ 0.007s] horae-core invoice::tests::line_amount_90_minutes136horae-tests-0.1.0> PASS [ 0.009s] horae-core invoice::tests::discount_allocation_conserves_header_amount_and_bounds_each_line137horae-tests-0.1.0> PASS [ 0.005s] horae-core money::tests::addition_retains_currency_checks_and_representable_boundaries138horae-tests-0.1.0> PASS [ 0.005s] horae-core money::tests::format_cents_plain_keeps_sign_below_one_unit139horae-tests-0.1.0> PASS [ 0.009s] horae-core invoice::tests::invoice_adjustments_round_components_half_up140horae-tests-0.1.0> PASS [ 0.005s] horae-core money::tests::addition_rejects_overflow_in_both_directions141horae-tests-0.1.0> PASS [ 0.009s] horae-core importers::harvest::keys::tests::project_key_falls_back_to_client_and_name142horae-tests-0.1.0> PASS [ 0.008s] horae-core invoice::tests::line_amount_accepts_large_representable_amounts143horae-tests-0.1.0> PASS [ 0.005s] horae-core money::tests::parse_cents_reads_whole_and_fractional_amounts144horae-tests-0.1.0> PASS [ 0.007s] horae-core invoice::tests::selected_rate_mode_ignores_unselected_rate_sources145horae-tests-0.1.0> PASS [ 0.011s] horae-core invoice::tests::invoice_adjustments_reject_negative_subtotal_and_overflow146horae-tests-0.1.0> PASS [ 0.006s] horae-core money::tests::parse_cents_rejects_what_it_cannot_represent147horae-tests-0.1.0> Running [ 00:00:00] =======> 120/121: 1 running, 120 passed, 0 skipped 148horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals149horae-tests-0.1.0> 150horae-tests-0.1.0> 151horae-tests-0.1.0> 152horae-tests-0.1.0> 153horae-tests-0.1.0> 154horae-tests-0.1.0> 155horae-tests-0.1.0> 156horae-tests-0.1.0> PASS [ 0.011s] horae-core invoice::tests::discount_allocation_uses_largest_remainder_then_stable_source_order157horae-tests-0.1.0> PASS [ 0.010s] horae-core invoice::tests::invoice_adjustments_apply_discount_before_non_compounding_taxes158horae-tests-0.1.0> PASS [ 0.006s] horae-core money::tests::parse_cents_is_exact_where_a_float_would_drift159horae-tests-0.1.0> PASS [ 0.005s] horae-core money::tests::parse_cents_tolerates_grouping_spaces_and_signs160horae-tests-0.1.0> PASS [ 0.005s] horae-core project::tests::basics_accept_same_day_but_reject_reversed_dates161horae-tests-0.1.0> PASS [ 0.005s] horae-core project::tests::basics_accept_supported_currencies_and_optional_dates162horae-tests-0.1.0> PASS [ 0.005s] horae-core project::tests::fee_schedules_reject_missing_overlong_and_excessive_milestones163horae-tests-0.1.0> PASS [ 0.005s] horae-core project::tests::monetary_budgets_are_only_available_for_time_and_materials164horae-tests-0.1.0> PASS [ 0.005s] horae-core project::tests::payment_terms_support_receipt_and_checked_days165horae-tests-0.1.0> PASS [ 0.005s] horae-core project::tests::basics_reject_blank_and_overlong_names166horae-tests-0.1.0> PASS [ 0.009s] horae-core invoice::tests::line_amount_rounds_half_cents_up_not_to_even167horae-tests-0.1.0> PASS [ 0.006s] horae-core time_of_day::tests::format_12h_matches_harvest_style168horae-tests-0.1.0> PASS [ 0.005s] horae-core project::tests::percentage_rejects_invalid_precision_range_and_syntax169horae-tests-0.1.0> PASS [ 0.006s] horae-core project::tests::basics_reject_overlong_code_and_unsupported_currency170horae-tests-0.1.0> PASS [ 0.009s] horae-core invoice::tests::selected_rate_keeps_zero_and_explicit_missing_project_rate171horae-tests-0.1.0> PASS [ 0.004s] horae-core state::tests::managers_invoice_open_and_approved_time172horae-tests-0.1.0> PASS [ 0.005s] horae-core project::tests::monthly_fee_dates_follow_calendar_months173horae-tests-0.1.0> PASS [ 0.011s] horae-core invoice::tests::resolve_rate_cascade174horae-tests-0.1.0> PASS [ 0.005s] horae-core project::tests::monthly_fee_dates_reject_invalid_calendar_inputs175horae-tests-0.1.0> PASS [ 0.011s] horae-core invoice::tests::line_amount_zero_minutes176horae-tests-0.1.0> PASS [ 0.007s] horae-core project::tests::fee_schedules_validate_amounts_and_milestone_total177horae-tests-0.1.0> PASS [ 0.005s] horae-core state::tests::only_manager_can_approve178horae-tests-0.1.0> PASS [ 0.005s] horae-core rounding::tests::up_and_down179horae-tests-0.1.0> PASS [ 0.007s] horae-core rounding::tests::effective_minutes_respect_frozen_history_including_zero180horae-tests-0.1.0> PASS [ 0.007s] horae-core money::tests::format_cents_groups_thousands_and_keeps_sign181horae-tests-0.1.0> PASS [ 0.005s] horae-core rounding::tests::nearest_ties_round_up182horae-tests-0.1.0> PASS [ 0.005s] horae-core time_of_day::tests::parse_reads_12h_including_edges183horae-tests-0.1.0> Running [ 00:00:00] =======> 120/121: 1 running, 120 passed, 0 skipped 184horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals185horae-tests-0.1.0> 186horae-tests-0.1.0> 187horae-tests-0.1.0> 188horae-tests-0.1.0> 189horae-tests-0.1.0> 190horae-tests-0.1.0> 191horae-tests-0.1.0> 192horae-tests-0.1.0> PASS [ 0.008s] horae-core time_of_day::tests::clamp_to_day_prevents_crossing_midnight193horae-tests-0.1.0> PASS [ 0.005s] horae-core time_of_day::tests::format_round_trips194horae-tests-0.1.0> PASS [ 0.005s] horae-core week::tests::configured_week_reports_an_unrepresentable_start195horae-tests-0.1.0> PASS [ 0.007s] horae-core rounding::tests::identity_when_inc_zero196horae-tests-0.1.0> PASS [ 0.006s] horae-core time_of_day::tests::snap_rounds_to_nearest_step197horae-tests-0.1.0> PASS [ 0.005s] horae-core week::tests::configured_week_contains_each_day_for_all_seven_start_days198horae-tests-0.1.0> PASS [ 0.008s] horae-core project::tests::percentage_preserves_exact_hundredths199horae-tests-0.1.0> PASS [ 0.007s] horae-core rounding::tests::result_is_multiple_of_inc200horae-tests-0.1.0> PASS [ 0.006s] horae-core state::tests::invoiced_is_final201horae-tests-0.1.0> PASS [ 0.008s] horae-core state::tests::member_submit_and_reopen202horae-tests-0.1.0> PASS [ 0.006s] horae-core types::tests::budget_kind_wire_strings_match_db_enum203horae-tests-0.1.0> PASS [ 0.006s] horae-core time_of_day::tests::parse_reads_24h204horae-tests-0.1.0> PASS [ 0.005s] horae-core week::tests::maps_any_weekday_to_its_monday205horae-tests-0.1.0> PASS [ 0.005s] horae-core time_of_day::tests::parse_rejects_out_of_range_and_garbage206horae-tests-0.1.0> PASS [ 0.006s] horae-core week::tests::configured_week_can_start_in_the_previous_year207horae-tests-0.1.0> Running [ 00:00:00] =======> 120/121: 1 running, 120 passed, 0 skipped 208horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals209horae-tests-0.1.0> 210horae-tests-0.1.0> 211horae-tests-0.1.0> 212horae-tests-0.1.0> 213horae-tests-0.1.0> 214horae-tests-0.1.0> 215horae-tests-0.1.0> 216horae-tests-0.1.0> PASS [ 0.065s] horae-core importers::harvest::convert::tests::conversion_matches_exact_scaled_rationals217horae-tests-0.1.0> ------------218horae-tests-0.1.0> Summary [ 0.066s] 121 tests run: 121 passed, 0 skipped219horae-tests-0.1.0> Running [ 00:00:00] ======== 121/121: 1 running, 120 passed, 0 skipped 220horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals221horae-tests-0.1.0> 222horae-tests-0.1.0> 223horae-tests-0.1.0> 224horae-tests-0.1.0> 225horae-tests-0.1.0> 226horae-tests-0.1.0> 227horae-tests-0.1.0> 228horae-tests-0.1.0> The files belonging to this database system will be owned by user "nixbld".229horae-tests-0.1.0> This user must also own the server process.230horae-tests-0.1.0> 231horae-tests-0.1.0> The database cluster will be initialized with locale "C".232horae-tests-0.1.0> The default text search configuration will be set to "english".233horae-tests-0.1.0> 234horae-tests-0.1.0> Data page checksums are disabled.235horae-tests-0.1.0> 236horae-tests-0.1.0> fixing permissions on existing directory /build/tmp.0wFW302sGk ... ok237horae-tests-0.1.0> creating subdirectories ... ok238horae-tests-0.1.0> selecting dynamic shared memory implementation ... posix239horae-tests-0.1.0> selecting default "max_connections" ... 100240horae-tests-0.1.0> selecting default "shared_buffers" ... 128MB241horae-tests-0.1.0> selecting default time zone ... UTC242horae-tests-0.1.0> creating configuration files ... ok243horae-tests-0.1.0> running bootstrap script ... ok