[INFO] cloning repository https://github.com/MenkeTechnologies/powerliners
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MenkeTechnologies/powerliners" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMenkeTechnologies%2Fpowerliners", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMenkeTechnologies%2Fpowerliners'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 99153960e6b6f1ec008ac13c94b4cfae31efa454
[INFO] testing MenkeTechnologies/powerliners against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMenkeTechnologies%2Fpowerliners" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/MenkeTechnologies/powerliners
[INFO] finished tweaking git repo https://github.com/MenkeTechnologies/powerliners
[INFO] tweaked toml for git repo https://github.com/MenkeTechnologies/powerliners written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/MenkeTechnologies/powerliners on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/MenkeTechnologies/powerliners 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.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8
[INFO] running `Command { std: "docker" "start" "d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8", 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" "d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8", 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" "d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling serde_yml v0.0.12
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling libyml v0.0.5
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling http v1.4.1
[INFO] [stderr]    Compiling utf8-zero v0.8.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling ureq-proto v0.6.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ureq v3.3.0
[INFO] [stderr]    Compiling powerliners v0.2.16 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 06s
[INFO] running `Command { std: "docker" "inspect" "d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8", 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" "d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling powerliners v0.2.16 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 44.34s
[INFO] running `Command { std: "docker" "inspect" "d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8", 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" "d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.18s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/powerliners-af1278cd12e270f7)
[INFO] [stdout] 
[INFO] [stdout] running 2428 tests
[INFO] [stdout] test extensions::awkrs_rkyv::tests::default_path_awkrs_home_wins_over_xdg_and_home ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::default_path_uses_xdg_when_archive_exists ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::default_path_falls_back_to_home_dot_awkrs ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::default_path_skips_xdg_when_archive_missing ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::default_path_with_no_env_returns_relative_dot_awkrs ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::expand_tilde_does_not_expand_bare_tilde ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::expand_tilde_passes_absolute_path_through ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::expand_tilde_passes_relative_path_through ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::expand_tilde_resolves_home_prefix ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::human_bytes_kib_boundary ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::human_bytes_mib_gib_tib ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::human_bytes_under_kib_stays_in_bytes ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::human_bytes_zero_is_plain_bytes ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::rkyv_cache_all_four_size_tokens_render_together ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::default_path_awkrs_rkyv_cache_wins_over_everything ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::rkyv_cache_divider_highlight_group_is_background_divider ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::rkyv_cache_disk_tokens_render_against_real_file ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::rkyv_cache_empty_file_renders_zero_size ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::rkyv_cache_format_tokens_render ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::rkyv_cache_missing_renders_zero_when_show_when_empty ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::rkyv_cache_missing_returns_none_when_hidden ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::rkyv_cache_highlight_group_chain_is_awkrs_specific ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::rkyv_cache_unknown_token_passes_through_unchanged ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::rkyv_cache_icon_token_passes_through_unsubstituted ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::stat_file_returns_size ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::rkyv_cache_highlight_groups_have_neutral_fallback ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::drop_token_handles_no_separator ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::stat_missing_returns_none ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::drop_token_strips_at_separator ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::drop_token_strips_colon_separator ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::region_from_config_handles_empty_value ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::region_from_config_ignores_comments ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::region_from_config_missing_profile_returns_none ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::region_from_config_default_section ... ok
[INFO] [stdout] test extensions::awkrs_version::tests::version_missing_binary_returns_none ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::resolve_config_region_when_env_missing ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::region_from_config_named_profile ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::resolve_default_with_config_returns_some ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::resolve_default_env_region_fallback ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::resolve_env_profile_and_region ... ok
[INFO] [stdout] test extensions::aws_ctx::tests::resolve_returns_none_when_no_signal ... ok
[INFO] [stdout] test extensions::bin_version::tests::cache_expires_past_ttl ... ok
[INFO] [stdout] test extensions::bin_version::tests::extract_version_handles_awkrs_shape ... ok
[INFO] [stdout] test extensions::bin_version::tests::extract_version_handles_v_prefix_with_newline ... ok
[INFO] [stdout] test extensions::bin_version::tests::cache_round_trip_under_ttl ... ok
[INFO] [stdout] test extensions::bin_version::tests::extract_version_picks_first_match ... ok
[INFO] [stdout] test extensions::bin_version::tests::cached_returns_none_on_cold_cache ... ok
[INFO] [stdout] test extensions::bin_version::tests::extract_version_skips_two_dot_words_with_no_digit_prefix ... ok
[INFO] [stdout] test extensions::bin_version::tests::extract_version_returns_none_on_no_version ... ok
[INFO] [stdout] test extensions::bin_version::tests::extract_version_handles_stryke_shape ... ok
[INFO] [stdout] test extensions::bin_version::tests::extract_version_handles_zshrs_shape ... ok
[INFO] [stdout] test extensions::bin_version::tests::get_missing_binary_returns_none ... ok
[INFO] [stdout] test extensions::diag_log::tests::rotate_moves_active_log_to_dot1 ... ok
[INFO] [stdout] test extensions::diag_log::tests::rotate_cascades_through_keep_rotations ... ok
[INFO] [stdout] test extensions::diag_log::tests::open_creates_file_and_appends_on_reopen ... ok
[INFO] [stdout] test extensions::diag_log::tests::rotate_drops_oldest_when_chain_is_full ... ok
[INFO] [stdout] test extensions::diag_log::tests::rotate_on_missing_active_is_a_noop ... ok
[INFO] [stdout] test extensions::disk::tests::disk_usage_percent_d_form ... ok
[INFO] [stdout] test extensions::disk::tests::disk_usage_percent_default_form_when_no_token ... ok
[INFO] [stdout] test extensions::bundled_config::tests::every_bundled_json_entry_is_valid_json ... ok
[INFO] [stdout] test extensions::disk::tests::fmt_bytes_basic ... ok
[INFO] [stdout] test extensions::disk::tests::fmt_bytes_chain_long_form ... ok
[INFO] [stdout] test extensions::disk::tests::fmt_bytes_fraction_branch_renders_one_decimal ... ok
[INFO] [stdout] test extensions::disk::tests::disk_usage_percent_printf_d_form ... ok
[INFO] [stdout] test extensions::disk::tests::fmt_rate_mibps_long_form ... ok
[INFO] [stdout] test extensions::disk::tests::fmt_rate_zero_renders_zero_per_second ... ok
[INFO] [stdout] test extensions::disk::tests::percent_full_disk_reports_100 ... ok
[INFO] [stdout] test extensions::disk::tests::percent_basic ... ok
[INFO] [stdout] test extensions::disk::tests::percent_handles_zero_total ... ok
[INFO] [stdout] test extensions::disk::tests::fmt_rate_appends_per_second ... ok
[INFO] [stdout] test extensions::disk::tests::percent_ignores_apfs_reserved_total ... ok
[INFO] [stdout] test extensions::docker::tests::containers_zero_state_respects_show_when_zero_false ... ok
[INFO] [stdout] test extensions::bundled_config::tests::extraction_lands_load_bearing_shell_files ... ok
[INFO] [stdout] test extensions::docker::tests::containers_unreachable_daemon_returns_none ... ok
[INFO] [stdout] test extensions::disk::tests::disk_usage_produces_one_chunk_with_format_subs ... ok
[INFO] [stdout] test extensions::bundled_config::tests::all_46_files_extracted ... ok
[INFO] [stdout] test extensions::docker::tests::render_format_leaves_unknown_tokens_intact ... ok
[INFO] [stdout] test extensions::docker::tests::render_format_substitutes_all_tokens ... ok
[INFO] [stdout] test extensions::docker::tests::read_docker_info_missing_binary_returns_none ... ok
[INFO] [stdout] test extensions::docker::tests::stopped_saturates_at_zero_when_running_exceeds_total ... ok
[INFO] [stdout] test extensions::docker::tests::stopped_is_total_minus_running ... ok
[INFO] [stdout] test extensions::exec_segment::tests::exec_segment_parses_json_array_output ... ok
[INFO] [stdout] test extensions::exec_segment::tests::exec_by_dotted_path_runs_resolved_script ... ok
[INFO] [stdout] test extensions::exec_segment::tests::exec_segment_captures_echo_stdout ... ok
[INFO] [stdout] test extensions::exec_segment::tests::exec_segment_returns_none_for_nonzero_exit ... ok
[INFO] [stdout] test extensions::exec_segment::tests::exec_segment_with_format_applies_template_to_stdout ... ok
[INFO] [stdout] test extensions::exec_segment::tests::parse_json_array_passes_through_verbatim ... ok
[INFO] [stdout] test extensions::exec_segment::tests::parse_malformed_json_falls_back_to_plain_text ... ok
[INFO] [stdout] test extensions::exec_segment::tests::exec_segment_with_highlight_groups_attaches_them ... ok
[INFO] [stdout] test extensions::exec_segment::tests::parse_plain_text_with_format_applies_template ... ok
[INFO] [stdout] test extensions::exec_segment::tests::parse_plain_text_wraps_as_contents ... ok
[INFO] [stdout] test extensions::exec_segment::tests::parse_trims_trailing_newline ... ok
[INFO] [stdout] test extensions::exec_segment::tests::parse_plain_text_with_highlight_groups_attaches_them ... ok
[INFO] [stdout] test extensions::exec_segment::tests::resolve_dotted_path_finds_sh_extension ... ok
[INFO] [stdout] test extensions::exec_segment::tests::resolve_dotted_path_prefers_sh_over_py_when_both_exist ... ok
[INFO] [stdout] test extensions::exec_segment::tests::resolve_dotted_path_returns_none_when_missing ... ok
[INFO] [stdout] test extensions::exec_segment::tests::resolve_dotted_path_falls_back_to_no_extension ... ok
[INFO] [stdout] test extensions::exec_segment::tests::resolve_dotted_path_walks_multiple_search_dirs ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::default_root_fusevm_jit_cache_wins_over_everything ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::default_root_with_no_env_falls_back_to_tmp ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::default_root_xdg_cache_home_wins_over_home ... ok
[INFO] [stdout] test extensions::awkrs_rkyv::tests::human_bytes_precision_tiers ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::default_root_falls_back_to_home_dot_cache ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::expand_tilde_does_not_expand_bare_tilde ... ok
[INFO] [stdout] test extensions::exec_segment::tests::exec_segment_returns_none_for_missing_command ... ok
[INFO] [stdout] test extensions::docker::tests::count_handles_empty_output ... ok
[INFO] [stdout] test extensions::docker::tests::count_returns_lines_for_multiline_output ... ok
[INFO] [stdout] test extensions::docker::tests::count_strips_blank_lines ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::expand_tilde_expands_home ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::expand_tilde_passes_relative_through ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::human_bytes_full_suffix_chain ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::human_bytes_kib_boundary ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::human_bytes_renders_units ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::human_bytes_under_kib_stays_in_bytes ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::human_bytes_precision_tiers ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::expand_tilde_passes_absolute_through ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::human_bytes_zero_is_plain_bytes ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::human_bytes_large_values_drop_decimals ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_divider_highlight_group_is_background_divider ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_format_tokens_render ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_all_five_tokens_render_together ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_empty_dir_no_show_returns_none ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_highlight_group_chain_is_fusevm_specific ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_missing_root_returns_none_when_hidden ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_missing_root_renders_zero_when_show_when_empty ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_highlight_groups_have_neutral_fallback ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_empty_dir_show_renders_zero ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_icon_token_passes_through_unsubstituted ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_size_token_renders_disk_allocation ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_size_token_renders_human_formatted_disk_allocation ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::scan_dir_counts_empty_file_as_entry_but_zero_bytes ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::scan_dir_counts_symlink_as_entry_without_traversing ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::scan_dir_missing_root_returns_none ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::scan_dir_empty_root_returns_zero_stats ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::jit_cache_unknown_token_passes_through_unchanged ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::scan_dir_disk_bytes_is_at_least_logical_bytes ... ok
[INFO] [stdout] test extensions::gcp_ctx::tests::drop_account_strips_at ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::scan_dir_recursive ... ok
[INFO] [stdout] test extensions::gcp_ctx::tests::drop_account_strips_colon ... ok
[INFO] [stdout] test extensions::fusevm_jit::tests::scan_dir_counts_files_and_logical_bytes ... ok
[INFO] [stdout] test extensions::gcp_ctx::tests::parse_config_file_extracts_project_and_account ... ok
[INFO] [stdout] test extensions::gcp_ctx::tests::parse_config_file_handles_missing_keys ... ok
[INFO] [stdout] test extensions::gcp_ctx::tests::parse_config_file_ignores_other_sections ... ok
[INFO] [stdout] test extensions::gcp_ctx::tests::parse_config_file_skips_comments ... ok
[INFO] [stdout] test extensions::gcp_ctx::tests::resolve_falls_back_to_file ... ok
[INFO] [stdout] test extensions::gcp_ctx::tests::resolve_env_overrides_win ... ok
[INFO] [stdout] test extensions::gcp_ctx::tests::resolve_returns_none_with_no_signal ... ok
[INFO] [stdout] test extensions::gcp_ctx::tests::resolve_returns_some_with_only_env_project ... ok
[INFO] [stdout] test extensions::git_status::tests::git_state_default_is_clean ... ok
[INFO] [stdout] test extensions::git_status::tests::git_state_unstaged_marks_dirty ... ok
[INFO] [stdout] test extensions::git_status::tests::highlight_groups_no_status_colors_is_two_neutral ... ok
[INFO] [stdout] test extensions::git_status::tests::highlight_groups_status_colors_always_four_levels ... ok
[INFO] [stdout] test extensions::git_status::tests::highlight_groups_status_colors_clean_uses_clean_chain ... ok
[INFO] [stdout] test extensions::git_status::tests::git_status_outside_repo_returns_none ... ok
[INFO] [stdout] test extensions::git_status::tests::highlight_groups_status_colors_dirty_uses_dirty_chain ... ok
[INFO] [stdout] test extensions::git_status::tests::is_clean_flips_for_every_dirty_field ... ok
[INFO] [stdout] test extensions::git_status::tests::is_clean_ignores_branch_and_tag_and_stash ... ok
[INFO] [stdout] test extensions::git_status::tests::parse_1_line_both_bytes_marks_both ... ok
[INFO] [stdout] test extensions::git_status::tests::parse_1_line_x_byte_marks_staged ... ok
[INFO] [stdout] test extensions::git_status::tests::parse_1_line_y_byte_marks_unstaged ... ok
[INFO] [stdout] test extensions::git_status::tests::parse_2_line_rename_uses_same_xy_dispatch ... ok
[INFO] [stdout] test extensions::git_status::tests::parse_branch_ab_populates_ahead_and_behind ... ok
[INFO] [stdout] test extensions::git_status::tests::parse_branch_ab_zero_means_synced ... ok
[INFO] [stdout] test extensions::git_status::tests::parse_branch_head_detached_clears_branch ... ok
[INFO] [stdout] test extensions::git_status::tests::parse_branch_head_line_sets_branch ... ok
[INFO] [stdout] test extensions::git_status::tests::parse_empty_text_is_default_clean ... ok
[INFO] [stdout] test extensions::git_status::tests::parse_full_porcelain_v2_sample ... ok
[INFO] [stdout] test extensions::git_status::tests::parse_question_line_counts_untracked ... ok
[INFO] [stdout] test extensions::git_status::tests::parse_u_line_counts_conflict ... ok
[INFO] [stdout] test extensions::git_status::tests::render_branch_only_renders_glyph_and_name ... ok
[INFO] [stdout] test extensions::git_status::tests::render_branch_plus_tag_uses_combo_form ... ok
[INFO] [stdout] test extensions::git_status::tests::render_counter_order_matches_p10k_lean ... ok
[INFO] [stdout] test extensions::git_status::tests::render_detached_head_uses_at_sha_fallback ... ok
[INFO] [stdout] test extensions::git_status::tests::render_empty_github_icon_does_not_lead ... ok
[INFO] [stdout] test extensions::git_status::tests::render_empty_state_returns_none ... ok
[INFO] [stdout] test extensions::git_status::tests::render_github_remote_leads_with_octocat ... ok
[INFO] [stdout] test extensions::git_status::tests::render_tag_only_no_branch ... ok
[INFO] [stdout] test extensions::git_status::tests::render_zero_counters_omit_chunks ... ok
[INFO] [stdout] test extensions::github_ci::tests::label_failure_overrides_running ... ok
[INFO] [stdout] test extensions::github_ci::tests::label_none_when_no_runs ... ok
[INFO] [stdout] test extensions::github_ci::tests::label_ok_when_all_passed ... ok
[INFO] [stdout] test extensions::github_ci::tests::label_running_when_no_failures ... ok
[INFO] [stdout] test extensions::github_ci::tests::parse_check_runs_all_success ... ok
[INFO] [stdout] test extensions::github_ci::tests::parse_check_runs_empty_payload ... ok
[INFO] [stdout] test extensions::github_ci::tests::parse_check_runs_malformed_returns_default ... ok
[INFO] [stdout] test extensions::github_ci::tests::parse_check_runs_mixed ... ok
[INFO] [stdout] test extensions::github_ci::tests::parse_owner_repo_empty_returns_none ... ok
[INFO] [stdout] test extensions::github_ci::tests::parse_owner_repo_https ... ok
[INFO] [stdout] test extensions::github_ci::tests::parse_owner_repo_https_no_suffix ... ok
[INFO] [stdout] test extensions::github_ci::tests::ci_status_outside_repo_returns_none ... ok
[INFO] [stdout] test extensions::github_ci::tests::parse_owner_repo_ssh ... ok
[INFO] [stdout] test extensions::github_ci::tests::parse_owner_repo_ssh_scheme ... ok
[INFO] [stdout] test extensions::github_ci::tests::parse_owner_repo_non_github_returns_none ... ok
[INFO] [stdout] test extensions::github_ci::tests::pick_highlight_groups_always_ends_in_neutral_fallback ... ok
[INFO] [stdout] test extensions::github_ci::tests::pick_highlight_groups_failure_chain ... ok
[INFO] [stdout] test extensions::github_ci::tests::pick_highlight_groups_running_chain ... ok
[INFO] [stdout] test extensions::github_ci::tests::pick_highlight_groups_success_chain ... ok
[INFO] [stdout] test extensions::gpu::tests::fmt_bytes_fraction_renders_with_one_decimal ... ok
[INFO] [stdout] test extensions::gpu::tests::fmt_bytes_full_chain_long_form ... ok
[INFO] [stdout] test extensions::gpu::tests::gpu_stats_default_is_empty ... ok
[INFO] [stdout] test extensions::gpu::tests::gpu_stats_is_empty_flips_for_any_set_field ... ok
[INFO] [stdout] test extensions::gpu::tests::fmt_bytes_short_and_long ... ok
[INFO] [stdout] test extensions::github_ci::tests::read_ci_state_outside_repo_returns_none ... ok
[INFO] [stdout] test extensions::gpu::tests::render_pct_d_form ... ok
[INFO] [stdout] test extensions::gpu::tests::gpu_usage_percent_renders_one_chunk_with_format_sub ... ok
[INFO] [stdout] test extensions::gpu::tests::render_pct_fallback_when_no_token ... ok
[INFO] [stdout] test extensions::gpu::tests::gpu_vram_renders_question_marks_when_unknown ... ok
[INFO] [stdout] test extensions::gpu::tests::render_pct_precision_2dp_form ... ok
[INFO] [stdout] test extensions::gpu::tests::gpu_usage_percent_emits_gradient_chain ... ok
[INFO] [stdout] test extensions::gpu::tests::render_pct_precision_f_form ... ok
[INFO] [stdout] test extensions::gpu::tests::render_pct_printf_d_without_percent_literal ... ok
[INFO] [stdout] test extensions::gpu::tests::render_pct_printf_compat ... ok
[INFO] [stdout] test extensions::icons::tests::pick_default_is_nerdfont ... ok
[INFO] [stdout] test extensions::k8s::tests::kubecontext_state_default_is_empty ... ok
[INFO] [stdout] test extensions::k8s::tests::render_format_drop_ns_strips_colon_separator ... ok
[INFO] [stdout] test extensions::k8s::tests::render_format_leaves_unknown_tokens_intact ... ok
[INFO] [stdout] test extensions::icons::tests::weather_unknown_is_never_empty ... ok
[INFO] [stdout] test extensions::mem_usage::tests::get_mem_used_dispatches_on_field_name ... ok
[INFO] [stdout] test extensions::k8s::tests::read_kube_context_missing_kubectl_returns_none ... ok
[INFO] [stdout] test extensions::k8s::tests::render_format_substitutes_context_and_namespace ... ok
[INFO] [stdout] test extensions::k8s::tests::render_format_drop_ns_strips_slash_separator ... ok
[INFO] [stdout] test extensions::mem_usage::tests::sizeof_fmt_one_mib_short_form ... ok
[INFO] [stdout] test extensions::mem_usage::tests::sizeof_fmt_zero_uses_d_format ... ok
[INFO] [stdout] test extensions::mem_usage::tests::sprintf_one_float_handles_percent_d_percent ... ok
[INFO] [stdout] test extensions::k8s::tests::render_format_drop_ns_handles_namespace_only ... ok
[INFO] [stdout] test extensions::k8s::tests::render_format_drop_ns_strips_at_separator ... ok
[INFO] [stdout] test extensions::mem_usage::tests::sprintf_one_float_handles_precision_f ... ok
[INFO] [stdout] test extensions::mem_usage::tests::sprintf_one_float_uses_bankers_rounding_matching_python ... ok
[INFO] [stdout] test extensions::mem_usage::tests::sizeof_fmt_one_byte_under_kib ... ok
[INFO] [stdout] test extensions::mem_usage::tests::sizeof_fmt_one_kib_long_form ... ok
[INFO] [stdout] test extensions::k8s::tests::kubecontext_missing_kubectl_returns_none ... ok
[INFO] [stdout] test extensions::proc_count::tests::render_format_leaves_unknown_tokens_intact ... ok
[INFO] [stdout] test extensions::proc_count::tests::tally_counts_each_state_code ... ok
[INFO] [stdout] test extensions::proc_count::tests::tally_empty_input_yields_zero_counts ... ok
[INFO] [stdout] test extensions::mem_usage::tests::sprintf_two_strings_handles_default_format ... ok
[INFO] [stdout] test extensions::proc_count::tests::process_count_warn_zombie_adds_zombie_highlight_group ... ok
[INFO] [stdout] test extensions::proc_count::tests::render_format_substitutes_all_tokens ... ok
[INFO] [stdout] test extensions::proc_count::tests::tally_unknown_state_does_not_increment_category_but_does_total ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::default_path_falls_back_to_home_dot_stryke ... ok
[INFO] [stdout] test extensions::proc_count::tests::tally_handles_lowercase_t_for_tracing_stop ... ok
[INFO] [stdout] test extensions::proc_count::tests::tally_ignores_modifier_suffixes ... ok
[INFO] [stdout] test extensions::proc_count::tests::tally_skips_blank_lines ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::default_path_skips_xdg_when_archive_missing ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::default_path_stryke_home_wins_over_xdg_and_home ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::default_path_with_no_env_returns_relative_dot_stryke ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::expand_tilde_passes_absolute_path_through ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::default_path_stryke_rkyv_cache_wins_over_everything ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::expand_tilde_does_not_expand_bare_tilde ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::human_bytes_kib_boundary ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::human_bytes_mib_gib_tib ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::human_bytes_precision_tiers ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::human_bytes_under_kib_stays_in_bytes ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::human_bytes_zero_is_plain_bytes ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::rkyv_cache_all_four_size_tokens_render_together ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::rkyv_cache_disk_tokens_render_against_real_file ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::default_path_uses_xdg_when_archive_exists ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::expand_tilde_resolves_home_prefix ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::rkyv_cache_empty_file_renders_zero_size ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::expand_tilde_passes_relative_path_through ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::rkyv_cache_divider_highlight_group_is_background_divider ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::rkyv_cache_format_tokens_render ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::rkyv_cache_highlight_group_chain_is_stryke_specific ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::rkyv_cache_missing_renders_zero_when_show_when_empty ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::rkyv_cache_missing_returns_none_when_hidden ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::stat_missing_returns_none ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::rkyv_cache_unknown_token_passes_through_unchanged ... ok
[INFO] [stdout] test extensions::thermal::tests::format_thermal_both_tokens_render_when_fan_available ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::stat_file_returns_size ... ok
[INFO] [stdout] test extensions::thermal::tests::format_thermal_missing_fan_drops_rpm_tail ... ok
[INFO] [stdout] test extensions::thermal::tests::format_thermal_missing_fan_tab_separator_trimmed ... ok
[INFO] [stdout] test extensions::thermal::tests::format_thermal_missing_temp_renders_question_mark ... ok
[INFO] [stdout] test extensions::thermal::tests::format_thermal_no_slots_passes_format_through ... ok
[INFO] [stdout] test extensions::thermal::tests::format_thermal_single_slot_format ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::rkyv_cache_icon_token_passes_through_unsubstituted ... ok
[INFO] [stdout] test extensions::thermal::tests::parse_ioreg_extracts_named_centi_celsius_value ... ok
[INFO] [stdout] test extensions::stryke_rkyv::tests::rkyv_cache_highlight_groups_have_neutral_fallback ... ok
[INFO] [stdout] test extensions::thermal::tests::format_thermal_temp_truncates_to_integer ... ok
[INFO] [stdout] test extensions::thermal::tests::parse_ioreg_falls_back_via_two_calls ... ok
[INFO] [stdout] test extensions::thermal::tests::parse_ioreg_handles_negative_value ... ok
[INFO] [stdout] test extensions::thermal::tests::parse_ioreg_value_without_digits_returns_none ... ok
[INFO] [stdout] test extensions::thermal::tests::thermal_gradient_clamps_overshoot_to_100 ... ok
[INFO] [stdout] test extensions::thermal::tests::thermal_gradient_ratio_is_percentage_of_max ... ok
[INFO] [stdout] test extensions::thermal::tests::thermal_drops_rpm_tail_when_fan_unavailable ... ok
[INFO] [stdout] test extensions::thermal::tests::thermal_gradient_returns_zero_when_max_nonpositive ... ok
[INFO] [stdout] test extensions::thermal::tests::thermal_gradient_returns_zero_when_temp_absent ... ok
[INFO] [stdout] test extensions::thermal::tests::thermal_reading_default_has_no_data ... ok
[INFO] [stdout] test extensions::thermal::tests::thermal_gradient_clamps_at_max ... ok
[INFO] [stdout] test extensions::wthr_extensions::tests::location_cache_path_returns_powerliners_dir_when_home_set ... ok
[INFO] [stdout] test extensions::wthr_extensions::tests::load_location_cache_returns_none_on_missing_file ... ok
[INFO] [stdout] test extensions::wthr_extensions::tests::save_then_load_location_cache_round_trips ... ok
[INFO] [stdout] test extensions::wthr_extensions::tests::urlencode_combines_paths ... ok
[INFO] [stdout] test extensions::wthr_extensions::tests::urlencode_empty_is_empty ... ok
[INFO] [stdout] test extensions::wthr_extensions::tests::urlencode_handles_high_bytes ... ok
[INFO] [stdout] test extensions::wthr_extensions::tests::urlencode_percent_escapes_unsafe_bytes ... ok
[INFO] [stdout] test extensions::wthr_extensions::tests::urlencode_passes_through_safe_chars ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::default_path_skips_xdg_when_archive_missing ... ok
[INFO] [stdout] test extensions::thermal::tests::parse_ioreg_missing_key_returns_none ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::default_path_uses_xdg_when_archive_exists ... ok
[INFO] [stdout] test extensions::wthr_extensions::tests::urlencode_space_becomes_plus ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::default_path_falls_back_to_home_dot_zshrs ... ok
[INFO] [stdout] test extensions::stryke_version::tests::version_missing_binary_returns_none ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::default_path_zshrs_rkyv_cache_wins_over_everything ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::expand_tilde_does_not_expand_bare_tilde ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::expand_tilde_passes_absolute_path_through ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::default_path_with_no_env_returns_relative_dot_zshrs ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::default_path_zshrs_home_wins_over_xdg_and_home ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::expand_tilde_passes_relative_path_through ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::expand_tilde_resolves_home_prefix ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::human_bytes_kib_boundary ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::human_bytes_mib_gib_tib ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::human_bytes_under_kib_stays_in_bytes ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::human_bytes_zero_is_plain_bytes ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::human_bytes_precision_tiers ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::rkyv_cache_all_four_size_tokens_render_together ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::rkyv_cache_empty_file_renders_zero_size ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::rkyv_cache_disk_tokens_render_against_real_file ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::rkyv_cache_highlight_group_chain_is_zshrs_specific ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::rkyv_cache_divider_highlight_group_is_background_divider ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::rkyv_cache_missing_returns_none_when_hidden ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::rkyv_cache_icon_token_passes_through_unsubstituted ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::rkyv_cache_highlight_groups_have_neutral_fallback ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::rkyv_cache_missing_renders_zero_when_show_when_empty ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::stat_missing_returns_none ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::rkyv_cache_unknown_token_passes_through_unchanged ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::stat_file_returns_size ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::stat_dir_returns_none ... ok
[INFO] [stdout] test ported::bindings::config::tests::check_command_returns_none_for_missing_binary ... ok
[INFO] [stdout] test extensions::zshrs_version::tests::version_highlight_groups_have_neutral_fallback ... ok
[INFO] [stdout] test extensions::zshrs_version::tests::version_missing_binary_returns_none ... ok
[INFO] [stdout] test ported::bindings::config::tests::check_command_returns_some_for_real_binary ... ok
[INFO] [stdout] test ported::bindings::config::tests::create_powerline_logger_constructs_logger ... ok
[INFO] [stdout] test ported::bindings::config::tests::empty_args_init_defaults_side_to_left ... ok
[INFO] [stdout] test ported::bindings::config::tests::deduce_command_returns_some_or_none ... ok
[INFO] [stdout] test ported::bindings::config::tests::empty_args_init_pins_config_path_to_none ... ok
[INFO] [stdout] test ported::bindings::config::tests::exact_matcher_requires_same_major_minor ... ok
[INFO] [stdout] test ported::bindings::config::tests::get_highlighting_dispatches_to_resolver_with_single_group ... ok
[INFO] [stdout] test ported::bindings::config::tests::get_main_config_returns_err_when_no_config_found ... ok
[INFO] [stdout] test extensions::zshrs_rkyv::tests::rkyv_cache_format_tokens_render ... ok
[INFO] [stdout] test ported::bindings::config::tests::get_main_config_returns_loaded_object ... ok
[INFO] [stdout] test ported::bindings::config::tests::parse_tmux_file_line_handles_quoted_args ... ok
[INFO] [stdout] test ported::bindings::config::tests::minus_matcher_applies_when_file_gte_tmux ... ok
[INFO] [stdout] test ported::bindings::config::tests::parse_tmux_file_line_skips_blank_lines ... ok
[INFO] [stdout] test ported::bindings::config::tests::parse_tmux_file_line_skips_comments ... ok
[INFO] [stdout] test ported::bindings::config::tests::plus_matcher_applies_when_file_lte_tmux ... ok
[INFO] [stdout] test ported::bindings::config::tests::parse_tmux_file_line_splits_simple_args ... ok
[INFO] [stdout] test ported::bindings::config::tests::empty_args_init_stores_ext_as_single_element_list ... ok
[INFO] [stdout] test ported::bindings::config::tests::init_tmux_environment_emits_color_dividers_and_per_attrs ... ok
[INFO] [stdout] test ported::bindings::config::tests::priority_order_matches_upstream ... ok
[INFO] [stdout] test ported::bindings::config::tests::replace_cb_returns_value_for_known_key ... ok
[INFO] [stdout] test ported::bindings::config::tests::config_file_name_matches_standard_format ... ok
[INFO] [stdout] test extensions::proc_count::tests::process_count_returns_one_chunk_when_ps_available ... ok
[INFO] [stdout] test extensions::proc_count::tests::read_proc_counts_real_probe_has_a_total ... ok
[INFO] [stdout] test ported::bindings::config::tests::sorted_tmux_configs_returns_entries_in_ascending_priority_order ... ok
[INFO] [stdout] test ported::bindings::config::tests::set_tmux_environment_nosource_inserts_entry ... ok
[INFO] [stdout] test ported::bindings::config::tests::source_tmux_files_includes_powerline_base ... ok
[INFO] [stdout] test ported::bindings::config::tests::tmux_setup_default_source_flag_is_true ... ok
[INFO] [stdout] test ported::bindings::config::tests::tmux_setup_explicit_source_false_returns_false ... ok
[INFO] [stdout] test ported::bindings::config::tests::replace_env_leaves_non_dollar_powerline_text_alone ... ok
[INFO] [stdout] test ported::bindings::config::tests::source_tmux_file_nosource_skips_comments_and_blanks ... ok
[INFO] [stdout] test ported::bindings::config::tests::tmux_var_re_captures_group_after_dollar ... ok
[INFO] [stdout] test ported::bindings::config::tests::uses_check_env_vars_returns_false_when_unset ... ok
[INFO] [stdout] test ported::bindings::config::tests::uses_check_env_vars_returns_false_when_var_is_empty ... ok
[INFO] [stdout] test ported::bindings::config::tests::uses_check_env_vars_returns_true_for_powerline_no_var ... ok
[INFO] [stdout] test ported::bindings::config::tests::uses_component_exit_code_default_components_when_missing ... ok
[INFO] [stdout] test ported::bindings::config::tests::uses_component_exit_code_returns_0_when_component_in_config ... ok
[INFO] [stdout] test ported::bindings::config::tests::uses_component_exit_code_returns_1_when_component_not_in_config ... ok
[INFO] [stdout] test ported::bindings::config::tests::uses_requires_non_empty_component ... ok
[INFO] [stdout] test ported::bindings::config::tests::uses_returns_0_when_component_in_default_components ... ok
[INFO] [stdout] test ported::bindings::config::tests::uses_returns_1_when_env_var_set ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::configurable_do_setup_does_not_overwrite_existing_snapshot ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::configurable_do_setup_swaps_prompt_manager_and_wires_hook ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::configurable_init_reads_overrides ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::configurable_init_returns_pre_5_when_has_prompt_manager ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::configurable_init_returns_since_7_without_prompt_manager ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::load_ipython_extension_with_prompt_manager_returns_prompt_manager ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::load_ipython_extension_without_prompt_manager_returns_deprecated ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::powerline_magics_other_arg_errors ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::powerline_magics_reload_succeeds ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::powerline_prompt_manager_render_passes_is_prompt_false_for_other_names ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::powerline_prompt_manager_render_passes_is_prompt_true_for_in_names ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::powerline_prompt_manager_render_returns_plain_for_non_rewrite ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::powerline_prompt_manager_render_returns_raw_when_color_false ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::powerline_prompt_manager_render_returns_rewrite_for_rewrite_name ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::shutdown_hook_call_returns_try_next ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::shutdown_hook_call_skips_shutdown_when_target_dead ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::shutdown_hook_initial_state_no_call_count ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::shutdown_hook_set_powerline_marks_live ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::unload_ipython_extension_noop_when_no_snapshot ... ok
[INFO] [stdout] test ported::bindings::ipython::post_0_11::tests::unload_ipython_extension_restores_snapshot ... ok
[INFO] [stdout] test ported::bindings::config::tests::uses_check_env_vars_checks_shell_fallback ... ok
[INFO] [stdout] test ported::bindings::config::tests::shell_command_returns_deduce_command_result ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::configurable_init_pins_pre_5_renderer ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::do_setup_installs_three_prompts_and_wires_hook ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::configurable_init_stashes_all_three_overrides ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::ipython_info_prompt_count_returns_value ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::ipython_magic_other_errors ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::ipython_magic_reload_succeeds ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::late_startup_hook_dispatches_setup_then_returns_try_next ... ok
[INFO] [stdout] test ported::bindings::config::tests::tmux_var_re_matches_dollar_powerline_var ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::powerline_prompt1_auto_rewrite_pads_with_nrspaces ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::powerline_prompt1_set_p_str_zero_trailing_spaces ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::powerline_prompt1_advances_count_and_snapshots_last_prompt ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::powerline_prompt1_set_p_str_counts_trailing_spaces ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::powerline_prompt2_inherits_padding_behaviour ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::powerline_prompt2_is_prompt_true ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::powerline_prompt_init_preserves_sep_when_supplied ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::powerline_prompt_init_sets_pad_left_false ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::powerline_prompt_out_is_not_a_prompt ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::powerline_prompt_out_pads_with_last_in_nrspaces ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::powerline_prompt_set_colors_is_noop ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::powerline_prompt_set_p_str_stashes_render_result ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::rspace_matches_trailing_whitespace ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::rspace_matches_empty_at_end_of_no_trailing_space ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::setup_returns_pair_of_powerline_and_hook ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::shutdown_hook_call_returns_try_next ... ok
[INFO] [stdout] test ported::bindings::ipython::pre_0_11::tests::shutdown_hook_call_skips_when_target_dead ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::configurable_ipython_powerline_init_returns_renderer_module ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::continuation_prompt_tokens_helper_uses_in2_matcher ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::do_setup_attaches_powerline_to_prompts_and_shutdown_hook ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::in_prompt_tokens_helper_works ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::init_reads_config_overrides_from_powerline_config ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::init_missing_config_keys_leaves_base_attrs_empty ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::init_reads_config_paths_from_powerline_config ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::init_reads_theme_overrides_from_powerline_config ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::out_prompt_tokens_helper_uses_out_matcher ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::powerline_prompts_init_starts_with_empty_cache ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::make_style_from_name_returns_powerline_prompt_style ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::prompt_kind_cache_keys_match_upstream ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::prompt_kind_matcher_info_maps_continuation_to_in2 ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::make_style_from_name_calls_saved_msfn ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::prompt_tokens_appends_trailing_space_token ... ok
[INFO] [stdout] test ported::bindings::config::tests::replace_env_substitutes_known_var ... ok
[INFO] [stdout] test ported::bindings::config::tests::replace_env_passes_through_unknown_var ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::prompt_tokens_caches_within_same_execution_count ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::prompt_tokens_distinct_keys_cache_separately ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::prompt_tokens_passes_continuation_matcher_as_in2 ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::prompt_tokens_passes_side_left ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::prompt_tokens_renders_again_when_execution_count_changes ... ok
[INFO] [stdout] test ported::bindings::ipython::since_5::tests::rewrite_prompt_tokens_helper_uses_rewrite_matcher ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::do_setup_attaches_powerline_to_prompts ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::init_reads_config_overrides_from_powerline_config ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::in_prompt_tokens_helper_works ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::init_reads_config_paths_from_powerline_config ... ok
[INFO] [stdout] test ported::bindings::config::tests::replace_env_substitutes_multiple_in_one_string ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::do_setup_marks_atexit_registered ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::init_missing_keys_leaves_base_attrs_empty ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::make_style_from_name_returns_powerline_prompt_style ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::out_prompt_tokens_helper_uses_out_matcher ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::powerline_prompts_init_has_empty_cache ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::init_reads_theme_overrides_from_powerline_config ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::init_returns_since_7_renderer_module ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::make_style_from_name_calls_saved_msfn ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::prompt_tokens_appends_trailing_space_token ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::prompt_tokens_caches_within_same_execution_count ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::prompt_tokens_distinct_keys_cache_separately ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::prompt_tokens_renders_again_when_execution_count_changes ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::prompt_tokens_passes_side_left ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::prompt_tokens_continuation_uses_in2_matcher ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::rewrite_prompt_tokens_helper_uses_rewrite_matcher ... ok
[INFO] [stdout] test ported::bindings::pdb::tests::powerline_render_result_is_string_alias ... ok
[INFO] [stdout] test ported::bindings::pdb::tests::use_powerline_prompt_flags_class_name ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::bar_draw_calls_accumulate_across_updates ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::calculated_constant_matches_libqtile_sentinel ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::cmd_get_returns_current_text ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::configure_marks_widget_configured_and_runs_timer_setup ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::configure_skips_relayout_when_layout_markup_already_true ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::cmd_update_delegates_to_update ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::qtile_powerline_do_setup_assigns_powerline_attribute ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::timer_setup_first_call_flips_flag ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::timer_setup_subsequent_calls_no_op ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::update_interval_falls_back_to_timeout_when_none ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::update_interval_overrides_timeout_when_supplied ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::update_passes_side_left_for_left_widget ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::update_renders_and_draws_when_configured ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::update_returns_true_unconditionally ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::update_skips_when_not_configured ... ok
[INFO] [stdout] test ported::bindings::tmux::tests::get_tmux_executable_name_defaults_to_tmux ... ok
[INFO] [stdout] test ported::bindings::tmux::tests::get_tmux_executable_name_uses_env_var ... ok
[INFO] [stdout] test ported::bindings::ipython::since_7::tests::shutdown_clears_atexit_flag ... ok
[INFO] [stdout] test ported::bindings::pdb::tests::main_emits_advice_without_panic ... ok
[INFO] [stdout] test ported::bindings::qtile::widget::tests::powerline_text_box_defaults_match_upstream_signature ... ok
[INFO] [stdout] test ported::bindings::vim::tests::buffer_name_returns_set_value ... ok
[INFO] [stdout] test ported::bindings::vim::tests::get_vim_encoding_returns_utf8_fallback ... ok
[INFO] [stdout] test ported::bindings::vim::tests::powerline_vim_strtrans_error_empty_input ... ok
[INFO] [stdout] test ported::bindings::vim::tests::python_to_vim_bool_emits_0_or_1 ... ok
[INFO] [stdout] test ported::bindings::vim::tests::python_to_vim_empty_list ... ok
[INFO] [stdout] test ported::bindings::vim::tests::python_to_vim_list_emits_bracketed_csv ... ok
[INFO] [stdout] test ported::bindings::vim::tests::list_tabpages_empty_when_no_vim ... ok
[INFO] [stdout] test ported::bindings::vim::tests::powerline_vim_strtrans_error_emits_hex_per_byte ... ok
[INFO] [stdout] test ported::bindings::vim::tests::python_to_vim_unicode_quotes_and_escapes ... ok
[INFO] [stdout] test ported::bindings::vim::tests::str_to_bytes_returns_utf8_bytes ... ok
[INFO] [stdout] test ported::bindings::vim::tests::vim_environ_get_expr_builds_dollar_key ... ok
[INFO] [stdout] test ported::bindings::vim::tests::vim_environ_set_command_escapes_value ... ok
[INFO] [stdout] test ported::bindings::vim::tests::vim_environ_set_command_builds_let_form ... ok
[INFO] [stdout] test ported::bindings::vim::tests::vim_environ_value_escape_escapes_backslash ... ok
[INFO] [stdout] test ported::bindings::vim::tests::vim_environ_value_escape_newline_becomes_backslash_n ... ok
[INFO] [stdout] test ported::bindings::vim::tests::vim_environ_value_escape_strips_null_byte ... ok
[INFO] [stdout] test ported::bindings::vim::tests::vim_environ_value_escape_quotes_double_quote ... ok
[INFO] [stdout] test ported::bindings::vim::tests::vim_getbufoption_returns_value_if_set ... ok
[INFO] [stdout] test ported::bindings::wm::tests::default_update_interval_matches_upstream ... ok
[INFO] [stdout] test ported::bindings::wm::awesome::tests::awesome_thread_starts_and_joins ... ok
[INFO] [stdout] test ported::bindings::wm::tests::wm_threads_registers_awesome ... ok
[INFO] [stdout] test ported::bindings::wm::awesome::tests::read_to_log_does_not_panic_on_success ... ok
[INFO] [stdout] test ported::bindings::tmux::tests::version_regexes_strip_correctly ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::args_config_override_delegates_to_get_var_config ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::args_config_override_none_input_returns_none ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::args_config_path_filters_empty_segments ... ok
[INFO] [stdout] test ported::bindings::vim::tests::python_to_vim_float_emits_ascii_digits ... ok
[INFO] [stdout] test ported::bindings::wm::tests::xrandr_regex_matches_standard_line ... ok
[INFO] [stdout] test ported::bindings::wm::tests::xrandr_regex_handles_non_primary ... ok
[INFO] [stdout] test ported::bindings::vim::tests::python_to_vim_int_emits_ascii_digits ... ok
[INFO] [stdout] test ported::bindings::vim::tests::python_to_vim_plain_string ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::args_config_path_none_input_returns_none ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::args_config_path_passes_array_through ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::args_ext_matches_upstream ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::args_new_defaults_to_empty_pipe_status_and_zero_exit_code ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::args_jobnum_passes_through ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::args_renderer_module_matches_upstream ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::args_theme_override_delegates_to_get_var_config ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::build_segment_info_none_mode_becomes_null ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::build_segment_info_contains_all_expected_keys ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::config_path_from_var_string_filters_empty_entries ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::args_config_path_splits_string_on_colon ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::config_path_from_var_none_returns_none ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::config_path_from_var_list_preserves_entries ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::config_path_from_var_string_splits_on_colon ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::environment_contains_true_when_present ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::environment_get_returns_default_when_absent ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::environment_get_returns_value_when_present ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::environment_contains_false_when_absent ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::get_var_config_dict_parses_via_parsedotval ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::get_var_config_none_returns_none ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::get_var_config_string_parses_via_parse_override_var ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::get_var_config_unknown_type_returns_none ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::prompt_del_restore_returns_none_when_no_savedps ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::prompt_del_restore_returns_none_when_savedps_empty ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::prompt_del_restore_returns_var_value_pair ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::reload_config_iterates_registered_powerlines ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::prompt_new_stores_state ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::set_prompt_zpyvar_name_prepends_zpython_powerline ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::setup_entry_returns_fresh_powerline ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::shutdown_iterates_registered_powerlines ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::reload_iterates_registered_powerlines ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::zsh_expand_fallback_builds_local_var_command ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::zsh_powerline_do_setup_emits_five_prompt_pairs ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::string_decodes_bytes_to_utf8 ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::zsh_powerline_do_setup_registers_in_used_powerlines ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::zsh_powerline_new_assigns_unique_id ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::zsh_powerline_precmd_sets_args ... ok
[INFO] [stdout] test ported::colorscheme::tests::attr_constants_match_upstream ... ok
[INFO] [stdout] test ported::colorscheme::tests::colorscheme_new_minimal_config ... ok
[INFO] [stdout] test ported::colorscheme::tests::cterm_to_hex_spot_check ... ok
[INFO] [stdout] test ported::colorscheme::tests::cterm_to_hex_has_256_entries ... ok
[INFO] [stdout] test ported::bindings::zsh::tests::zsh_powerline_do_setup_marks_above_only_for_ps1 ... ok
[INFO] [stdout] test ported::colorscheme::tests::get_attrs_flag_combines_bits ... ok
[INFO] [stdout] test ported::colorscheme::tests::get_highlighting_resolves_group ... ok
[INFO] [stdout] test ported::colorscheme::tests::get_attrs_flag_empty_is_zero ... ok
[INFO] [stdout] test ported::colorscheme::tests::pick_gradient_value_endpoints ... ok
[INFO] [stdout] test ported::commands::config::tests::config_arg_parser_parse_args_requires_function ... ok
[INFO] [stdout] test ported::commands::config::tests::config_arg_parser_parse_args_returns_function_when_set ... ok
[INFO] [stdout] test ported::commands::config::tests::config_arg_parser_round_trips_underlying_argparser ... ok
[INFO] [stdout] test ported::commands::config::tests::get_argparser_description_matches_upstream ... ok
[INFO] [stdout] test ported::commands::config::tests::shell_action_lookup_command_and_uses ... ok
[INFO] [stdout] test ported::commands::config::tests::get_argparser_includes_subcommand_handles ... ok
[INFO] [stdout] test ported::commands::config::tests::shell_actions_has_two_entries ... ok
[INFO] [stdout] test ported::commands::config::tests::str_function_binding_names_match_python_module_attrs ... ok
[INFO] [stdout] test ported::commands::config::tests::str_function_call_returns_binding_function_name ... ok
[INFO] [stdout] test ported::commands::config::tests::str_function_display_round_trips_via_name ... ok
[INFO] [stdout] test ported::commands::config::tests::str_function_names_match_upstream ... ok
[INFO] [stdout] test ported::commands::config::tests::tmux_action_lookup_unknown_returns_none ... ok
[INFO] [stdout] test ported::commands::config::tests::tmux_actions_has_three_entries ... ok
[INFO] [stdout] test ported::commands::daemon::tests::daemon_parser_description_matches_upstream ... ok
[INFO] [stdout] test ported::commands::daemon::tests::daemon_parser_flag_set ... ok
[INFO] [stdout] test ported::commands::daemon::tests::daemon_parser_has_five_arguments ... ok
[INFO] [stdout] test ported::commands::lemonbar::tests::lemonbar_parser_has_five_arguments ... ok
[INFO] [stdout] test ported::commands::lemonbar::tests::lemonbar_parser_has_i3_flag ... ok
[INFO] [stdout] test ported::commands::lemonbar::tests::lemonbar_parser_bar_command_default_meta ... ok
[INFO] [stdout] test ported::commands::lint::tests::config_path_uses_append_action ... ok
[INFO] [stdout] test ported::commands::lemonbar::tests::lemonbar_parser_description_matches_upstream ... ok
[INFO] [stdout] test ported::commands::lint::tests::lint_parser_description_matches_upstream ... ok
[INFO] [stdout] test ported::commands::lint::tests::lint_parser_has_two_arguments ... ok
[INFO] [stdout] test ported::commands::main::tests::arg_to_unicode_is_identity_in_py3 ... ok
[INFO] [stdout] test ported::commands::main::tests::finish_args_accepts_wm_ext_without_side ... ok
[INFO] [stdout] test ported::commands::main::tests::finish_args_combines_env_and_arg_config_path ... ok
[INFO] [stdout] test ported::commands::main::tests::finish_args_merges_config_override ... ok
[INFO] [stdout] test ported::commands::main::tests::get_argparser_description_matches_upstream ... ok
[INFO] [stdout] test ported::commands::main::tests::finish_args_validates_ext_side ... ok
[INFO] [stdout] test ported::commands::main::tests::get_argparser_has_required_flags ... ok
[INFO] [stdout] test ported::commands::main::tests::get_argparser_has_expected_argument_count ... ok
[INFO] [stdout] test ported::commands::main::tests::finish_args_merges_renderer_arg_with_pane_id_int_parsing ... ok
[INFO] [stdout] test ported::commands::main::tests::int_or_sig_rejects_invalid_int ... ok
[INFO] [stdout] test ported::commands::main::tests::int_or_sig_parses_signal_name ... ok
[INFO] [stdout] test ported::config::tests::config_constants_are_consistent ... ok
[INFO] [stdout] test ported::commands::main::tests::int_or_sig_parses_integer ... ok
[INFO] [stdout] test ported::ipython::tests::do_setup_assigns_powerline_to_each_live_wref ... ok
[INFO] [stdout] test ported::ipython::tests::get_config_paths_returns_none_when_empty ... ok
[INFO] [stdout] test ported::ipython::tests::get_config_paths_returns_some_when_set ... ok
[INFO] [stdout] test ported::ipython::tests::get_local_themes_empty_input_returns_empty ... ok
[INFO] [stdout] test ported::ipython::tests::get_local_themes_applies_theme_override ... ok
[INFO] [stdout] test ported::ipython::tests::get_local_themes_wraps_each_value_in_config_key ... ok
[INFO] [stdout] test ported::ipython::tests::ipython_info_prompt_count_returns_execution_count ... ok
[INFO] [stdout] test ported::ipython::tests::ipython_powerline_init_pins_ext_and_daemon_threads ... ok
[INFO] [stdout] test ported::ipython::tests::get_local_themes_non_string_value_uses_empty_theme_name ... ok
[INFO] [stdout] test ported::ipython::tests::ipython_info_construct_from_zero ... ok
[INFO] [stdout] test ported::ipython::tests::ipython_powerline_new_has_empty_attrs ... ok
[INFO] [stdout] test ported::ipython::tests::load_main_config_no_overrides_passes_through ... ok
[INFO] [stdout] test ported::ipython::tests::load_main_config_overlays_config_overrides ... ok
[INFO] [stderr] Can't open display 
[INFO] [stdout] test ported::ipython::tests::load_theme_config_ignores_non_matching_name ... ok
[INFO] [stdout] test ported::ipython::tests::load_theme_config_overlays_matching_name ... ok
[INFO] [stdout] test ported::ipython::tests::rewrite_result_constructs_from_string ... ok
[INFO] [stdout] test ported::ipython::tests::rewrite_result_eq_compares_prompt ... ok
[INFO] [stdout] test ported::ipython::tests::rewrite_result_str_returns_prompt ... ok
[INFO] [stdout] test ported::ipython::tests::rewrite_result_add_chain ... ok
[INFO] [stdout] test ported::ipython::tests::rewrite_result_add_concatenates ... ok
[INFO] [stdout] test ported::lemonbar::tests::get_encoding_is_utf8 ... ok
[INFO] [stdout] test ported::lemonbar::tests::get_local_themes_none_returns_empty ... ok
[INFO] [stdout] test ported::lemonbar::tests::get_local_themes_wraps_each_value_in_config_key ... ok
[INFO] [stdout] test ported::lemonbar::tests::init_renderer_module_is_lemonbar ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_default_uses_deferred_watcher_type ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_exception_no_pl_returns_err ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_exception_with_pl_returns_formatted ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_exception_substitutes_multiple_args ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_load_calls_load_fn_on_cache_miss ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_register_adds_function_to_watched_path ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_register_dedupes_function_id ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_load_propagates_load_fn_errors ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_register_missing_adds_pair_to_key ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_load_returns_cached_value_on_hit ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_run_exits_when_interval_is_none ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_run_exits_immediately_when_shutdown_event_set ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_run_once_uses_dummy_watcher_type ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_set_interval_records_value ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_set_watcher_same_type_is_noop ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_unregister_functions_clears_loaded_entry ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_unregister_functions_drops_path_when_empty ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_unregister_functions_keeps_path_with_remaining_functions ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_unregister_missing_drops_key_when_empty ... ok
[INFO] [stdout] test ported::lemonbar::tests::init_ext_is_wm ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_update_dispatches_modified_paths ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_set_watcher_dummy_to_inotify ... ok
[INFO] [stdout] test ported::lemonbar::tests::init_constructs_powerline_with_wm_and_lemonbar ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_update_load_error_surfaces ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_update_resolves_missing_via_condition ... ok
[INFO] [stdout] test ported::lib::config::tests::deferred_watcher_queues_calls ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_update_skips_unmodified_paths ... ok
[INFO] [stdout] test ported::lib::config::tests::load_json_config_returns_err_on_bad_json ... ok
[INFO] [stdout] test ported::lib::config::tests::dummy_watcher_always_returns_false ... ok
[INFO] [stdout] test ported::lib::config::tests::open_file_reads_utf8_contents ... ok
[INFO] [stdout] test ported::lib::debug::tests::print_path_is_no_op ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_set_pl_records_value ... ok
[INFO] [stdout] test ported::lib::config::tests::config_loader_set_watcher_different_type_swaps ... ok
[INFO] [stdout] test ported::lib::debug::tests::recurse_is_no_op ... ok
[INFO] [stdout] test ported::lib::debug::tests::print_cycles_is_no_op ... ok
[INFO] [stdout] test ported::lib::dict::tests::mergeargs_empty_returns_none ... ok
[INFO] [stdout] test ported::lib::config::tests::load_json_config_parses_basic ... ok
[INFO] [stdout] test ported::lib::dict::tests::mergedicts_recurses_into_nested ... ok
[INFO] [stdout] test ported::lib::dict::tests::mergeargs_folds_pairs ... ok
[INFO] [stdout] test ported::lib::dict::tests::mergedefaults_keeps_existing ... ok
[INFO] [stdout] test ported::lib::dict::tests::mergedicts_remove_this_key_deletes ... ok
[INFO] [stdout] test ported::lib::dict::tests::mergedicts_copy_does_not_mutate_inputs ... ok
[INFO] [stdout] test ported::lib::dict::tests::mergedicts_overwrites_scalar ... ok
[INFO] [stdout] test ported::lib::dict::tests::updated_does_not_mutate_input ... ok
[INFO] [stdout] test ported::lib::encoding::tests::all_encodings_return_known_values ... ok
[INFO] [stdout] test ported::lib::encoding::tests::unicode_writer_writes_to_buffer ... ok
[INFO] [stdout] test ported::lib::humanize_bytes::tests::unit_list_matches_upstream_shape ... ok
[INFO] [stdout] test ported::lib::humanize_bytes::tests::si_prefix_matches_upstream ... ok
[INFO] [stdout] test ported::lib::humanize_bytes::tests::binary_prefix_matches_upstream ... ok
[INFO] [stdout] test ported::lib::humanize_bytes::tests::zero_returns_suffix_only ... ok
[INFO] [stdout] test ported::lib::inotify::tests::load_inotify_returns_error_in_stub ... ok
[INFO] [stdout] test ported::lib::inotify::tests::inotify_error_implements_display ... ok
[INFO] [stdout] test ported::lib::memoize::tests::memoize_recomputes_on_different_key ... ok
[INFO] [stdout] test ported::lib::monotonic::tests::monotonic_is_non_decreasing ... ok
[INFO] [stdout] test ported::lib::memoize::tests::default_cache_key_is_stable_across_iteration_order ... ok
[INFO] [stdout] test ported::lib::memoize::tests::memoize_caches_within_timeout ... ok
[INFO] [stdout] test ported::lib::overrides::tests::keyvaluesplit_basic ... ok
[INFO] [stdout] test ported::lib::overrides::tests::keyvaluesplit_leading_underscore_errors ... ok
[INFO] [stdout] test ported::lib::overrides::tests::keyvaluesplit_no_equals_errors ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parse_override_var_skips_empty ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parse_override_var_splits_on_semicolon ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parse_value_array_and_object ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parse_value_number ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parse_value_raw_string ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parse_value_empty_returns_remove_marker ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parse_value_string_in_quotes ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parsedotval_dispatches_tuple_to_parse_value ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parsedotval_dispatches_str_to_keyvaluesplit ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parse_value_specials ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parsedotval_str_builds_nested ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parsedotval_str_no_dot_returns_flat_pair ... ok
[INFO] [stdout] test ported::lib::path::tests::join_absolute_component_resets ... ok
[INFO] [stdout] test ported::lib::path::tests::join_empty_returns_empty_path ... ok
[INFO] [stdout] test ported::lib::overrides::tests::parsedotval_str_no_dot_is_flat ... ok
[INFO] [stdout] test ported::lib::path::tests::join_concatenates_components_in_order ... ok
[INFO] [stdout] test ported::lib::path::tests::realpath_of_cwd_is_absolute ... ok
[INFO] [stdout] test ported::lib::path::tests::realpath_of_missing_path_is_absolute_join_with_cwd ... ok
[INFO] [stdout] test ported::bindings::wm::tests::get_connected_xrandr_outputs_returns_empty_when_xrandr_unavailable ... ok
[INFO] [stdout] test ported::lib::shell::tests::run_cmd_missing_command_returns_none ... ok
[INFO] [stdout] test ported::lib::shell::tests::which_finds_echo ... ok
[INFO] [stdout] test ported::lib::shell::tests::run_cmd_echo_returns_stdout ... ok
[INFO] [stdout] test ported::lib::shell::tests::readlines_returns_per_line ... ok
[INFO] [stdout] test ported::lib::shell::tests::which_missing_returns_none ... ok
[INFO] [stdout] test ported::lib::tests::add_divider_highlight_group_empty_string_returns_none ... ok
[INFO] [stdout] test ported::lib::tests::add_divider_highlight_group_custom_highlight_string ... ok
[INFO] [stdout] test ported::lib::tests::add_divider_highlight_group_invokes_inner_func_each_call ... ok
[INFO] [stdout] test ported::lib::tests::add_divider_highlight_group_to_list_empty_returns_none ... ok
[INFO] [stdout] test ported::lib::tests::add_divider_highlight_group_to_list_injects_divider_into_each_entry ... ok
[INFO] [stdout] test ported::lib::tests::add_divider_highlight_group_to_list_none_returns_none ... ok
[INFO] [stdout] test ported::lib::tests::add_divider_highlight_group_to_list_preserves_existing_dividers ... ok
[INFO] [stdout] test ported::lib::tests::add_divider_highlight_group_wraps_non_empty_string ... ok
[INFO] [stdout] test ported::lib::tests::dec_returns_wrapped_origin_pair ... ok
[INFO] [stdout] test ported::lib::tests::f_returns_none_for_empty_contents ... ok
[INFO] [stdout] test ported::lib::tests::f_returns_single_segment_list_for_non_empty_contents ... ok
[INFO] [stdout] test ported::lib::tests::wrapped_origin_accessors_match_fields ... ok
[INFO] [stdout] test ported::lib::tests::wrapped_origin_exposes_both_callables ... ok
[INFO] [stdout] test ported::lib::threaded::tests::additional_args_returns_interval_pair ... ok
[INFO] [stdout] test ported::lib::tests::wraps_saveargs_returns_wrapper_origin_pair ... ok
[INFO] [stdout] test ported::lib::threaded::tests::argspecobjs_yields_argmethod_name_pairs ... ok
[INFO] [stdout] test ported::lib::shell::tests::run_cmd_no_strip_keeps_trailing_newline ... ok
[INFO] [stdout] test ported::lib::tests::add_divider_highlight_group_none_input_returns_none ... ok
[INFO] [stdout] test ported::lib::threaded::tests::call_dispatch_crashed_returns_crashed ... ok
[INFO] [stdout] test ported::lib::threaded::tests::call_dispatch_default_skips_update_when_fresh ... ok
[INFO] [stdout] test ported::lib::threaded::tests::call_dispatch_default_updates_when_stale ... ok
[INFO] [stdout] test ported::lib::threaded::tests::call_dispatch_not_alive_uses_do_update_first ... ok
[INFO] [stdout] test ported::lib::threaded::tests::call_dispatch_run_once_forces_update ... ok
[INFO] [stdout] test ported::lib::threaded::tests::exception_returns_prefix_message_pair ... ok
[INFO] [stdout] test ported::lib::threaded::tests::get_update_value_runs_refresh_when_update_true ... ok
[INFO] [stdout] test ported::lib::threaded::tests::info_warn_error_debug_all_return_prefix_message_pair ... ok
[INFO] [stdout] test ported::lib::threaded::tests::get_update_value_skips_refresh_when_update_false ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_key_empty_returns_empty ... ok
[INFO] [stdout] test ported::lib::threaded::tests::critical_returns_prefix_message_pair ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_key_sorts_kwargs ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_omitted_args_table_render_includes_three_args ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_omitted_args_table_set_state_omits_shutdown_event ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_render_one_returns_update_state_unchanged ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_omitted_args_table_unknown_returns_empty ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_set_state_pins_do_update_first ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_set_state_calls_set_interval ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_threaded_render_after_update_internal_error_returns_none ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_threaded_render_returns_cached_state_when_present ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_threaded_segment_multiple_keys_isolated ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_omitted_args_table_render_one_omits_first ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_threaded_render_falls_back_to_render_with_update_on_cache_miss ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_threaded_segment_new_empty ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_threaded_segment_update_one_crash_preserves_value ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_threaded_segment_update_one_recovery_clears_crashed ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_threaded_update_keeps_fresh_entries_as_is ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_threaded_update_processes_new_queries ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_threaded_segment_update_one_inserts_key ... ok
[INFO] [stdout] test ported::lib::threaded::tests::kw_threaded_update_refreshes_stale_entries ... ok
[INFO] [stdout] test ported::lib::threaded::tests::omitted_args_bound_leaves_string_indices_unchanged ... ok
[INFO] [stdout] test ported::lib::threaded::tests::omitted_args_bound_shifts_integer_indices_by_one ... ok
[INFO] [stdout] test ported::lib::threaded::tests::omitted_args_table_render_omits_first ... ok
[INFO] [stdout] test ported::lib::threaded::tests::new_thread_is_not_alive ... ok
[INFO] [stdout] test ported::lib::threaded::tests::multi_runned_thread_start_dispatches_to_start_with ... ok
[INFO] [stdout] test ported::lib::threaded::tests::omitted_args_table_set_state_omits_shutdown_event ... ok
[INFO] [stdout] test ported::lib::threaded::tests::omitted_args_unbound_passes_indices_through ... ok
[INFO] [stdout] test ported::lib::threaded::tests::threaded_segment_defaults_match_upstream ... ok
[INFO] [stdout] test ported::lib::threaded::tests::omitted_args_table_unknown_name_returns_empty ... ok
[INFO] [stdout] test ported::lib::threaded::tests::threaded_segment_set_interval_none_preserves_default ... ok
[INFO] [stdout] test ported::lib::threaded::tests::start_then_join_runs_closure ... ok
[INFO] [stdout] test ported::lib::threaded::tests::threaded_segment_set_state_false_clears_do_update_first ... ok
[INFO] [stdout] test ported::lib::threaded::tests::threaded_segment_set_interval_overrides_default ... ok
[INFO] [stdout] test ported::lib::threaded::tests::threaded_segment_set_state_sets_do_update_first ... ok
[INFO] [stdout] test ported::lib::threaded::tests::threaded_segment_set_update_value_err_sets_crashed ... ok
[INFO] [stdout] test ported::lib::threaded::tests::threaded_segment_shutdown_signals_thread ... ok
[INFO] [stdout] test ported::lib::threaded::tests::threaded_segment_set_update_value_ok_clears_crashed ... ok
[INFO] [stdout] test ported::lib::unicode::tests::failed_unicode_display_returns_inner_string ... ok
[INFO] [stdout] test ported::lib::unicode::tests::failed_unicode_eq_compares_by_value ... ok
[INFO] [stdout] test ported::lib::unicode::tests::failed_unicode_into_string_yields_inner ... ok
[INFO] [stdout] test ported::lib::unicode::tests::out_u_bytes_decodes_valid_utf8 ... ok
[INFO] [stdout] test ported::lib::unicode::tests::out_u_bytes_lossy_on_invalid ... ok
[INFO] [stdout] test ported::lib::unicode::tests::out_u_dispatches_bytes_to_bytes_branch ... ok
[INFO] [stdout] test ported::lib::unicode::tests::out_u_str_passes_through ... ok
[INFO] [stdout] test ported::lib::unicode::tests::out_u_dispatches_str_to_str_branch ... ok
[INFO] [stdout] test ported::lib::unicode::tests::powerline_decode_error_formats_hex ... ok
[INFO] [stdout] test ported::lib::unicode::tests::powerline_decode_error_handles_empty_range ... ok
[INFO] [stdout] test ported::lib::threaded::tests::threaded_segment_run_calls_update_once_then_stops_when_shutdown_set ... ok
[INFO] [stdout] test ported::lib::unicode::tests::register_strwidth_error_handler_emits_question_marks ... ok
[INFO] [stdout] test ported::lib::unicode::tests::powerline_encode_strwidth_error_replaces_with_question_marks ... ok
[INFO] [stdout] test ported::lib::unicode::tests::register_strwidth_error_handler_respects_width ... ok
[INFO] [stdout] test ported::lib::unicode::tests::register_strwidth_error_generates_unique_name ... ok
[INFO] [stdout] test ported::lib::unicode::tests::safe_unicode_bytes_handles_valid_utf8 ... ok
[INFO] [stdout] test ported::lib::unicode::tests::safe_unicode_bytes_lossy_on_invalid ... ok
[INFO] [stdout] test ported::lib::unicode::tests::safe_unicode_str_round_trips ... ok
[INFO] [stdout] test ported::lib::unicode::tests::safe_unicode_display_works_on_int ... ok
[INFO] [stdout] test ported::lib::unicode::tests::string_dispatches_str_to_identity ... ok
[INFO] [stdout] test ported::lib::unicode::tests::string_from_str_identity ... ok
[INFO] [stdout] test ported::lib::unicode::tests::string_from_bytes_lossy_on_invalid ... ok
[INFO] [stdout] test ported::lib::unicode::tests::string_dispatches_bytes_to_utf8_decode ... ok
[INFO] [stdout] test ported::lib::unicode::tests::string_from_bytes_decodes_utf8 ... ok
[INFO] [stdout] test ported::lib::unicode::tests::strwidth_ucs_2_matches_ucs_4_for_basic_strs ... ok
[INFO] [stdout] test ported::lib::unicode::tests::strwidth_ucs_4_empty_table_falls_back_to_one ... ok
[INFO] [stdout] test ported::lib::unicode::tests::strwidth_ucs_4_sums_with_default_table ... ok
[INFO] [stdout] test ported::lib::unicode::tests::strwidth_ucs_4_uses_table_value ... ok
[INFO] [stdout] test ported::lib::unicode::tests::surrogate_pair_to_character_round_trips_emoji_range ... ok
[INFO] [stdout] test ported::lib::unicode::tests::tointiter_handles_empty ... ok
[INFO] [stdout] test ported::lib::unicode::tests::tointiter_yields_byte_ints ... ok
[INFO] [stdout] test ported::lib::unicode::tests::surrogate_pair_to_character_low_surrogate_boundary ... ok
[INFO] [stdout] test ported::lib::unicode::tests::u_handles_utf8 ... ok
[INFO] [stdout] test ported::lib::unicode::tests::u_passes_through_str ... ok
[INFO] [stdout] test ported::lib::unicode::tests::unichr_returns_basic_ascii ... ok
[INFO] [stdout] test ported::lib::url::tests::urllib_read_returns_none_stub ... ok
[INFO] [stdout] test ported::lib::unicode::tests::unichr_returns_high_codepoint_as_single_char ... ok
[INFO] [stdout] test ported::lib::url::tests::urllib_urlencode_escapes_spaces_as_plus ... ok
[INFO] [stdout] test ported::lib::unicode::tests::unichr_returns_none_for_surrogate_codepoint ... ok
[INFO] [stdout] test ported::lib::url::tests::urllib_urlencode_percent_escapes_non_safe ... ok
[INFO] [stdout] test ported::lib::url::tests::urllib_urlencode_preserves_safe_chars ... ok
[INFO] [stdout] test ported::lib::url::tests::urllib_urlencode_simple ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::aggregate_short_status_both_returns_du ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::aggregate_short_status_empty_returns_none ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::aggregate_short_status_only_clean_chars_returns_none ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::aggregate_short_status_modified_returns_d ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::aggregate_short_status_untracked_returns_u ... ok
[INFO] [stdout] test ported::lib::monotonic::tests::monotonic_advances ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::branch_name_falls_back_to_directory_basename ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::extract_file_status_empty_returns_none ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::coerce_io_write_handles_invalid_utf8 ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::coerce_io_write_decodes_bytes ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::extract_file_status_ignored_returns_none ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::extract_file_status_takes_first_two_chars ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::branch_name_extracts_nickname_from_config ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::branch_name_falls_back_when_no_nickname_line ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::nick_pat_matches_with_extra_whitespace ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::nick_pat_does_not_match_unrelated_line ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::nick_pat_matches_simple_nickname_line ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::repository_new_canonicalizes_directory ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::repository_status_stub_returns_none ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::aggregate_porcelain_status_all_spaces_returns_none ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::aggregate_porcelain_status_combined_index_wt_untracked ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::aggregate_porcelain_status_empty_returns_none ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::aggregate_porcelain_status_modified_workingtree_returns_d ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::aggregate_porcelain_status_untracked_returns_u ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::repository_branch_falls_back_to_basename_when_no_conf ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::aggregate_porcelain_status_modified_index_returns_i ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::aggregate_porcelain_status_ignored_line_does_not_change_state ... ok
[INFO] [stdout] test ported::lib::vcs::bzr::tests::repository_branch_reads_branch_conf ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::branch_name_missing_file_returns_basename ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::do_status_stub_returns_none ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::git_directory_errors_on_empty_gitfile_pointer ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::git_directory_follows_gitfile_pointer ... ok
[INFO] [stdout] test ported::lib::threaded::tests::set_shutdown_signals_the_thread ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::git_repository_new_canonicalizes ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::ignore_event_index_lock_is_ignored ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::ignore_event_other_files_not_ignored ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::git_repository_branch_reads_head ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::ref_pat_does_not_match_sha ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::branch_name_from_symbolic_head ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::git_directory_returns_dot_git_when_it_is_a_directory ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::git_directory_errors_on_invalid_gitfile ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::branch_name_from_detached_head_returns_short_sha ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::ref_pat_matches_symbolic_head ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::ref_pat_matches_with_extra_whitespace ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::aggregate_repo_status_clean_codes_ignored ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::aggregate_repo_status_clean_returns_none ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::aggregate_repo_status_dirty_plus_untracked_returns_both ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::stash_stub_returns_zero ... ok
[INFO] [stdout] test ported::lib::vcs::git::tests::repository_new_errors_when_git_not_on_path ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::branch_name_from_existing_file_returns_trimmed_content ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::aggregate_repo_status_modified_returns_dirty ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::aggregate_repo_status_unknown_returns_untracked ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::branch_name_empty_file_returns_empty_string_after_strip ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::file_status_as_char_matches_upstream ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::repo_statuses_str_matches_upstream ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::branch_name_missing_file_returns_default ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::repository_do_status_stub_returns_none ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::repository_new_canonicalizes_directory ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::statuses_table_matches_upstream ... ok
[INFO] [stdout] test ported::lib::vcs::tests::branch_watcher_initialised_returns_bool ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::repository_branch_missing_returns_default ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::repository_status_repo_level_stub_returns_none ... ok
[INFO] [stdout] test ported::lib::vcs::tests::file_status_cache_invalidate_clears_ignore_dependents ... ok
[INFO] [stdout] test ported::lib::vcs::tests::file_status_cache_new_starts_empty ... ok
[INFO] [stdout] test ported::lib::vcs::mercurial::tests::repository_branch_reads_hg_branch_file ... ok
[INFO] [stdout] test ported::lib::vcs::tests::file_status_cache_update_maps_registers_ignore_files ... ok
[INFO] [stdout] test ported::lib::vcs::tests::file_status_cache_invalidate_clears_dirstate_dependents ... ok
[INFO] [stdout] test ported::lib::vcs::tests::file_watcher_initialised_returns_bool ... ok
[INFO] [stdout] test ported::lib::vcs::tests::generate_directories_terminates_at_root ... ok
[INFO] [stdout] test ported::lib::vcs::tests::get_branch_name_caches_within_process ... ok
[INFO] [stdout] test ported::lib::vcs::tests::file_status_cache_extra_ignore_files_are_included ... ok
[INFO] [stdout] test ported::lib::vcs::tests::get_branch_name_changed_flag_refreshes_cache ... ok
[INFO] [stdout] test ported::lib::vcs::tests::guess_returns_none_when_no_repo_in_chain ... ok
[INFO] [stdout] test ported::lib::vcs::tests::tree_status_cache_caches_status_on_first_call ... ok
[INFO] [stdout] test ported::lib::vcs::tests::guess_vcs_at_directory_returns_none_for_non_repo ... ok
[INFO] [stdout] test ported::lib::vcs::tests::tree_status_cache_call_invalidates_on_watcher_change ... ok
[INFO] [stdout] test ported::lib::vcs::tests::tree_status_cache_call_swallows_os_error_and_uses_cache ... ok
[INFO] [stdout] test ported::lib::vcs::tests::guess_vcs_at_directory_detects_mercurial_repo ... ok
[INFO] [stdout] test ported::lib::vcs::tests::tree_status_delegates_to_cache ... ok
[INFO] [stdout] test ported::lib::vcs::tests::guess_vcs_at_directory_detects_git_repo ... ok
[INFO] [stdout] test ported::lib::vcs::tests::tree_status_cache_call_uses_cache_when_unchanged ... ok
[INFO] [stdout] test ported::lib::vcs::tests::guess_walks_parent_directories_to_find_repo ... ok
[INFO] [stdout] test ported::lib::vcs::tests::vcs_check_exists_matches_existing_path ... ok
[INFO] [stdout] test ported::lib::vcs::tests::vcs_check_exists_no_match_for_nonexistent_path ... ok
[INFO] [stdout] test ported::lib::vcs::tests::vcs_props_contains_three_entries ... ok
[INFO] [stdout] test ported::lib::vcs::tests::vcs_props_mercurial_uses_isdir_check ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::base_dir_changed_implements_error_traits ... ok
[INFO] [stdout] test ported::lib::vcs::tests::vcs_props_git_uses_exists_check ... ok
[INFO] [stdout] test ported::lib::vcs::tests::vcs_check_isdir_only_matches_directories ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::dir_too_large_message_matches_upstream ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::file_watcher_expire_watches_removes_expired_entries ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::file_watcher_init_multiplies_expire_time_by_60 ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::file_watcher_close_unwatches_all_paths ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::file_watcher_query_calls_read_callback ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::file_watcher_query_returns_modified_flag_and_resets ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::file_watcher_query_unknown_path_returns_true ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::file_watcher_is_watching_false_when_not_registered ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::file_watcher_unwatch_unknown_path_no_op ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::file_watcher_unwatch_removes_state_and_calls_rm ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::file_watcher_watch_does_not_overwrite_existing ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::file_watcher_watch_stores_wd_in_state ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::process_event_outcome_acknowledged_for_modified_only ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::no_such_dir_implements_error_traits ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_add_watch_dir_stores_both_maps ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_add_watch_file_returns_false ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_add_watch_failure_returns_false_and_no_state ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_add_watches_records_wd_on_success ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_add_watches_skips_already_known_paths ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_init_modified_true ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_is_dummy_false ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_process_event_create_returns_add_child_watch ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_process_event_delete_self_on_basedir_returns_base_dir_changed ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_process_event_q_overflow_triggers_rescan ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_process_event_unknown_wd_ignored ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_process_event_ignored_event_does_not_set_modified ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_query_returns_and_resets_modified ... ok
[INFO] [stdout] test ported::lib::watcher::inotify::tests::tree_watcher_watch_tree_resets_and_calls_add_watches ... ok
[INFO] [stdout] test ported::lib::watcher::stat::tests::watch_then_check_returns_false_unchanged ... ok
[INFO] [stdout] test ported::lib::watcher::stat::tests::close_clears_all_watches ... ok
[INFO] [stdout] test ported::lib::watcher::stat::tests::check_returns_true_when_unwatched ... ok
[INFO] [stdout] test ported::lib::watcher::stat::tests::unwatch_removes_from_set ... ok
[INFO] [stdout] test ported::lib::watcher::tree::tests::dummy_tree_watcher_always_false ... ok
[INFO] [stdout] test ported::lib::watcher::tree::tests::expire_old_queries_drops_stale_entries ... ok
[INFO] [stdout] test ported::lib::watcher::tests::create_file_watcher_returns_a_watcher ... ok
[INFO] [stdout] test ported::lib::watcher::tests::create_file_watcher_stat_explicit ... ok
[INFO] [stdout] test ported::lib::watcher::tree::tests::tree_watcher_expire_time_is_minutes_to_seconds ... ok
[INFO] [stdout] test ported::lib::watcher::tests::create_file_watcher_inotify_falls_back_to_stat_on_non_linux ... ok
[INFO] [stdout] test ported::lib::watcher::tree::tests::tree_watcher_unknown_type_errors ... ok
[INFO] [stdout] test ported::lib::watcher::tree::tests::tree_watcher_first_call_returns_true_and_records_watch ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::import_pyuv_returns_uv_not_found_in_stub ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_file_watcher_new_errors ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_not_found_implements_error_traits ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_thread_async_cb_flips_joined ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_thread_new_starts_unjoined ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_thread_join_flips_state ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_tree_watcher_events_ignored_event_does_not_set_modified ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_tree_watcher_events_check_pops_modified_flag ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_tree_watcher_events_initial_state_is_modified ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_tree_watcher_events_is_dummy_false ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_tree_watcher_events_record_event_sets_modified ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_tree_watcher_new_errors ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_watcher_start_watch_0_x_inserts_path ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_tree_watcher_events_watch_directory_walks_supplied_list ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_watcher_start_watch_1_x_inserts_path ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::_uv_thread_starts_as_none ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::uv_file_watcher_events_check_consumes_queue ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::uv_file_watcher_events_check_false_when_empty ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::uv_file_watcher_events_check_returns_true_when_events_present ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::uv_file_watcher_events_new_starts_empty ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::uv_file_watcher_events_record_appends ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::uv_watcher_new_starts_empty ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::normpath_returns_string_for_non_existing ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::uv_watcher_supports_multiple_paths ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests::uv_thread_run_is_noop_without_panic ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::start_uv_thread_returns_uv_not_found ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::uv_watcher_unwatch_unknown_no_op ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::uv_watcher_unwatch_removes_path ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::uv_watcher_watch_inserts_path ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_args_returns_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_args_variant_returns_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_color_accepts_simple_name ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_color_rejects_empty ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_color_rejects_whitespace ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_config_known_ext_with_theme_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_config_missing_theme_emits_problem ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_exinclude_function_dotted_name_splits ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_exinclude_function_undotted_defaults_module ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_ext_falls_back_to_top_themes ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_ext_unknown_ext_returns_problem ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_ext_known_ext_with_themes_is_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_config_unknown_ext_warns ... ok
[INFO] [stdout] test ported::lib::watcher::uv::tests_state::uv_watcher_watch_idempotent ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_full_segment_data_empty_segment_returns_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_group_unknown_group_has_problem ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_group_known_group_is_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_full_segment_data_with_name_returns_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_highlight_group_unknown_group_has_problem ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_highlight_groups_all_known_is_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_highlight_groups_any_missing_has_problem ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_hl_group_name_accepts_colon ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_hl_group_name_accepts_underscore_prefix ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_hl_group_name_rejects_empty ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_hl_group_name_rejects_leading_digit ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_key_compatibility_function_missing_function_key ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_key_compatibility_function_segment_with_valid_keys ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_key_compatibility_string_segment_requires_highlight ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_key_compatibility_string_segment_with_name_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_key_compatibility_unknown_key_emits_problem ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_key_compatibility_unknown_segment_type_fails ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_log_file_level_at_or_above_top_is_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_log_file_level_invalid_level_is_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_log_file_level_below_top_warns ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_logging_handler_known_handler_is_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_highlight_group_known_group_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_hl_group_name_accepts_identifier ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_logging_handler_unknown_handler_fails ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_segment_function_returns_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_matcher_func_dotted_name_splits ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_segment_module_importable_is_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_segment_module_unimportable_has_problem ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_top_theme_known_theme_is_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_matcher_func_undotted_defaults_module ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_top_theme_unknown_theme_has_problem ... ok
[INFO] [stdout] test ported::lint::checks::tests::generic_keys_has_13_entries ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_translated_group_name_delegates_to_check_group ... ok
[INFO] [stdout] test ported::lint::checks::tests::get_all_possible_functions_dotted_name_yields_module_function_pair ... ok
[INFO] [stdout] test ported::lint::checks::tests::get_all_possible_functions_undotted_unknown_returns_empty ... ok
[INFO] [stdout] test ported::lint::checks::tests::get_all_possible_functions_undotted_walks_common_names ... ok
[INFO] [stdout] test ported::lint::checks::tests::get_function_strings_dotted_name_splits ... ok
[INFO] [stdout] test ported::lint::checks::tests::get_function_strings_undotted_uses_default_module ... ok
[INFO] [stdout] test ported::lib::memoize::tests::memoize_recomputes_after_timeout ... ok
[INFO] [stdout] test ported::lint::checks::tests::get_one_segment_function_returns_pair_when_set ... ok
[INFO] [stdout] test ported::lint::checks::tests::get_one_segment_function_returns_none_when_unset ... ok
[INFO] [stdout] test ported::lint::checks::tests::highlight_keys_contains_highlight_groups_and_name ... ok
[INFO] [stdout] test ported::lint::checks::tests::hl_exists_all_present_returns_empty ... ok
[INFO] [stdout] test ported::lint::checks::tests::hl_exists_returns_list_of_missing_colorschemes ... ok
[INFO] [stdout] test ported::lint::checks::tests::hl_exists_empty_input_returns_empty ... ok
[INFO] [stdout] test ported::lint::checks::tests::hl_group_in_colorscheme_force_gradient_with_gradient_passes ... ok
[INFO] [stdout] test ported::lint::checks::tests::hl_group_in_colorscheme_force_gradient_without_gradient_fails ... ok
[INFO] [stdout] test ported::lint::checks::tests::hl_group_in_colorscheme_missing_group_returns_false ... ok
[INFO] [stdout] test ported::lint::checks::tests::hl_group_in_colorscheme_no_gradients_with_gradient_color_fails ... ok
[INFO] [stdout] test ported::lint::checks::tests::hl_group_in_colorscheme_no_gradients_with_real_color_passes ... ok
[INFO] [stdout] test ported::lint::checks::tests::lint_result_failed_is_proceed_false_echo_true_problem ... ok
[INFO] [stdout] test ported::lint::checks::tests::lint_result_warned_proceeds_but_echoes_problem ... ok
[INFO] [stdout] test ported::lint::checks::tests::lint_result_ok_is_proceed_true_no_echo_no_problem ... ok
[INFO] [stdout] test ported::lint::checks::tests::check_segment_data_key_returns_ok ... ok
[INFO] [stdout] test ported::lint::checks::tests::list_sep_matches_upstream ... ok
[INFO] [stdout] test ported::lint::checks::tests::register_common_name_dedupes_duplicates ... ok
[INFO] [stdout] test ported::lint::checks::tests::hl_group_in_colorscheme_allow_gradients_yes_returns_true_if_present ... ok
[INFO] [stdout] test ported::lint::checks::tests::get_one_segment_function_undotted_defaults_module ... ok
[INFO] [stdout] test ported::lint::checks::tests::required_keys_function_requires_function ... ok
[INFO] [stdout] test ported::lint::checks::tests::register_common_name_supports_multiple_aliases ... ok
[INFO] [stdout] test ported::lint::checks::tests::required_keys_segment_list_requires_function_and_segments ... ok
[INFO] [stdout] test ported::lint::checks::tests::register_common_name_inserts_into_registry ... ok
[INFO] [stdout] test ported::lint::checks::tests::required_keys_string_has_no_required ... ok
[INFO] [stdout] test ported::lint::checks::tests::type_keys_function_includes_args ... ok
[INFO] [stdout] test ported::lint::context::tests::context_enter_key_pulls_value_from_obj ... ok
[INFO] [stdout] test ported::lint::context::tests::context_starts_empty ... ok
[INFO] [stdout] test ported::lint::context::tests::jstr_joins_with_separator ... ok
[INFO] [stdout] test ported::lint::context::tests::key_sep_is_slash ... ok
[INFO] [stdout] test ported::lint::context::tests::list_themes_main_returns_ext_themes ... ok
[INFO] [stdout] test ported::lint::context::tests::list_themes_top_returns_every_theme ... ok
[INFO] [stdout] test ported::lint::imp::tests::import_function_does_not_warn_for_other_i3wm_segments ... ok
[INFO] [stdout] test ported::lint::imp::tests::import_function_emits_deprecation_for_i3wm_workspaces ... ok
[INFO] [stdout] test ported::lint::checks::tests::type_keys_segment_list_includes_segments ... ok
[INFO] [stdout] test ported::lint::imp::tests::import_function_returns_qualified_for_valid_input ... ok
[INFO] [stdout] test ported::lint::imp::tests::import_paths_field_passed_through_data ... ok
[INFO] [stdout] test ported::lint::checks::tests::type_keys_string_includes_contents ... ok
[INFO] [stdout] test ported::lint::context::tests::context_enter_appends_one_entry ... ok
[INFO] [stdout] test ported::lib::watcher::stat::tests::check_returns_true_after_mtime_change ... ok
[INFO] [stdout] test ported::lint::imp::tests::import_segment_pins_function_type ... ok
[INFO] [stdout] test ported::lint::imp::tests::marked_name_carries_mark ... ok
[INFO] [stdout] test ported::lint::imp::tests::with_path_enter_snapshots_old_path ... ok
[INFO] [stdout] test ported::lint::imp::tests::with_path_enter_prepends_import_paths ... ok
[INFO] [stdout] test ported::lint::imp::tests::with_path_exit_returns_old_path ... ok
[INFO] [stdout] test ported::lint::context::tests::context_enter_does_not_mutate_parent ... ok
[INFO] [stdout] test ported::lint::imp::tests::with_path_empty_import_paths_passthrough ... ok
[INFO] [stdout] test ported::lint::inspect::tests::formatconfigargspec_all_args_default ... ok
[INFO] [stdout] test ported::lint::inspect::tests::formatconfigargspec_args_without_defaults ... ok
[INFO] [stdout] test ported::lint::inspect::tests::formatconfigargspec_one_arg_one_default ... ok
[INFO] [stdout] test ported::lint::inspect::tests::getconfigargspec_returns_empty_until_registry_lands ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::any_event_kind_dispatches_correctly ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::check_node_returns_false_at_stream_end ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::check_node_drops_stream_start_and_returns_true_if_doc_remaining ... ok
[INFO] [stdout] test ported::lint::inspect::tests::formatconfigargspec_args_with_trailing_defaults ... ok
[INFO] [stdout] test ported::lint::inspect::tests::formatconfigargspec_empty_args ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::compose_document_returns_scalar_node ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::composed_node_start_mark_returns_underlying_mark ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::compose_node_dispatches_scalar ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::compose_node_dispatches_sequence ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::compose_node_dispatches_mapping ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::composer_error_implements_error_traits ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::get_single_node_errors_on_two_documents ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::compose_scalar_node_resolves_tag_when_none ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::get_single_node_returns_none_on_empty_stream ... ok
[INFO] [stdout] test ported::lint::markedjson::composer::tests::get_single_node_returns_single_document ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::base_constructor_new_initialises_empty_state ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::check_data_returns_input ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_document_resets_constructed_objects_after_construction ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::add_constructor_none_maps_to_catchall_key ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_document_resets_deep_construct_after_construction ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::add_constructor_registers_tag ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_mapping_returns_marked_dict ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_object_catchall_fires_for_unknown_tag ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_sequence_returns_vec_of_marked_values ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_object_unknown_tag_returns_error ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_scalar_returns_marked_unicode ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_object_dispatches_int_constructor ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_undefined_always_errors ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_sequence_rejects_scalar_node ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_scalar_rejects_sequence_node ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_yaml_bool_parses_true_string ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_yaml_int_negative ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_yaml_map_builds_marked_dict ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_yaml_bool_parses_false_string ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_yaml_null_returns_null ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_yaml_float_parses_decimal ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_yaml_int_positive ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_yaml_int_zero ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_yaml_seq_builds_marked_list ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::constructor_error_implements_error_traits ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::get_data_with_node_returns_constructed_value ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::constructor_new_registers_all_eight_tags ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::f_closure_wraps_construct_result_with_mark ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::get_data_returns_none_when_no_node ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::get_single_data_returns_none_when_no_node ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::marked_wraps_value_with_mark ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::construct_yaml_str_returns_string ... ok
[INFO] [stdout] test ported::lint::markedjson::constructor::tests::get_single_data_with_node_returns_constructed_value ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::delayed_echo_err_call_appends_to_last_variant ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::delayed_echo_err_call_defaults_kwargs_indent_to_zero ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::delayed_echo_err_call_shifts_indent_by_self_indent ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::delayed_echo_err_echo_all_empty_variants_returns_empty ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::delayed_echo_err_new_empty_message_shift_zero ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::delayed_echo_err_echo_all_skips_empty_first_variant_when_subsequent_has_content ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::delayed_echo_err_new_message_shifts_by_4 ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::delayed_echo_err_is_truthy_when_errs_non_empty ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::delayed_echo_err_echo_all_emits_message_first ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::delayed_echo_err_echo_all_emits_separator_between_variants ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::delayed_echo_err_new_separator_shifts_by_4 ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::delayed_echo_err_next_variant_appends_empty_bucket ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::echo_err_call_defaults_indent_to_self_indent ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::echo_err_call_preserves_explicit_indent ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::echoerr_writes_newline_problem_newline ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::echoerr_holds_indent ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::marked_error_format_includes_problem ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::format_error_omits_context_mark_when_same_as_problem_mark ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::format_error_combines_context_and_problem ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::format_error_indent_prefixes_text ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::repl_formats_codepoint_as_hex ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::rich_mark_advance_string_offsets_column_and_pointer ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::rich_mark_copy_is_equal ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::marked_error_implements_error_traits ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::rich_mark_eq_compares_name_line_column ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::non_printable_re_allows_tab_newline_cr ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::rich_mark_get_snippet_extracts_line ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::rich_mark_get_snippet_none_when_no_buffer ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::rich_mark_new_has_no_old_or_merged ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::non_printable_re_matches_ctrl_chars ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::rich_mark_set_merged_mark_appends ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::rich_mark_set_old_mark_chains ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::rich_mark_to_string_marked_emits_line_column ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::strtrans_escapes_non_printable ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::strtrans_passes_printable_through ... ok
[INFO] [stdout] test ported::lint::markedjson::error::tests::strtrans_replaces_tab_with_dashes ... ok
[INFO] [stdout] test ported::lint::markedjson::events::tests::sequence_mapping_inherit_collection_shape ... ok
[INFO] [stdout] test ported::lint::markedjson::events::tests::collection_start_event_default_tag_is_none ... ok
[INFO] [stdout] test ported::lint::markedjson::loader::tests::dispose_does_not_panic ... ok
[INFO] [stdout] test ported::lint::markedjson::events::tests::document_start_event_carries_version_and_tags ... ok
[INFO] [stdout] test ported::lint::markedjson::events::tests::event_carries_marks ... ok
[INFO] [stdout] test ported::lint::markedjson::events::tests::scalar_event_default_tag_is_none ... ok
[INFO] [stdout] test ported::lint::markedjson::events::tests::stream_start_event_carries_encoding ... ok
[INFO] [stdout] test ported::lint::markedjson::loader::tests::echoerr_sets_haserrors ... ok
[INFO] [stdout] test ported::lint::markedjson::loader::tests::get_single_data_parses_valid_json ... ok
[INFO] [stdout] test ported::lint::markedjson::loader::tests::new_loader_has_no_errors ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::gen_getnewargs_returns_value_mark_pair ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::gen_init_passes_value_through ... ok
[INFO] [stdout] test ported::lint::markedjson::loader::tests::get_single_data_flips_haserrors_on_bad_json ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::gen_marked_value_dispatches_on_value_type ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::gen_new_returns_value_mark_pair ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::marked_dict_carries_keydict_for_every_key ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::marked_dict_copy_clones_value_and_keydict ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::marked_float_carries_f64 ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::marked_dict_update_adds_to_keydict ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::marked_int_carries_i64 ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::marked_unicode_carries_value_and_mark ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::marked_unicode_partition_no_sep_returns_first_in_pre ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::marked_unicode_partition_returns_three_parts ... ok
[INFO] [stdout] test ported::lint::markedjson::markedvalue::tests::marked_unicode_rpartition_returns_three_parts ... ok
[INFO] [stdout] test ported::lint::markedjson::nodes::tests::collection_node_carries_flow_style ... ok
[INFO] [stdout] test ported::lint::markedjson::nodes::tests::mapping_node_id_matches_upstream ... ok
[INFO] [stdout] test ported::lint::markedjson::nodes::tests::node_carries_tag_value_and_marks ... ok
[INFO] [stdout] test ported::lint::markedjson::nodes::tests::node_display_matches_upstream_repr_shape ... ok
[INFO] [stdout] test ported::lint::markedjson::nodes::tests::scalar_node_carries_style ... ok
[INFO] [stdout] test ported::lint::markedjson::nodes::tests::scalar_node_id_matches_upstream ... ok
[INFO] [stdout] test ported::lint::markedjson::nodes::tests::sequence_node_id_matches_upstream ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::any_token_id_strings_match_upstream ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::any_token_kind_dispatches_correctly ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::check_event_matches_stream_start ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::check_event_rejects_wrong_kind ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::check_event_with_no_choices_returns_true ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::dispose_clears_state_machine ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::get_event_drains_stream_start_then_stream_end ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::parse_node_flow_map_emits_mapping_start ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::parse_node_flow_seq_emits_sequence_start ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::parse_node_scalar_emits_scalar_event ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::parse_simple_scalar_stream_end_to_end ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::parser_error_implements_error_traits ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::parser_starts_at_stream_start_state ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::token_marks_round_trip ... ok
[INFO] [stdout] test ported::lint::markedjson::parser::tests::typed_events_constructable_from_events_module ... ok
[INFO] [stdout] test ported::lint::markedjson::reader::tests::check_printable_accepts_normal_text ... ok
[INFO] [stdout] test ported::lint::markedjson::reader::tests::check_printable_accepts_tab_newline_cr ... ok
[INFO] [stdout] test ported::lint::markedjson::reader::tests::peek_past_eof_returns_null ... ok
[INFO] [stdout] test ported::lint::markedjson::reader::tests::check_printable_rejects_control_chars ... ok
[INFO] [stdout] test ported::lint::markedjson::reader::tests::forward_across_newline_resets_column_increments_line ... ok
[INFO] [stdout] test ported::lint::markedjson::reader::tests::get_mark_returns_current_position ... ok
[INFO] [stdout] test ported::lint::markedjson::reader::tests::peek_returns_char_at_offset ... ok
[INFO] [stdout] test ported::lint::markedjson::reader::tests::forward_advances_pointer_and_column ... ok
[INFO] [stdout] test ported::lint::markedjson::reader::tests::reader_error_implements_error_traits ... ok
[INFO] [stdout] test ported::lint::markedjson::reader::tests::prefix_returns_substring ... ok
[INFO] [stdout] test ported::lint::markedjson::reader::tests::new_reader_buffer_has_null_terminator ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::default_tags_match_upstream ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::add_implicit_resolver_appends_to_first_chars ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::int_regex_rejects_leading_zero_multi_digit ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::float_regex_rejects_plain_int ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::resolve_float ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::resolve_mapping_returns_map_tag ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::resolve_bool_true ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::resolve_bool_false ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::resolve_bool_with_lowercase_first_char_t ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::resolve_int ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::resolver_error_implements_error_traits ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::resolve_unknown_scalar_falls_back_to_string ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::check_plain_accepts_alphanumeric ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::check_plain_excludes_structural_chars ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::check_token_matches_specific_name ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::check_token_no_choices_returns_true_when_token_available ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::check_token_returns_false_when_no_tokens ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::dispatch_fetch_for_alpha_returns_plain ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::dispatch_fetch_for_brace_returns_flow_mapping_start ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::dispatch_fetch_for_bracket_returns_flow_sequence_start ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::dispatch_fetch_for_close_brace_returns_flow_mapping_end ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::dispatch_fetch_for_close_bracket_returns_flow_sequence_end ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::dispatch_fetch_for_colon_in_flow_returns_value ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::dispatch_fetch_for_colon_outside_flow_returns_plain ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::dispatch_fetch_for_comma_returns_flow_entry ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::resolver_singleton_caches_instance ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::dispatch_fetch_for_null_returns_stream_end ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::dispatch_fetch_for_quote_returns_double ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_double_disallows_simple_key_after ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_flow_collection_end_decrements_level ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_flow_collection_end_does_not_underflow ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_flow_collection_start_increments_level ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_flow_entry_appends_entry_token ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_flow_mapping_start_delegates_to_collection_start ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_flow_mapping_end_delegates_to_collection_end ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_flow_sequence_end_delegates_to_collection_end ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_flow_sequence_start_delegates_to_collection_start ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_more_tokens_dispatches_via_dispatch_fetch_for ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_more_tokens_empty_buffer_returns_stream_end ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_more_tokens_whitespace_only_returns_stream_end ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_plain_disallows_simple_key_after ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_value_appends_value_token ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::get_token_pops_and_increments_taken ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::hexdigits_set_contains_all_hex_chars ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::fetch_stream_end_sets_done_and_appends_token ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::hexdigits_set_has_22_entries ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::need_more_tokens_false_when_done ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::need_more_tokens_true_when_queue_empty_and_not_done ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::next_possible_simple_key_none_when_empty ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::next_possible_simple_key_returns_min_token_number ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::resolve_null ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::remove_possible_simple_key_clears_current_level ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::save_possible_simple_key_records_when_allowed ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scan_flow_scalar_non_spaces_decodes_basic_escapes ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scan_flow_scalar_non_spaces_decodes_unicode_escape ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scan_flow_scalar_non_spaces_returns_run_until_quote ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::add_implicit_resolver_with_none_first_uses_null_bucket ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::save_possible_simple_key_skipped_when_disallowed ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::resolve_sequence_returns_seq_tag ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::peek_token_returns_first_without_consuming ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scan_flow_scalar_returns_none_when_no_closing_quote ... ok
[INFO] [stdout] test ported::lint::markedjson::resolver::tests::resolve_non_implicit_scalar_returns_str ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scan_flow_scalar_spaces_empty_run_yields_empty_string ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scan_plain_empty_input_returns_empty ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scan_plain_runs_to_end_when_all_plain ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scan_plain_stops_at_structural_chars ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scanner_error_implements_error_traits ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scanner_new_emits_stream_start_token ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::simple_key_stores_state ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::stale_possible_simple_keys_filters_keys_below_current_line ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scan_flow_scalar_spaces_collapses_run ... ok
[INFO] [stdout] test ported::lint::markedjson::tests::load_reports_error_on_bad_json ... ok
[INFO] [stdout] test ported::lint::markedjson::tokens::tests::flow_token_ids_match_upstream ... ok
[INFO] [stdout] test ported::lint::markedjson::tokens::tests::key_value_flow_entry_ids_match_upstream ... ok
[INFO] [stdout] test ported::lint::markedjson::tokens::tests::scalar_token_carries_value_and_style ... ok
[INFO] [stdout] test ported::lint::markedjson::tests::load_returns_value_and_no_error ... ok
[INFO] [stdout] test ported::lint::markedjson::tokens::tests::stream_end_id_matches_upstream ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scan_to_next_token_empty_returns_zero ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scan_to_next_token_skips_leading_whitespace ... ok
[INFO] [stdout] test ported::lint::markedjson::tokens::tests::stream_start_id_matches_upstream ... ok
[INFO] [stdout] test ported::lint::selfcheck::tests::havemarks_empty_input_ok ... ok
[INFO] [stdout] test ported::lint::markedjson::tokens::tests::stream_start_token_carries_encoding ... ok
[INFO] [stdout] test ported::lint::selfcheck::tests::havemarks_walks_nested_structure ... ok
[INFO] [stdout] test ported::lint::spec::tests::_update_copies_keys_map ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_either_all_fail_returns_failed ... ok
[INFO] [stdout] test ported::lint::spec::tests::_update_copies_all_constraint_fields ... ok
[INFO] [stdout] test ported::lint::spec::tests::_update_deep_copies_nested_specs ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_func_propagates_hadproblem ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_func_returns_proceed_hadproblem_pair ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_either_short_circuits_on_first_success ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_list_aggregates_results ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_list_walk_early_exits_on_no_proceed ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_list_walk_empty_returns_ok ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_list_walk_records_hadproblem_but_continues ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_list_walk_walks_all_items ... ok
[INFO] [stdout] test ported::lint::markedjson::tokens::tests::token_carries_marks ... ok
[INFO] [stdout] test ported::lib::vcs::tests::generate_directories_walks_up_from_cwd ... FAILED
[INFO] [stdout] test ported::lint::spec::tests::check_printable_accepts_normal_text ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_printable_rejects_control_char ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_result_failed_is_proceed_false_with_problem ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_tuple_early_exits_on_no_proceed ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_type_array_matches_list ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_tuple_walks_each_item_with_corresponding_spec ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_type_bool_matches_bool ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_type_mismatch_returns_failed ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_tuple_records_hadproblem_but_continues_when_proceed_true ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_type_number_matches_float ... ok
[INFO] [stdout] test ported::lint::markedjson::scanner::tests::scan_flow_scalar_round_trips_simple_string ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_type_object_matches_dict ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_result_ok_is_proceed_true_no_problem ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_type_string_matches_unicode ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_func_stops_on_no_proceed ... ok
[INFO] [stdout] test ported::lint::spec::tests::either_pushes_all_variants_to_specs ... ok
[INFO] [stdout] test ported::lint::spec::tests::cmp_enum_variants_match_python_operators ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_list_any_failure_marks_had_problem ... ok
[INFO] [stdout] test ported::lint::spec::tests::either_empty_variants_leaves_specs_empty ... ok
[INFO] [stdout] test ported::lint::spec::tests::func_registers_name_via_error_msg_slot ... ok
[INFO] [stdout] test ported::lint::spec::tests::get_missing_key_returns_none ... ok
[INFO] [stdout] test ported::lint::spec::tests::check_type_null_matches_null ... ok
[INFO] [stdout] test ported::lint::spec::tests::get_retrieves_registered_key_spec ... ok
[INFO] [stdout] test ported::lint::spec::tests::list_pins_type_to_list_and_pushes_item_spec ... ok
[INFO] [stdout] test ported::lint::spec::tests::match_checks_stops_early_on_no_proceed ... ok
[INFO] [stdout] test ported::lint::spec::tests::match_checks_records_hadproblem_but_continues ... ok
[INFO] [stdout] test ported::lint::spec::tests::match_checks_empty_returns_ok ... ok
[INFO] [stdout] test ported::lint::spec::tests::match_dispatch_early_exits_on_key_no_proceed ... ok
[INFO] [stdout] test ported::lint::spec::tests::match_dispatch_missing_optional_key_does_not_set_hadproblem ... ok
[INFO] [stdout] test ported::lint::spec::tests::match_checks_all_pass_returns_true ... ok
[INFO] [stdout] test ported::lint::spec::tests::match_dispatch_missing_required_key_sets_hadproblem ... ok
[INFO] [stdout] test ported::lint::spec::tests::match_dispatch_no_keys_returns_top_check_result ... ok
[INFO] [stdout] test ported::lint::spec::tests::match_dispatch_propagates_key_check_hadproblem ... ok
[INFO] [stdout] test ported::lint::spec::tests::match_dispatch_non_map_value_short_circuits_after_top_check ... ok
[INFO] [stdout] test ported::lint::spec::tests::match_dispatch_top_check_failure_returns_early ... ok
[INFO] [stdout] test ported::lint::spec::tests::match_dispatch_walks_registered_keys ... ok
[INFO] [stdout] test ported::lint::spec::tests::set_inserts_spec_under_key ... ok
[INFO] [stdout] test ported::lint::spec::tests::set_overwrites_existing_key ... ok
[INFO] [stdout] test ported::lint::spec::tests::non_printable_re_matches_control_chars ... ok
[INFO] [stdout] test ported::lint::spec::tests::non_printable_re_allows_printable ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_copy_clones_all_fields ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_context_message_stores_msg ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_ident_sets_flag_and_regex ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_new_starts_empty ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_len_stores_constraint ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_oneof_stores_values ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_printable_sets_flag ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_optional_sets_isoptional ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_required_clears_isoptional ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_unsigned_sets_flag ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_update_registers_key_spec ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_error_stores_msg ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_cmp_stores_constraint ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_type_check_registers_allowed_types ... ok
[INFO] [stdout] test ported::lint::spec::tests::tuple_empty_specs_yields_eq_zero_length ... ok
[INFO] [stdout] test ported::lint::spec::tests::spec_regex_stores_pattern ... ok
[INFO] [stdout] test ported::lint::spec::tests::tuple_pins_eq_length_when_no_optionals ... ok
[INFO] [stdout] test ported::lint::spec::tests::tuple_sets_type_to_list ... ok
[INFO] [stdout] test ported::lint::spec::tests::tuple_uses_le_when_trailing_optionals_present ... ok
[INFO] [stdout] test ported::lint::spec::tests::unknown_msg_returns_self_for_chaining ... ok
[INFO] [stdout] test ported::lint::spec::tests::unknown_spec_pushes_key_and_value_specs ... ok
[INFO] [stdout] test ported::lint::tests::args_spec_has_pl_and_segment_info_optional ... ok
[INFO] [stdout] test ported::lint::tests::check_against_clean_fixture_returns_false ... ok
[INFO] [stdout] test ported::lint::tests::check_rejects_double_underscore_filenames ... ok
[INFO] [stdout] test ported::lint::tests::check_rejects_colorscheme_missing_groups ... ok
[INFO] [stdout] test ported::lint::tests::check_rejects_parse_error ... ok
[INFO] [stdout] test ported::lint::tests::colors_spec_has_colors_and_gradients_keys ... ok
[INFO] [stdout] test ported::lint::tests::common_theme_spec_has_cursor_keys ... ok
[INFO] [stdout] test ported::lint::tests::dict2_shallow_copies_inner_dicts ... ok
[INFO] [stdout] test ported::lint::tests::common_spec_has_log_and_watcher_keys ... ok
[INFO] [stdout] test ported::lint::tests::colorscheme_spec_registers_required_groups_key ... ok
[INFO] [stdout] test ported::lint::tests::divider_spec_has_printable_and_len_constraint ... ok
[INFO] [stdout] test ported::lint::tests::dict2_passes_non_dict_values_through ... ok
[INFO] [stdout] test ported::lint::tests::ext_spec_carries_required_keys ... ok
[INFO] [stdout] test ported::lint::tests::find_all_ext_config_files_skips_nonexistent_root_silently ... ok
[INFO] [stdout] test ported::lint::tests::check_rejects_theme_segments_left_not_array ... ok
[INFO] [stdout] test ported::lint::tests::ext_block_spec_has_known_extensions ... ok
[INFO] [stdout] test ported::lint::tests::find_all_ext_config_files_yields_error_for_non_directory ... ok
[INFO] [stdout] test ported::lint::tests::find_all_ext_config_files_yields_ext_scoped_entry ... ok
[INFO] [stdout] test ported::lint::tests::find_all_ext_config_files_yields_error_for_non_json_file_in_subdir ... ok
[INFO] [stdout] test ported::lint::tests::find_all_ext_config_files_walks_multiple_search_paths ... ok
[INFO] [stdout] test ported::lint::tests::gen_components_spec_lists_oneof_components ... ok
[INFO] [stdout] test ported::lint::tests::generate_json_config_loader_loads_valid_config_and_flag_stays_false ... ok
[INFO] [stdout] test ported::lint::tests::find_all_ext_config_files_yields_top_level_entry ... ok
[INFO] [stdout] test ported::lint::tests::generate_json_config_loader_missing_file_does_not_set_flag ... ok
[INFO] [stdout] test ported::lint::tests::group_spec_constructs_without_panic ... ok
[INFO] [stdout] test ported::lint::tests::groups_spec_attrs_spec_color_spec_constructible ... ok
[INFO] [stdout] test ported::lint::tests::load_json_file_invalid_json_sets_hadproblem ... ok
[INFO] [stdout] test ported::lint::tests::load_json_file_missing_returns_error ... ok
[INFO] [stdout] test ported::lint::tests::load_json_file_parses_valid_config ... ok
[INFO] [stdout] test ported::lint::tests::load_json_result_struct_fields_accessible ... ok
[INFO] [stdout] test ported::lint::tests::log_file_spec_is_optional_with_either ... ok
[INFO] [stdout] test ported::lint::tests::main_spec_has_common_and_ext_blocks ... ok
[INFO] [stdout] test ported::lint::tests::open_file_missing_returns_error ... ok
[INFO] [stdout] test ported::lint::tests::register_common_names_inserts_player_alias ... ok
[INFO] [stdout] test ported::lint::tests::open_file_reads_bytes ... ok
[INFO] [stdout] test ported::lint::tests::segdict_spec_has_left_and_right ... ok
[INFO] [stdout] test ported::lint::tests::segment_spec_base_has_all_segment_keys ... ok
[INFO] [stdout] test ported::lint::tests::segment_spec_has_segments_and_type_keys ... ok
[INFO] [stdout] test ported::lint::tests::shell_mode_spec_has_regex ... ok
[INFO] [stdout] test ported::lint::tests::spaces_spec_has_unsigned_le_2 ... ok
[INFO] [stdout] test ported::lint::tests::strip_json_suffix_removes_suffix ... ok
[INFO] [stdout] test ported::lint::tests::term_color_spec_is_unsigned_le_255 ... ok
[INFO] [stdout] test ported::lint::tests::subsegment_spec_excludes_segment_list_from_type ... ok
[INFO] [stdout] test ported::lint::tests::theme_spec_has_segments_key ... ok
[INFO] [stdout] test ported::lint::tests::top_colorscheme_spec_has_mt_optional ... ok
[INFO] [stdout] test ported::lint::tests::top_theme_structure_spec_includes_non_breaking_spaces ... ok
[INFO] [stdout] test ported::lint::tests::true_color_spec_has_hex_regex ... ok
[INFO] [stdout] test ported::lint::tests::updated_with_config_no_path_no_op ... ok
[INFO] [stdout] test ported::lint::tests::vim_mode_spec_contains_known_modes ... ok
[INFO] [stderr] Can't open display 
[INFO] [stdout] test ported::lint::tests::updated_with_config_merges_results_into_dict ... ok
[INFO] [stdout] test ported::lint::tests::strip_json_suffix_passes_through_when_absent ... ok
[INFO] [stdout] test ported::listers::i3wm::tests::workspace_lister_for_filters_by_output ... ok
[INFO] [stdout] test ported::listers::i3wm::tests::workspace_lister_for_only_show_focused ... ok
[INFO] [stdout] test ported::listers::i3wm::tests::workspace_lister_for_only_show_visible_or_urgent ... ok
[INFO] [stdout] test ported::listers::i3wm::tests::workspace_lister_for_returns_all_when_no_filters ... ok
[INFO] [stdout] test ported::listers::i3wm::tests::output_lister_returns_empty_when_xrandr_unavailable ... ok
[INFO] [stdout] test ported::lint::tests::function_name_re_rejects_special_chars ... ok
[INFO] [stdout] test ported::listers::i3wm::tests::workspace_lister_for_second_tuple_has_draw_inner_divider_none ... ok
[INFO] [stdout] test ported::lint::tests::function_name_re_matches_simple_name ... ok
[INFO] [stdout] test ported::listers::i3wm::tests::workspace_lister_for_workspace_payload_has_all_fields ... ok
[INFO] [stdout] test ported::listers::pdb::tests::frame_lister_drops_initial_stack_length ... ok
[INFO] [stdout] test ported::lint::tests::function_name_re_matches_dotted_path ... ok
[INFO] [stdout] test ported::listers::pdb::tests::frame_lister_empty_stack_returns_empty ... ok
[INFO] [stdout] test ported::listers::pdb::tests::frame_lister_full_stack_returns_all_frames ... ok
[INFO] [stdout] test ported::listers::pdb::tests::frame_lister_second_tuple_is_empty_dict ... ok
[INFO] [stdout] test ported::listers::vim::tests::add_multiplier_returns_one_when_distance_is_zero ... ok
[INFO] [stdout] test ported::lint::tests::function_name_re_rejects_starting_digit ... ok
[INFO] [stdout] test ported::listers::vim::tests::add_multiplier_sets_priority_multiplier_from_distance ... ok
[INFO] [stdout] test ported::listers::vim::tests::bufferlister_for_current_always_shown_even_if_unlisted ... ok
[INFO] [stdout] test ported::listers::vim::tests::tablister_for_marks_current_with_tab_prefix ... ok
[INFO] [stdout] test ported::listers::vim::tests::add_multiplier_handles_negative_distance_via_abs ... ok
[INFO] [stdout] test ported::listers::vim::tests::tablister_for_priority_multiplier_grows_with_distance ... ok
[INFO] [stdout] test ported::listers::pdb::tests::frame_lister_truncates_to_maxframes_tail ... ok
[INFO] [stdout] test ported::listers::vim::tests::tablister_returns_empty_without_vim ... ok
[INFO] [stdout] test ported::listers::vim::tests::bufferlister_for_prefix_includes_mod_when_buffer_modified ... ok
[INFO] [stdout] test ported::listers::vim::tests::bufferlister_for_filters_unlisted_unless_show_or_current ... ok
[INFO] [stdout] test ported::matchers::vim::plugin::commandt::tests::commandt_rejects_other_buffer ... ok
[INFO] [stdout] test ported::matchers::vim::plugin::commandt::tests::commandt_matches_gotofile_buffer ... ok
[INFO] [stdout] test ported::matchers::vim::plugin::commandt::tests::commandt_matches_filetype ... ok
[INFO] [stdout] test ported::matchers::vim::plugin::gundo::tests::gundo_matches_gundo_buffer ... ok
[INFO] [stdout] test ported::matchers::vim::plugin::gundo::tests::gundo_rejects_other_buffer ... ok
[INFO] [stdout] test ported::matchers::vim::plugin::gundo::tests::gundo_preview_matches_preview_buffer ... ok
[INFO] [stdout] test ported::matchers::vim::plugin::nerdtree::tests::nerdtree_returns_false_for_empty_name ... ok
[INFO] [stdout] test ported::matchers::vim::tests::cmdwin_returns_false_for_empty_name ... ok
[INFO] [stdout] test ported::matchers::vim::tests::cmdwin_matches_command_line_buffer ... ok
[INFO] [stdout] test ported::matchers::vim::tests::help_matches_help_buftype ... ok
[INFO] [stdout] test ported::matchers::vim::tests::quickfix_matches_quickfix_buftype ... ok
[INFO] [stdout] test ported::pdb::tests::do_setup_does_not_panic ... ok
[INFO] [stdout] test ported::pdb::tests::get_config_paths_empty_env_string_returns_empty ... ok
[INFO] [stdout] test ported::matchers::vim::tests::cmdwin_matches_path_prefixed_buffer ... ok
[INFO] [stdout] test ported::pdb::tests::get_config_paths_empty_returns_empty_vec ... ok
[INFO] [stdout] test ported::matchers::vim::tests::cmdwin_rejects_other_buffers ... ok
[INFO] [stdout] test ported::pdb::tests::get_config_paths_filters_empty_entries ... ok
[INFO] [stdout] test ported::pdb::tests::get_config_paths_reads_colon_separated_env ... ok
[INFO] [stdout] test ported::pdb::tests::init_pins_ext_and_renderer_module_to_pdb ... ok
[INFO] [stdout] test ported::pdb::tests::load_main_config_empty_env_leaves_base_untouched ... ok
[INFO] [stdout] test ported::pdb::tests::load_main_config_no_env_leaves_base_untouched ... ok
[INFO] [stdout] test ported::pdb::tests::load_theme_config_ignores_non_matching_name ... ok
[INFO] [stdout] test ported::pdb::tests::load_main_config_overlays_from_env ... ok
[INFO] [stdout] test ported::pdb::tests::load_theme_config_overlays_matching_name ... ok
[INFO] [stdout] test ported::matchers::vim::plugin::nerdtree::tests::nerdtree_matches_path_prefixed_buffer ... ok
[INFO] [stdout] test ported::powerline_class_tests::default_update_interval_is_two ... ok
[INFO] [stdout] test ported::pdb::tests::load_theme_config_no_env_leaves_base_untouched ... ok
[INFO] [stdout] test ported::matchers::vim::plugin::nerdtree::tests::nerdtree_rejects_regular_buffer ... ok
[INFO] [stdout] test ported::matchers::vim::plugin::nerdtree::tests::nerdtree_matches_nerd_tree_buffer ... ok
[INFO] [stdout] test ported::powerline_class_tests::create_logger_instance_builds_powerline_logger_for_ext ... ok
[INFO] [stdout] test ported::powerline_class_tests::gen_module_attr_getter_routes_through_lookup ... ok
[INFO] [stdout] test ported::powerline_class_tests::do_setup_base_is_no_op ... ok
[INFO] [stdout] test ported::powerline_class_tests::generate_change_callback_overwrites_existing_value ... ok
[INFO] [stdout] test ported::powerline_class_tests::generate_change_callback_sets_key_true_on_invocation ... ok
[INFO] [stdout] test ported::powerline_class_tests::generate_config_finder_returns_err_when_missing ... ok
[INFO] [stdout] test ported::powerline_class_tests::get_fallback_logger_returns_powerline_fallback_pair ... ok
[INFO] [stdout] test ported::powerline_class_tests::get_log_keys_filters_dict_to_log_keys_only ... ok
[INFO] [stdout] test ported::powerline_class_tests::get_log_keys_empty_input_returns_empty ... ok
[INFO] [stdout] test ported::powerline_class_tests::get_local_themes_base_returns_none ... ok
[INFO] [stdout] test ported::powerline_class_tests::get_log_keys_no_log_keys_returns_empty ... ok
[INFO] [stdout] test ported::powerline_class_tests::load_colorscheme_config_levels_returns_three_levels ... ok
[INFO] [stdout] test ported::powerline_class_tests::load_config_loads_single_file ... ok
[INFO] [stdout] test ported::powerline_class_tests::load_config_merges_multiple_paths ... ok
[INFO] [stdout] test ported::powerline_class_tests::load_hierarhical_config_errors_when_no_levels_load ... ok
[INFO] [stdout] test ported::powerline_class_tests::generate_config_finder_dispatches_to_find_config_files ... ok
[INFO] [stdout] test ported::powerline_class_tests::load_hierarhical_config_ignore_levels_skipped_in_loaded_count ... ok
[INFO] [stdout] test ported::powerline_class_tests::load_hierarhical_config_ignores_specified_levels ... ok
[INFO] [stdout] test ported::powerline_class_tests::load_hierarhical_config_merges_levels ... ok
[INFO] [stdout] test ported::powerline_class_tests::load_hierarhical_config_instance_delegates_to_module_fn ... ok
[INFO] [stdout] test ported::powerline_class_tests::log_keys_has_four_entries ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_exception_defaults_prefix_to_powerline ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_enter_is_no_op ... ok
[INFO] [stdout] test ported::powerline_class_tests::load_theme_config_levels_appends_ext_name ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_exception_explicit_prefix_used ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_exception_no_pl_returns_fallback_flag ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_exit_sets_shutdown_event ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_get_config_paths_delegates_to_module_fn ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_init_populates_cr_kwargs_for_all_four_keys ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_create_renderer_caches_prev_common_config ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_init_run_once_flag ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_instantiate_renderer_invokes_factory_with_options ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_instantiate_renderer_propagates_factory_none_as_import_error ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_load_colorscheme_config_walks_three_levels ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_load_main_config_dispatches_to_main_kind ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_load_theme_config_appends_ext_name_level ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_purge_configs_returns_function_id_pair ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_init_resolves_default_renderer_module ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_load_colors_config_dispatches_to_colors_kind ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_create_renderer_assembles_renderer_options ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_setup_clears_shutdown_event_and_calls_do_setup ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_shutdown_no_event_set_when_flag_false ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_load_config_instance_dispatches_through_finder_and_load_fn ... ok
[INFO] [stdout] test ported::powerline_class_tests::powerline_shutdown_sets_event ... ok
[INFO] [stdout] test ported::powerline_class_tests::reload_propagates_reconstruct_error ... ok
[INFO] [stdout] test ported::powerline_class_tests::reload_stops_on_clear_modules_error ... ok
[INFO] [stdout] test ported::powerline_class_tests::render_above_lines_failure_yields_single_failed_line ... ok
[INFO] [stdout] test ported::powerline_class_tests::render_failure_returns_failed_message_without_width ... ok
[INFO] [stdout] test ported::powerline_class_tests::render_above_lines_success_returns_yielded_lines ... ok
[INFO] [stdout] test ported::powerline_class_tests::render_success_returns_rendered_string ... ok
[INFO] [stdout] test ported::powerline_class_tests::reload_runs_all_three_phases_in_order ... ok
[INFO] [stdout] test ported::powerline_class_tests::render_failure_with_output_width_returns_message_and_len ... ok
[INFO] [stdout] test ported::powerline_class_tests::reraise_returns_message_unchanged ... ok
[INFO] [stdout] test ported::powerline_class_tests::render_update_renderer_failure_routes_to_failed ... ok
[INFO] [stdout] test ported::powerline_class_tests::resolve_renderer_module_dotted_passes_through ... ok
[INFO] [stdout] test ported::powerline_class_tests::resolve_renderer_module_empty_str_uses_default ... ok
[INFO] [stdout] test ported::powerline_class_tests::resolve_renderer_module_leading_dot_appends_to_ext ... ok
[INFO] [stdout] test ported::powerline_class_tests::resolve_renderer_module_trailing_dot_strips_dot ... ok
[INFO] [stdout] test ported::powerline_class_tests::setup_components_base_is_no_op ... ok
[INFO] [stdout] test ported::powerline_class_tests::update_renderer_failure_with_existing_renderer_returns_false ... ok
[INFO] [stdout] test ported::powerline_class_tests::resolve_renderer_module_undotted_uses_renderers_prefix ... ok
[INFO] [stdout] test ported::powerline_class_tests::update_renderer_failure_without_existing_renderer_returns_err ... ok
[INFO] [stdout] test ported::powerline_class_tests::update_renderer_no_pending_kwargs_returns_false ... ok
[INFO] [stdout] test ported::powerline_class_tests::update_renderer_success_returns_true ... ok
[INFO] [stdout] test ported::renderer::tests::_prepare_segments_calculates_contents_len_from_strwidth_when_no_literal ... ok
[INFO] [stdout] test ported::renderer::tests::_prepare_segments_skips_contents_len_when_not_requested ... ok
[INFO] [stdout] test ported::renderer::tests::compute_divider_widths_emits_both_sides_and_kinds ... ok
[INFO] [stdout] test ported::renderer::tests::construct_returned_value_plain_when_no_flags ... ok
[INFO] [stdout] test ported::renderer::tests::construct_returned_value_tuple_with_both ... ok
[INFO] [stdout] test ported::renderer::tests::construct_returned_value_tuple_with_width_only ... ok
[INFO] [stdout] test ported::renderer::tests::construct_returned_value_tuple_with_raw_only ... ok
[INFO] [stdout] test ported::renderer::tests::_prepare_segments_translates_non_printable_contents ... ok
[INFO] [stdout] test ported::renderer::tests::_prepare_segments_uses_literal_contents_len_when_literal_non_empty ... ok
[INFO] [stdout] test ported::renderer::tests::escape_default_translates_space_to_nbsp ... ok
[INFO] [stdout] test ported::renderer::tests::escape_passes_untranslated_chars_through ... ok
[INFO] [stdout] test ported::renderer::tests::escape_translates_chars_via_character_translations ... ok
[INFO] [stdout] test ported::renderer::tests::get_segment_info_merges_segment_info_over_base ... ok
[INFO] [stdout] test ported::renderer::tests::get_theme_ignores_matcher_info ... ok
[INFO] [stdout] test ported::renderer::tests::get_segment_info_sets_mode_null_when_none ... ok
[INFO] [stdout] test ported::renderer::tests::hl_concatenates_hlstyle_output_and_contents ... ok
[INFO] [stdout] test ported::renderer::tests::hl_none_contents_becomes_empty_string ... ok
[INFO] [stdout] test ported::renderer::tests::escape_use_non_breaking_spaces_false_keeps_spaces ... ok
[INFO] [stdout] test ported::renderer::tests::nbsp_constant_matches_upstream ... ok
[INFO] [stdout] test ported::renderer::tests::get_segment_info_overrides_getcwd_when_pwd_set ... ok
[INFO] [stdout] test ported::renderer::tests::get_theme_returns_self_theme ... ok
[INFO] [stdout] test ported::renderer::tests::np_character_translations_contains_both_control_and_invalid ... ok
[INFO] [stdout] test ported::renderer::tests::np_control_character_translations_has_32_entries ... ok
[INFO] [stdout] test ported::renderer::tests::np_control_character_translations_maps_a_to_caret_a ... ok
[INFO] [stdout] test ported::renderer::tests::np_control_character_translations_maps_newline_to_caret_j ... ok
[INFO] [stdout] test ported::renderer::tests::np_control_character_translations_maps_tab_to_caret_i ... ok
[INFO] [stdout] test ported::renderer::tests::np_control_character_translations_maps_null_to_caret_at ... ok
[INFO] [stdout] test ported::renderer::tests::np_invalid_character_translations_last_entry_is_ff ... ok
[INFO] [stdout] test ported::renderer::tests::np_invalid_character_translations_first_entry_is_80 ... ok
[INFO] [stdout] test ported::renderer::tests::np_invalid_character_translations_has_128_entries ... ok
[INFO] [stdout] test ported::renderer::tests::renderer_init_use_nbsp_default_adds_space_translation ... ok
[INFO] [stdout] test ported::renderer::tests::renderer_init_use_nbsp_false_omits_space_translation ... ok
[INFO] [stdout] test ported::renderer::tests::renderer_init_uses_ambiwidth_for_width_data ... ok
[INFO] [stdout] test ported::renderer::tests::strwidth_counts_chars ... ok
[INFO] [stdout] test ported::renderer::tests::segment_info_includes_environ_and_home ... ok
[INFO] [stdout] test ported::renderer::tests::translate_np_handles_multiple_control_chars ... ok
[INFO] [stdout] test ported::renderer::tests::shutdown_records_theme ... ok
[INFO] [stdout] test ported::renderer::tests::translate_np_replaces_control_chars ... ok
[INFO] [stdout] test ported::renderer::tests::width_data_ambiwidth_overrides_ambiguous ... ok
[INFO] [stdout] test ported::renderers::i3bar::tests::hl_basic_contents_only ... ok
[INFO] [stdout] test ported::renderers::i3bar::tests::hl_with_bg_emits_background_field ... ok
[INFO] [stdout] test ported::renderers::i3bar::tests::hl_with_fg_emits_color_field ... ok
[INFO] [stdout] test ported::renderers::ipython::pre_5::tests::do_render_injects_client_id_ipython ... ok
[INFO] [stdout] test ported::renderer::tests::translate_np_passes_printable_chars_through ... ok
[INFO] [stdout] test ported::renderers::i3bar::tests::hlstyle_returns_empty ... ok
[INFO] [stdout] test ported::renderer::tests::width_data_default_ambiwidth_is_1 ... ok
[INFO] [stdout] test ported::renderers::ipython::pre_5::tests::do_render_overwrites_pre_existing_client_id ... ok
[INFO] [stdout] test ported::renderers::ipython::pre_5::tests::do_render_preserves_existing_segment_info_keys ... ok
[INFO] [stdout] test ported::renderers::ipython::pre_5::tests::ipython_non_prompt_renderer_wraps_base ... ok
[INFO] [stdout] test ported::renderers::ipython::pre_5::tests::ipython_pre50_renderer_constructs ... ok
[INFO] [stdout] test ported::renderers::ipython::pre_5::tests::ipython_prompt_renderer_wraps_base ... ok
[INFO] [stdout] test ported::renderers::ipython::pre_5::tests::renderer_proxy_has_two_inner_renderers ... ok
[INFO] [stdout] test ported::renderers::ipython::pre_5::tests::renderer_proxy_render_above_lines_returns_vec ... ok
[INFO] [stdout] test ported::renderers::ipython::pre_5::tests::renderer_proxy_shutdown_is_callable ... ok
[INFO] [stdout] test ported::renderers::ipython::pre_5::tests::renderer_proxy_render_dispatches_on_is_prompt ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::attrs_to_attr_names_zero_is_empty ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::attrs_to_attr_names_italic ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::build_token_name_capital_pl_prefix ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::attrs_to_attr_names_bold ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::build_token_name_with_all_three ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::attrs_to_attr_names_all_three ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::build_token_name_with_attrs ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::build_token_name_with_bg ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::build_token_name_with_fg_uses_space_padded_hex ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::build_token_name_with_small_fg_pads_with_space ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::fallback_calls_get_attrs_for_token_on_miss ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::fallback_returns_dict_value_when_key_present ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::hl_returns_single_segment_pair ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::ipython_pygments_renderer_get_client_id_returns_self_id ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::hl_uses_token_name_with_color ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::hl_join_flattens_segments ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::ipython_pygments_renderer_get_segment_info_wraps_payload_under_ipython_key ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::ipython_pygments_renderer_each_instance_gets_unique_id ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::hlstyle_returns_empty ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::parse_token_attrs_bg_color ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::parse_token_attrs_bold ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::parse_token_attrs_non_pl_returns_none ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::parse_token_attrs_default_reverse_and_blink_false ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::parse_token_attrs_plain_pl_returns_default ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::parse_token_attrs_fg_color ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::parse_token_attrs_all_three ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::powerline_prompt_style_get_attrs_for_token_non_pl_returns_none ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::powerline_prompt_style_get_attrs_for_token_pl_format ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::powerline_prompt_style_get_token_to_attributes_dict_returns_dict ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::powerline_prompt_style_invalidation_hash_adds_one ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::powerline_prompt_style_invalidation_hash_bumps_by_one ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::powerline_style_dict_lookup_returns_existing ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::powerline_style_dict_lookup_calls_missing_func_on_miss ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::attrs_to_attr_names_zero_is_empty ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::build_style_rule_includes_attrs_fg_bg ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::build_style_rule_no_colors_emits_bare_directives ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::build_token_name_with_fg_bg_attrs ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::build_token_name_with_no_truecolor_emits_empty_hex_segments ... ok
[INFO] [stdout] test ported::renderers::ipython::since_5::tests::reduce_initial_const_is_empty_array ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::get_client_id_is_stable_for_same_instance ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::get_segment_info_wraps_then_dispatches ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::hl_deduplicates_repeated_token_name ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::hl_emits_distinct_token_names_for_different_styles ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::hl_join_empty_returns_empty ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::hl_emits_token_name_and_contents ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::hl_registers_style_rule_on_first_call ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::hlstyle_returns_empty ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::hl_join_flattens_segments ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::attrs_to_attr_names_all_three ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::powerline_prompt_style_invalidation_hash_returns_non_empty ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::powerline_prompt_style_style_rules_returns_used_styles_snapshot ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::ipython_pygments_renderer_init_translates_space ... ok
[INFO] [stdout] test ported::renderers::ipython::tests::get_segment_info_patches_ipython_key ... ok
[INFO] [stdout] test ported::renderers::ipython::since_7::tests::used_styles_starts_empty_after_reset ... ok
[INFO] [stdout] test ported::renderers::ipython::tests::shutdown_records_main_theme_first ... ok
[INFO] [stdout] test ported::renderers::ipython::tests::shutdown_walks_local_themes_with_theme_key ... ok
[INFO] [stdout] test ported::renderers::ipython::tests::get_theme_constructs_lazy_theme_from_config ... ok
[INFO] [stdout] test ported::renderers::ipython::tests::get_theme_returns_existing_local_theme ... ok
[INFO] [stdout] test ported::renderers::ipython::tests::get_theme_caches_constructed_theme ... ok
[INFO] [stdout] test ported::renderers::ipython::tests::get_theme_in_returns_self_theme ... ok
[INFO] [stdout] test ported::renderers::ipython::tests::get_theme_missing_matcher_returns_null ... ok
[INFO] [stdout] test ported::renderers::lemonbar::tests::character_translations_escapes_percent ... ok
[INFO] [stdout] test ported::renderers::lemonbar::tests::hl_plain_wraps_with_reset_marker ... ok
[INFO] [stdout] test ported::renderers::lemonbar::tests::hl_with_all_three_emits_all_markers_in_order ... ok
[INFO] [stdout] test ported::renderers::lemonbar::tests::hl_with_bg_emits_b_marker ... ok
[INFO] [stdout] test ported::renderers::lemonbar::tests::hl_with_underline_emits_u_marker ... ok
[INFO] [stdout] test ported::renderers::lemonbar::tests::hl_with_fg_emits_f_marker ... ok
[INFO] [stdout] test ported::renderers::lemonbar::tests::hlstyle_returns_empty ... ok
[INFO] [stdout] test ported::renderers::lemonbar::tests::render_wraps_left_and_right_with_position_markers ... ok
[INFO] [stdout] test ported::renderers::pango_markup::tests::escape_handles_xml_specials ... ok
[INFO] [stdout] test ported::renderers::pango_markup::tests::hl_no_attrs_returns_empty_span ... ok
[INFO] [stdout] test ported::renderers::pango_markup::tests::hl_with_bg_includes_background_attribute ... ok
[INFO] [stdout] test ported::renderers::pango_markup::tests::hl_with_combined_attrs ... ok
[INFO] [stdout] test ported::renderers::pango_markup::tests::hl_with_italic_attr_includes_font_style ... ok
[INFO] [stdout] test ported::renderers::pango_markup::tests::hlstyle_returns_empty_string ... ok
[INFO] [stdout] test ported::renderers::pango_markup::tests::hl_with_bold_attr_includes_font_weight ... ok
[INFO] [stdout] test ported::renderers::pango_markup::tests::hl_with_underline_attr_includes_underline ... ok
[INFO] [stdout] test ported::renderers::pdb::tests::do_render_passes_ascii_unchanged ... ok
[INFO] [stdout] test ported::renderers::pango_markup::tests::hl_with_fg_includes_foreground_attribute ... ok
[INFO] [stdout] test ported::renderers::pdb::tests::get_segment_info_inserts_curframe_and_pdb_keys ... ok
[INFO] [stdout] test ported::renderers::pdb::tests::do_render_strips_non_ascii_chars ... ok
[INFO] [stdout] test ported::renderers::pdb::tests::new_pdb_renderer_has_no_pdb_set ... ok
[INFO] [stdout] test ported::renderers::pdb::tests::pdb_renderer_inherits_readline_escape_markers ... ok
[INFO] [stdout] test ported::renderers::pdb::tests::render_does_not_overwrite_initial_stack_length_on_second_call ... ok
[INFO] [stdout] test ported::renderers::pdb::tests::set_pdb_stores_handle ... ok
[INFO] [stdout] test ported::renderers::pdb::tests::render_initializes_initial_stack_length ... ok
[INFO] [stdout] test ported::renderers::shell::bash::tests::bash_escape_markers_are_prompt_safe ... ok
[INFO] [stdout] test ported::renderers::shell::bash::tests::bash_translations_escape_shell_specials ... ok
[INFO] [stdout] test ported::renderers::shell::ksh::tests::ksh_render_empty_super_yields_just_prefix ... ok
[INFO] [stdout] test ported::renderers::shell::ksh::tests::ksh_render_prefix_carries_soh_cr ... ok
[INFO] [stdout] test ported::renderers::shell::ksh::tests::ksh_render_prepends_soh_cr_to_super_output ... ok
[INFO] [stdout] test ported::renderers::shell::ksh::tests::ksh_uses_soh_for_both_markers ... ok
[INFO] [stdout] test ported::renderers::shell::tcsh::tests::tcsh_inherits_zsh_escape_markers ... ok
[INFO] [stdout] test ported::renderers::shell::readline::tests::escape_markers_match_upstream_readline ... ok
[INFO] [stdout] test ported::renderers::shell::tcsh::tests::tcsh_translations_include_caret_bang_backslash ... ok
[INFO] [stdout] test ported::renderers::shell::rcsh::tests::rcsh_aliases_readline_renderer ... ok
[INFO] [stdout] test ported::renderers::shell::tests::do_render_resolve_style_auto_defaults_to_xterm ... ok
[INFO] [stdout] test ported::renderers::shell::tests::do_render_resolve_style_auto_dispatches_fbterm ... ok
[INFO] [stdout] test ported::renderers::shell::tests::do_render_resolve_style_pinned_value_passes_through ... ok
[INFO] [stdout] test ported::renderers::shell::tests::hlstyle_attrs_bold_emits_1 ... ok
[INFO] [stdout] test ported::renderers::shell::tests::hlstyle_attrs_underline_emits_4 ... ok
[INFO] [stdout] test ported::renderers::shell::tests::hlstyle_attrs_italic_emits_3 ... ok
[INFO] [stdout] test ported::renderers::shell::tests::hlstyle_bg_emits_48_5_n ... ok
[INFO] [stdout] test ported::renderers::shell::tests::hlstyle_combined_fg_bg_attrs ... ok
[INFO] [stdout] test ported::renderers::shell::tests::hlstyle_escape_true_wraps_with_hl_start_and_end ... ok
[INFO] [stdout] test ported::renderers::shell::tests::hlstyle_fg_cterm_emits_38_5_n ... ok
[INFO] [stdout] test ported::renderers::shell::tests::hlstyle_fg_truecolor_emits_38_2_rgb_when_enabled ... ok
[INFO] [stdout] test ported::renderers::shell::tests::hlstyle_no_args_returns_just_reset_sequence ... ok
[INFO] [stdout] test ported::renderers::shell::tests::hlstyle_tmux_escape_wraps_with_dcs ... ok
[INFO] [stdout] test ported::renderers::shell::tests::hlstyle_truecolor_disabled_on_fbterm ... ok
[INFO] [stdout] test ported::renderers::shell::tests::hlstyle_screen_escape_wraps_with_dcs ... ok
[INFO] [stdout] test ported::renderers::shell::tests::int_to_rgb_extracts_components ... ok
[INFO] [stdout] test ported::renderers::shell::tests::prompt_renderer_get_client_id_returns_none_when_absent ... ok
[INFO] [stdout] test ported::renderers::shell::tests::prompt_renderer_get_client_id_returns_value ... ok
[INFO] [stdout] test ported::renderers::shell::tests::render_matcher_info_pulls_local_theme ... ok
[INFO] [stdout] test ported::renderers::shell::tests::render_matcher_info_returns_none_when_unset ... ok
[INFO] [stdout] test ported::renderers::shell::tests::shell_renderer_default_field_values_match_upstream ... ok
[INFO] [stdout] test ported::renderers::shell::tests::shell_renderer_get_theme_caches_constructed_theme ... ok
[INFO] [stdout] test ported::renderers::shell::tests::shell_renderer_get_theme_constructs_lazy_theme ... ok
[INFO] [stdout] test ported::renderers::shell::tests::shell_renderer_get_theme_empty_string_returns_self_theme ... ok
[INFO] [stdout] test ported::renderers::shell::tests::shell_renderer_get_theme_missing_matcher_returns_null ... ok
[INFO] [stdout] test ported::renderers::shell::tests::shell_renderer_get_theme_no_matcher_returns_self_theme ... ok
[INFO] [stdout] test ported::renderers::shell::tests::shell_renderer_get_theme_returns_existing_local_theme ... ok
[INFO] [stdout] test ported::renderers::shell::tests::term_escape_style_auto_resolves_fbterm ... ok
[INFO] [stdout] test ported::renderers::shell::tests::term_escape_style_auto_resolves_xterm_for_other_term ... ok
[INFO] [stdout] test ported::renderers::shell::tests::term_escape_style_auto_resolves_xterm_when_term_unset ... ok
[INFO] [stdout] test ported::renderers::shell::tests::term_escape_style_pinned_value_passthrough ... ok
[INFO] [stdout] test ported::renderers::shell::zsh::tests::percent_is_doubled_in_translations ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::attrs_to_tmux_attrs_all_three ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::attrs_to_tmux_attrs_bold_only ... ok
[INFO] [stdout] test ported::renderers::shell::zsh::tests::zsh_escape_markers_use_prompt_subst_safe_form ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::attrs_to_tmux_attrs_none_returns_all_no_prefixes ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::attrs_to_tmux_attrs_underline_only ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::attrs_to_tmux_attrs_zero_returns_all_no_prefixes ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::get_segment_info_falls_back_to_tmux_pwd_var ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::attrs_to_tmux_attrs_italic_only ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::character_translations_contains_hash_override ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::get_segment_info_inserts_mode_key ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::get_segment_info_uses_pane_current_path_for_getcwd ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::hlstyle_attrs_emits_bold_italics_underline ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::hlstyle_bg_emits_bg_directive ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::hlstyle_combined_fg_bg_attrs_joins_with_commas ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::hlstyle_fg_truecolor_emits_hex ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::hlstyle_no_args_returns_empty_string ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::hlstyle_truecolor_without_rgb_falls_back_to_cterm ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::hlstyle_fg_cterm_only_emits_colour_n ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::render_clamps_width_to_minimum_10 ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::render_passes_through_width_when_segment_info_empty ... ok
[INFO] [stdout] test ported::renderers::tmux::tests::render_subtracts_width_adjust_from_supplied_width ... ok
[INFO] [stdout] test ported::renderers::vim::tests::add_local_theme_rejects_duplicate_matcher ... ok
[INFO] [stdout] test ported::renderers::vim::tests::attrs_to_hi_attrs_all_three ... ok
[INFO] [stdout] test ported::renderers::vim::tests::attrs_to_hi_attrs_zero_is_empty ... ok
[INFO] [stdout] test ported::renderers::vim::tests::add_local_theme_inserts_into_dict ... ok
[INFO] [stdout] test ported::renderers::vim::tests::attrs_to_hi_attrs_bold ... ok
[INFO] [stdout] test ported::renderers::vim::tests::character_translations_doubles_percent ... ok
[INFO] [stdout] test ported::renderers::vim::tests::get_matched_theme_cached_back_inserts_theme_key ... ok
[INFO] [stdout] test ported::renderers::vim::tests::get_matched_theme_constructs_from_config_when_missing ... ok
[INFO] [stdout] test ported::renderers::vim::tests::get_segment_info_falls_back_to_self_when_none ... ok
[INFO] [stdout] test ported::renderers::vim::tests::get_segment_info_returns_supplied_when_present ... ok
[INFO] [stdout] test ported::renderers::vim::tests::get_matched_theme_returns_existing_theme ... ok
[INFO] [stdout] test ported::renderers::vim::tests::get_segment_info_falls_back_to_self_when_supplied_empty ... ok
[INFO] [stdout] test ported::renderers::vim::tests::get_theme_no_matcher_match_falls_back_to_self_theme ... ok
[INFO] [stdout] test ported::renderers::vim::tests::get_theme_none_matcher_uses_empty_key_local_theme ... ok
[INFO] [stdout] test ported::renderers::vim::tests::get_theme_walks_matchers_and_returns_first_match ... ok
[INFO] [stdout] test ported::renderers::vim::tests::hl_group_vim_command_format ... ok
[INFO] [stdout] test ported::renderers::vim::tests::hlstyle_attrs_only_emits_cterm_attrs ... ok
[INFO] [stdout] test ported::renderers::vim::tests::hlstyle_caches_repeated_group_after_other_style ... ok
[INFO] [stdout] test ported::renderers::vim::tests::hl_group_vim_command_none_attrs_emits_none ... ok
[INFO] [stdout] test ported::renderers::vim::tests::hlstyle_emits_group_reference ... ok
[INFO] [stdout] test ported::renderers::vim::tests::hlstyle_consecutive_identical_returns_empty ... ok
[INFO] [stdout] test ported::renderers::vim::tests::hlstyle_no_args_returns_empty ... ok
[INFO] [stdout] test ported::renderers::vim::tests::mode_translations_contains_ctrl_v_and_ctrl_s ... ok
[INFO] [stdout] test ported::renderers::vim::tests::render_injects_window_id_and_winnr_keys ... ok
[INFO] [stdout] test ported::renderers::vim::tests::render_uses_supplied_mode_for_current_window ... ok
[INFO] [stdout] test ported::renderers::vim::tests::render_returns_nc_mode_when_not_current_window ... ok
[INFO] [stdout] test ported::renderers::vim::tests::reset_highlight_clears_cache ... ok
[INFO] [stdout] test ported::renderers::vim::tests::shutdown_records_main_theme_first ... ok
[INFO] [stdout] test ported::renderers::vim::tests::strwidth_counts_ascii_chars ... ok
[INFO] [stdout] test ported::renderers::vim::tests::shutdown_walks_local_themes_with_theme_key ... ok
[INFO] [stdout] test ported::scripts::powerline_config::tests::main_handles_known_shell_function ... ok
[INFO] [stdout] test ported::scripts::powerline_config::tests::main_returns_1_for_tmux_function_requiring_powerline_orchestrator ... ok
[INFO] [stdout] test ported::scripts::powerline_config::tests::main_returns_2_when_no_args ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::check_existing_returns_listener_for_fresh_address ... ok
[INFO] [stdout] test ported::scripts::powerline_config::tests::main_returns_2_for_unknown_function ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::cleanup_lockfile_unlinks_pidfile ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::check_existing_returns_none_when_address_in_use ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::eintr_retry_call_propagates_non_interrupt_error ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::eintr_retry_call_retries_on_interrupt_then_succeeds ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::do_read_returns_after_double_null_terminator ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::eintr_retry_call_returns_ok ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::eof_sentinel_value ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::get_answer_routes_shell_request_to_render ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::do_write_is_best_effort_on_closed_peer ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::get_answer_routes_wm_request_to_start_wm ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::home_reads_from_env ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::kill_daemon_returns_false_when_no_daemon_running ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::non_daemon_shell_powerline_get_log_handler_no_op ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::parse_args_decodes_wire_format ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::parse_args_falls_back_to_pwd_when_cwd_missing ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::non_interactive_arg_parser_default_constructible ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::parse_client_argv_handles_shell_with_width ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::parse_args_returns_none_on_empty ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::parse_daemon_argv_picks_flags ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::parse_client_argv_handles_tmux_right ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::powerline_key_collapses_identical_requests ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::powerline_key_distinguishes_distinct_ext ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::render_invokes_closure_and_caches_key ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::safe_bytes_returns_utf8_bytes ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::state_new_has_empty_collections ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::start_wm_reports_unknown_wm_name ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::start_wm_is_idempotent ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::use_filesystem_matches_platform ... ok
[INFO] [stdout] test ported::scripts::powerline_lint::tests::main_accepts_debug_flag ... ok
[INFO] [stdout] test ported::scripts::powerline_lint::tests::main_returns_0_when_config_path_supplied_long ... ok
[INFO] [stdout] test ported::scripts::powerline_lint::tests::main_returns_2_when_no_config_path ... ok
[INFO] [stdout] test ported::scripts::powerline_lint::tests::main_returns_0_when_config_path_supplied_short ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::create_release_returns_dotted_version_string ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::create_release_with_run_stages_subset ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::overlay_constants_pin_to_upstream ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::overlay_branch_format_interpolates_version ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::parse_version_plain_dotted ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::parse_version_plus_no_latest_errors ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::parse_version_plus_bumps_major ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::parse_version_plusplus_bumps_minor ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::lockpidfile_writes_pid_and_unlinks_on_drop ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::parse_version_rejects_invalid_int ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::parse_version_plusplusplus_bumps_patch ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::setup_py_develop_filter_passes_through_other_lines ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::setup_py_master_filter_passes_through_other_lines ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::setup_py_master_filter_pins_development_status_line ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::setup_py_master_filter_rewrites_version_line ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::setup_py_develop_filter_rewrites_base_version_line ... ok
[INFO] [stdout] test ported::scripts::powerline_release::tests::stage_names_match_upstream_order ... ok
[INFO] [stdout] hellotest ported::scripts::powerline_render::tests::main_passes_parsed_args_to_render_fn ... ok
[INFO] [stdout] test ported::scripts::powerline_render::tests::main_returns_0_when_ext_supplied_positional ... ok
[INFO] [stdout] test ported::scripts::powerline_render::tests::main_returns_2_when_ext_missing ... ok
[INFO] [stdout] test ported::scripts::powerline_render::tests::main_writes_render_fn_bytes_through_to_caller_path ... ok
[INFO] [stdout] test ported::segment::tests::always_true_is_always_true ... ok
[INFO] [stdout] test ported::segment::tests::gen_display_condition_exclude_only_negates ... ok
[INFO] [stdout] test ported::segment::tests::gen_display_condition_include_only_uses_include ... ok
[INFO] [stdout] test ported::segment::tests::attr_func_is_none_helper ... ok
[INFO] [stdout] test ported::segment::tests::gen_display_condition_no_conditions_always_displays ... ok
[INFO] [stdout] test ported::segment::tests::gen_display_condition_both_uses_and_not ... ok
[INFO] [stdout] test ported::segment::tests::get_attr_func_is_space_func_returns_expand_closure ... ok
[INFO] [stdout] test ported::segment::tests::get_attr_func_not_space_func_returns_plain_closure ... ok
[INFO] [stdout] test ported::segment::tests::get_attr_func_no_attribute_returns_none ... ok
[INFO] [stdout] test ported::segment::tests::get_fallback_segment_has_expected_shape ... ok
[INFO] [stdout] test ported::segment::tests::get_dispatches_function_type_with_dotted_name ... ok
[INFO] [stdout] test ported::segment::tests::get_function_dotted_name_splits_via_rpartition ... ok
[INFO] [stdout] test ported::segment::tests::get_function_failed_import_returns_err ... ok
[INFO] [stdout] test ported::segment::tests::get_function_missing_function_key_returns_err ... ok
[INFO] [stdout] test ported::segment::tests::get_function_passes_resolved_args_to_importer ... ok
[INFO] [stdout] test ported::segment::tests::get_function_undotted_uses_default_module ... ok
[INFO] [stdout] test ported::segment::tests::get_key_passes_through_to_get_segment_key ... ok
[INFO] [stdout] test ported::segment::tests::get_key_falls_back_to_default_when_absent ... ok
[INFO] [stdout] test ported::segment::tests::get_returns_none_for_unknown_segment_type ... ok
[INFO] [stdout] test ported::segment::tests::get_segment_key_merge_collapses_dicts_old_wins ... ok
[INFO] [stdout] test ported::segment::tests::get_returns_none_when_display_false ... ok
[INFO] [stdout] test ported::segment::tests::get_segment_key_no_merge_returns_first ... ok
[INFO] [stdout] test ported::segment::tests::get_segment_selector_combines_modes_and_function ... ok
[INFO] [stdout] test ported::segment::tests::get_selector_resolves_dotted_function_name ... ok
[INFO] [stdout] test ported::segment::tests::get_segment_selector_modes_only_returns_membership_check ... ok
[INFO] [stdout] test ported::segment::tests::get_segment_selector_no_modes_no_function_returns_none ... ok
[INFO] [stdout] test ported::segment::tests::get_selector_returns_none_when_function_missing ... ok
[INFO] [stdout] test ported::segment::tests::list_segment_key_values_finds_segment_key_first ... ok
[INFO] [stdout] test ported::segment::tests::get_selector_uses_default_selectors_module_for_undotted_name ... ok
[INFO] [stdout] test ported::segment::tests::segment_getter_name_dispatches_by_type ... ok
[INFO] [stdout] test ported::segment::tests::set_segment_highlighting_basic ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_format_supports_alternate_precisions_via_battery_fn ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_gamify_ac_state_uses_online_group_when_charging ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_gamify_ac_state_uses_offline_group_when_not_charging ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_gamify_draw_inner_divider_all_false ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_gamify_emits_correct_full_and_empty_counts ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_gamify_empty_segment_gradient_100 ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_gamify_emits_three_segments ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_none_status_returns_none ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_gamify_full_segment_gradient_zero ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_gamify_full_percent_emits_only_full ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_gamify_zero_percent_emits_only_empty ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_percent_format_emits_single_segment ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_percent_format_emits_battery_gradient_groups ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_percent_format_emits_correct_gradient_level ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_percent_format_handles_100_percent_without_truncation ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_percent_format_keeps_separator_when_online_visible_icon ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_percent_format_matches_python_width_3_spec ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_percent_uses_online_when_ac_powered ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::build_device_table_zips_parallel_slices ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::failing_get_status_returns_none ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::fetch_battery_info_none_when_all_backends_fail ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::fetch_battery_info_returns_first_successful_backend ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::flatten_battery_closure_delegates_to_flatten_battery ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::flatten_battery_multi_device_averages_percent ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::flatten_battery_single_device ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::flatten_battery_state_is_and_fold ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::flatten_battery_zero_full_returns_zero ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_percent_format_offline_with_empty_string_also_collapses ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::get_battery_status_delegates_to_fetcher ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::get_battery_status_propagates_none ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::parse_linux_status_charging_returns_true ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::parse_linux_status_discharging_returns_false ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_percent_re_matches_zero ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::parse_pmset_output_detects_ac_charging ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::parse_pmset_output_extracts_percent_and_no_ac ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::parse_pmset_output_no_percent_returns_none ... ok
[INFO] [stdout] test ported::segments::common::env::tests::cwd_segment_argspecobjs_yields_get_shortened_path ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::battery_percent_re_matches_pmset_output ... ok
[INFO] [stdout] test ported::segments::common::env::tests::cwd_segment_omitted_args_for_unknown_method_is_empty ... ok
[INFO] [stdout] test ported::segments::common::env::tests::cwd_segment_omitted_args_for_get_shortened_path_is_empty ... ok
[INFO] [stdout] test ported::segments::common::bat::tests::get_battery_perc_missing_files_returns_none ... ok
[INFO] [stdout] test ported::segments::common::env::tests::cwd_segments_dir_limit_depth_adds_ellipsis ... ok
[INFO] [stdout] test ported::segments::common::env::tests::cwd_segments_dir_shorten_len_truncates_non_leaf ... ok
[INFO] [stdout] test ported::segments::common::env::tests::cwd_segments_empty_string_yields_root_segment ... ok
[INFO] [stdout] test ported::segments::common::env::tests::cwd_segments_divider_group_set_on_all ... ok
[INFO] [stdout] test ported::segments::common::env::tests::cwd_segments_draw_inner_divider_inverse_of_use_path_separator ... ok
[INFO] [stdout] test ported::segments::common::env::tests::cwd_segments_root_path ... ok
[INFO] [stdout] test ported::segments::common::env::tests::cwd_segments_multi_component ... ok
[INFO] [stdout] test ported::segments::common::env::tests::cwd_segments_use_path_separator_appends_to_non_last_and_strips_last ... ok
[INFO] [stdout] test ported::segments::common::env::tests::environment_returns_none_when_unset ... ok
[INFO] [stdout] test ported::segments::common::env::tests::environment_returns_value_when_set ... ok
[INFO] [stdout] test ported::segments::common::env::tests::get_shortened_path_no_home_returns_full_path ... ok
[INFO] [stdout] test ported::segments::common::env::tests::get_shortened_path_not_found_returns_sentinel ... ok
[INFO] [stdout] test ported::segments::common::env::tests::get_shortened_path_shorten_home_false_passes_through ... ok
[INFO] [stdout] test ported::segments::common::env::tests::get_shortened_path_shortens_home_prefix ... ok
[INFO] [stdout] test ported::segments::common::env::tests::geteuid_returns_non_negative ... ok
[INFO] [stdout] test ported::segments::common::env::tests::powerline_test_user_uuid_matches_upstream ... ok
[INFO] [stdout] test ported::segments::common::env::tests::get_user_reads_environ_user_variable ... ok
[INFO] [stdout] test ported::segments::common::env::tests::user_hidden_returns_none ... ok
[INFO] [stdout] test ported::segments::common::env::tests::user_hide_domain_no_at_passes_through ... ok
[INFO] [stdout] test ported::segments::common::env::tests::user_returns_username_with_user_highlight_for_non_root ... ok
[INFO] [stdout] test ported::segments::common::env::tests::user_hide_domain_strips_at_suffix ... ok
[INFO] [stdout] test ported::segments::common::env::tests::user_root_gets_superuser_highlight ... ok
[INFO] [stdout] test ported::segments::common::env::tests::user_test_uuid_returns_user_verbatim ... ok
[INFO] [stdout] test ported::segments::common::env::tests::virtualenv_falls_back_to_conda_when_no_virtualenv ... ok
[INFO] [stdout] test ported::segments::common::env::tests::virtualenv_ignore_venv_skips_virtual_env ... ok
[INFO] [stdout] test ported::segments::common::env::tests::virtualenv_no_env_returns_none ... ok
[INFO] [stdout] test ported::segments::common::env::tests::virtualenv_returns_last_path_component_from_virtual_env ... ok
[INFO] [stdout] test ported::segments::common::env::tests::virtualenv_skips_ignored_names_and_walks_to_parent ... ok
[INFO] [stdout] test ported::segments::common::mail::tests::compute_state_returns_none_without_credentials ... ok
[INFO] [stdout] test ported::segments::common::mail::tests::imap4_ssl_port_matches_upstream ... ok
[INFO] [stdout] test ported::segments::common::mail::tests::interval_matches_upstream ... ok
[INFO] [stdout] test ported::segments::common::mail::tests::key_use_ssl_defaults_to_port_eq_ssl_port ... ok
[INFO] [stdout] test ported::segments::common::mail::tests::key_use_ssl_explicit_overrides_default ... ok
[INFO] [stdout] test ported::segments::common::mail::tests::render_one_no_max_emits_email_alert ... ok
[INFO] [stdout] test ported::segments::common::mail::tests::render_one_with_max_includes_gradient ... ok
[INFO] [stdout] test ported::segments::common::mail::tests::render_one_zero_returns_none ... ok
[INFO] [stdout] test ported::segments::common::net::tests::compute_state_auto_uses_proc_route_default ... ok
[INFO] [stdout] test ported::segments::common::net::tests::compute_state_explicit_interface_skips_route_walk ... ok
[INFO] [stdout] test ported::segments::common::net::tests::compute_state_second_call_shifts_last_to_prev ... ok
[INFO] [stdout] test ported::segments::common::net::tests::external_ip_none_when_read_fails ... ok
[INFO] [stdout] test ported::segments::common::net::tests::external_ip_render_emits_segment_with_background_divider ... ok
[INFO] [stdout] test ported::segments::common::net::tests::external_ip_render_none_for_empty_or_none ... ok
[INFO] [stdout] test ported::segments::common::net::tests::external_ip_segment_default_query_url ... ok
[INFO] [stdout] test ported::segments::common::mail::tests::render_one_none_returns_none ... ok
[INFO] [stdout] test ported::segments::common::mail::tests::render_one_clamps_gradient_at_100 ... ok
[INFO] [stdout] test ported::segments::common::net::tests::external_ip_segment_interval_matches_upstream ... ok
[INFO] [stdout] test ported::segments::common::net::tests::external_ip_segment_render_delegates_to_external_ip_render ... ok
[INFO] [stdout] test ported::segments::common::net::tests::external_ip_segment_set_state_no_arg_preserves_url ... ok
[INFO] [stdout] test ported::segments::common::net::tests::external_ip_segment_set_state_overrides_query_url ... ok
[INFO] [stdout] test ported::segments::common::net::tests::external_ip_segment_update_dispatches_to_query_url ... ok
[INFO] [stdout] test ported::segments::common::net::tests::external_ip_trims_whitespace ... ok
[INFO] [stdout] test ported::segments::common::net::tests::get_bytes_no_such_interface_returns_none ... ok
[INFO] [stdout] test ported::segments::common::net::tests::get_bytes_sysfs_returns_none_for_invalid_input ... ok
[INFO] [stdout] test ported::segments::common::net::tests::get_bytes_sysfs_parses_integers ... ok
[INFO] [stdout] test ported::segments::common::mail::tests::parse_unseen_count_extracts_n ... ok
[INFO] [stdout] test ported::segments::common::net::tests::hostname_exclude_domain_strips_dot_suffix ... ok
[INFO] [stdout] test ported::segments::common::net::tests::get_interfaces_returns_empty_or_real_data ... ok
[INFO] [stdout] test ported::segments::common::net::tests::hostname_only_if_ssh_returns_hostname_when_ssh_client_set ... ok
[INFO] [stdout] test ported::segments::common::net::tests::hostname_uuid_returns_literal_hostname ... ok
[INFO] [stdout] test ported::segments::common::net::tests::hostname_only_if_ssh_returns_none_without_ssh_client ... ok
[INFO] [stdout] test ported::segments::common::net::tests::hostname_returns_lookup_when_no_ssh_constraint ... ok
[INFO] [stdout] test ported::segments::common::net::tests::interface_key_lo_lower_than_eth ... ok
[INFO] [stdout] test ported::segments::common::net::tests::interface_key_eth1_lower_than_eth0 ... ok
[INFO] [stdout] test ported::segments::common::net::tests::interface_key_eth0_returns_priority ... ok
[INFO] [stdout] test ported::segments::common::net::tests::interface_key_no_alpha_prefix_returns_zero ... ok
[INFO] [stdout] test ported::segments::common::net::tests::interface_starts_contains_known_prefixes ... ok
[INFO] [stdout] test ported::segments::common::net::tests::interface_key_unknown_prefix_defaults_to_500 ... ok
[INFO] [stdout] test ported::segments::common::net::tests::interface_start_re_matches_prefix_only ... ok
[INFO] [stdout] test ported::segments::common::net::tests::internal_ip_fallback_returns_none ... ok
[INFO] [stdout] test ported::segments::common::net::tests::key_alias_delegates_to_network_load_key ... ok
[INFO] [stdout] test ported::segments::common::net::tests::network_load_key_returns_interface_name ... ok
[INFO] [stdout] test ported::segments::common::net::tests::parse_proc_net_route_default_finds_zero_destination_row ... ok
[INFO] [stdout] test ported::segments::common::net::tests::parse_proc_net_route_default_returns_none_when_no_default_route ... ok
[INFO] [stdout] test ported::segments::common::net::tests::parse_proc_net_route_default_handles_blank_lines ... ok
[INFO] [stdout] test ported::segments::common::net::tests::pick_active_interface_empty_input_defaults_to_eth0 ... ok
[INFO] [stdout] test ported::segments::common::net::tests::powerline_test_hostname_uuid_matches_upstream ... ok
[INFO] [stdout] test ported::segments::common::net::tests::pick_active_interface_only_excluded_defaults_to_eth0 ... ok
[INFO] [stdout] test ported::segments::common::net::tests::pick_active_interface_picks_highest_total ... ok
[INFO] [stdout] test ported::segments::common::net::tests::render_one_emits_network_load_divider_group ... ok
[INFO] [stdout] test ported::segments::common::net::tests::pick_active_interface_excludes_lo_and_vmnet_and_sit ... ok
[INFO] [stdout] test ported::segments::common::net::tests::render_one_computes_recv_and_sent_rates ... ok
[INFO] [stdout] test ported::segments::common::net::tests::render_one_no_samples_returns_none ... ok
[INFO] [stdout] test ported::segments::common::net::tests::render_one_gradient_clamps_to_100_at_max ... ok
[INFO] [stdout] test ported::segments::common::net::tests::render_one_si_prefix_uses_decimal_units ... ok
[INFO] [stdout] test ported::segments::common::net::tests::render_one_with_gradient_appends_gradient_groups_and_level ... ok
[INFO] [stdout] test ported::segments::common::net::tests::render_one_zero_interval_returns_zero_rate ... ok
[INFO] [stdout] test ported::segments::common::net::tests::replace_num_pat_extracts_alpha_only ... ok
[INFO] [stdout] test ported::segments::common::net::tests::sysfs_rx_path_builds_correct_path ... ok
[INFO] [stdout] test ported::segments::common::net::tests::sysfs_tx_path_builds_correct_path ... ok
[INFO] [stdout] test ported::segments::common::players::tests::applescript_delimiter_matches_python ... ok
[INFO] [stdout] test ported::segments::common::players::tests::call_alias_dispatches_to_player_segment_call ... ok
[INFO] [stdout] test ported::segments::common::players::tests::argspecobjs_yields_get_player_status_pair ... ok
[INFO] [stdout] test ported::segments::common::players::tests::cmus_handles_set_level_keys ... ok
[INFO] [stdout] test ported::segments::common::players::tests::cmus_parses_basic_status ... ok
[INFO] [stdout] test ported::segments::common::players::tests::cmus_handles_paused_state ... ok
[INFO] [stdout] test ported::segments::common::players::tests::cmus_returns_none_for_empty_input ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_seconds_handles_large_values ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_seconds_multi_minute_pads_seconds ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_seconds_one_minute_emits_one_zero_zero ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_seconds_str_accepts_comma_notation ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_seconds_str_accepts_dot_notation ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_seconds_str_invalid_returns_none ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_seconds_under_a_minute_pads_to_two_digits ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_state_pause_returns_pause ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_seconds_zero_emits_zero_zero_zero ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_state_play_takes_precedence_over_pause ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_state_play_returns_play ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_state_stop_returns_stop ... ok
[INFO] [stdout] test ported::segments::common::players::tests::convert_state_unknown_returns_fallback ... ok
[INFO] [stdout] test ported::segments::common::players::tests::dbus_player_status_none_elapsed_and_length ... ok
[INFO] [stdout] test ported::segments::common::players::tests::itunes_returns_none_for_wrong_field_count ... ok
[INFO] [stdout] test ported::segments::common::players::tests::itunes_parses_6_field_output ... ok
[INFO] [stdout] test ported::segments::common::players::tests::dbus_player_status_converts_micros_to_mss ... ok
[INFO] [stdout] test ported::segments::common::players::tests::mocp_defaults_state_to_stop_when_missing ... ok
[INFO] [stdout] test ported::segments::common::players::tests::mocp_returns_none_for_empty ... ok
[INFO] [stdout] test ported::segments::common::players::tests::mocp_parses_key_value_output ... ok
[INFO] [stdout] test ported::segments::common::players::tests::mpd_returns_none_when_empty ... ok
[INFO] [stdout] test ported::segments::common::players::tests::mpd_returns_none_when_wrong_newline_count ... ok
[INFO] [stdout] test ported::segments::common::players::tests::omitted_args_returns_empty_tuple ... ok
[INFO] [stdout] test ported::segments::common::players::tests::player_segment_call_emits_player_state_highlight_group ... ok
[INFO] [stdout] test ported::segments::common::players::tests::player_segment_call_empty_fields_become_empty_strings ... ok
[INFO] [stdout] test ported::segments::common::players::tests::player_segment_call_no_stats_returns_none ... ok
[INFO] [stdout] test ported::segments::common::players::tests::player_segment_call_state_none_falls_back ... ok
[INFO] [stdout] test ported::segments::common::players::tests::player_segment_call_substitutes_all_placeholders ... ok
[INFO] [stdout] test ported::segments::common::players::tests::player_segment_call_unknown_state_uses_fallback_symbol ... ok
[INFO] [stdout] test ported::segments::common::players::tests::player_segment_call_with_custom_state_symbols ... ok
[INFO] [stdout] test ported::segments::common::players::tests::player_stats_fallback_initial_state ... ok
[INFO] [stdout] test ported::segments::common::players::tests::rdio_parses_6_field_output_with_elapsed_pct ... ok
[INFO] [stdout] test ported::segments::common::players::tests::rdio_returns_none_for_wrong_field_count ... ok
[INFO] [stdout] test ported::segments::common::players::tests::rhythmbox_returns_none_for_empty ... ok
[INFO] [stdout] test ported::segments::common::players::tests::rhythmbox_parses_5_field_output ... ok
[INFO] [stdout] test ported::segments::common::players::tests::spotify_applescript_parses_playing ... ok
[INFO] [stdout] test ported::segments::common::players::tests::spotify_applescript_returns_none_for_empty ... ok
[INFO] [stdout] test ported::segments::common::players::tests::spotify_applescript_returns_none_for_stop ... ok
[INFO] [stdout] test ported::segments::common::players::tests::state_symbols_table_matches_upstream ... ok
[INFO] [stdout] test ported::segments::common::sys::tests::cpu_count_helper_returns_at_least_one ... ok
[INFO] [stdout] test ported::segments::common::sys::tests::getloadavg_returns_three_values_on_unix ... ok
[INFO] [stdout] test ported::segments::common::sys::tests::render_load_format_one_decimal ... ok
[INFO] [stdout] test ported::segments::common::sys::tests::render_load_format_plain_avg ... ok
[INFO] [stdout] test ported::segments::common::players::tests::mpc_output_re_captures_5_groups ... ok
[INFO] [stdout] test ported::segments::common::players::tests::mpd_parses_mpc_output ... ok
[INFO] [stdout] test ported::segments::common::sys::tests::render_load_format_zero_decimal ... ok
[INFO] [stdout] test ported::segments::common::sys::tests::render_load_format_two_decimal ... ok
[INFO] [stdout] test ported::segments::common::sys::tests::run_terminates_when_shutdown_returns_true ... ok
[INFO] [stdout] test ported::segments::common::sys::tests::startup_start_shutdown_are_documented_no_ops ... ok
[INFO] [stdout] test ported::segments::common::sys::tests::system_load_short_returns_one_entry ... ok
[INFO] [stdout] test ported::segments::common::sys::tests::system_load_full_returns_three_entries_or_none ... ok
[INFO] [stdout] test ported::segments::common::sys::tests::system_load_gradient_level_thresholds ... ok
[INFO] [stdout] test ported::segments::common::sys::tests::update_returns_supplied_cpu_percent ... ok
[INFO] [stdout] test ported::segments::common::time::tests::date_h_format_emits_two_digit_hour ... ok
[INFO] [stdout] test ported::segments::common::time::tests::date_istime_emits_time_divider ... ok
[INFO] [stdout] test ported::segments::common::time::tests::date_istime_uses_time_highlight ... ok
[INFO] [stdout] test ported::segments::common::time::tests::date_not_istime_omits_time_divider ... ok
[INFO] [stdout] test ported::segments::common::time::tests::date_yyyymmdd_format ... ok
[INFO] [stdout] test ported::segments::common::time::tests::date_returns_non_empty_contents ... ok
[INFO] [stdout] test ported::segments::common::time::tests::format_strftime_basic_unix_epoch ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_compute_modulo_24_hour_wraps_to_12_label ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_compute_closest_minute_for_unaligned_input ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_compute_quarter_past_six ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_compute_o_clock ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_compute_rounds_up_after_32 ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_compute_special_case_midnight ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_compute_special_case_noon ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_compute_special_case_round_about_midnight ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_compute_unicode_text_translates_apostrophe ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_compute_unicode_text_translates_hyphen_in_special ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_default_hour_str_has_12_entries ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_default_minute_str_has_12_entries ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_default_minute_str_quarter_past ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_default_special_cases_includes_noon_and_midnight ... ok
[INFO] [stdout] test ported::segments::common::time::tests::unicode_text_translate_no_op_on_plain_text ... ok
[INFO] [stdout] test ported::segments::common::time::tests::fuzzy_time_smoke_test_uses_localtime ... ok
[INFO] [stdout] test ported::segments::common::time::tests::unicode_text_translate_replaces_apostrophe_and_hyphen ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::branch_segment_divider_highlight_group_is_none ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::branch_segment_emits_divider_highlight_group_as_null ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::branch_segment_empty_status_is_clean ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::branch_segment_get_directory_calls_getcwd_closure ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::branch_segment_get_directory_none_when_getcwd_returns_none ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::branch_segment_ignore_statuses_strips_to_clean ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::branch_segment_no_status_colors_returns_branch_highlight ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::branch_segment_no_repo_returns_none ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::branch_segment_with_status_colors_dirty_picks_branch_dirty ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::branch_segment_with_status_colors_clean_picks_branch_clean ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::stash_segment_divider_highlight_group_is_none ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::stash_segment_get_directory_calls_closure ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::stash_segment_no_stash_support_returns_none ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::stash_segment_no_repo_returns_none ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::stash_segment_positive_count_returns_segment ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::compute_state_from_response_empty_returns_none ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::compute_state_from_response_malformed_returns_none ... ok
[INFO] [stdout] test ported::segments::common::vcs::tests::stash_segment_zero_stashes_returns_none ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::compute_state_from_response_parses_owm_payload ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::compute_state_from_response_unknown_code_returns_unknown_icon ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::pick_icon_unknown_returns_ukn ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::pick_icon_falls_back_to_default_table ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::pick_icon_uses_override_when_present ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::render_one_emits_background_divider_on_both ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::render_one_emits_two_segments ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::render_one_custom_temp_format ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::render_one_emits_weather_condition_groups ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::render_one_icon_segment_appends_trailing_space ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::render_one_temp_segment_emits_gradient_level ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::render_one_no_weather_returns_none ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::render_one_temp_segment_groups_match_upstream ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::render_one_temp_segment_renders_default_format ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::temp_conversions_kelvin_to_fahrenheit ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::render_one_uses_custom_icon_override ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::temp_conversions_kelvin_to_celsius ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::temp_conversions_kelvin_to_kelvin_is_passthrough ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::temp_gradient_level_above_hottest_returns_100 ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::temp_gradient_level_below_coldest_returns_zero ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::temp_units_matches_upstream ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::temp_gradient_level_midpoint_returns_50 ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::weather_api_key_matches_upstream ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::weather_conditions_codes_maps_511_to_snowy ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::weather_conditions_codes_maps_clouds_to_cloudy ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::weather_conditions_codes_maps_clear_sky_to_sunny ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::weather_conditions_codes_maps_rain_to_rainy ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::weather_conditions_icons_table_matches_upstream ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::weather_conditions_codes_maps_thunderstorm_to_stormy ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::weather_key_respects_custom_api_key ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::weather_key_uses_default_api_key_when_unset ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::active_window_returns_class_when_title_exceeds_cutoff ... ok
[INFO] [stdout] test ported::segments::common::wthr::tests::weather_interval_matches_upstream ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::active_window_returns_class_when_title_too_long ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::active_window_returns_title_under_cutoff ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::active_window_returns_title_when_short ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::build_workspace_entry_strip_skips_leading_chars ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::build_workspace_entry_substitutes_number ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::build_workspace_entry_substitutes_name ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::build_workspace_entry_substitutes_stripped_name ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::format_name_strip_false_passes_through ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::get_icon_collapses_multiple_to_multi_icon_when_not_show_all ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::get_icon_matches_window_class_substring ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::get_icon_no_windows_returns_empty ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::get_icon_skips_scratchpad_windows ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::format_name_strip_true_removes_leading_number ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::is_empty_workspace_focused_returns_false ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::is_empty_workspace_unfocused_invisible_no_leaves_returns_true ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::is_empty_workspace_visible_returns_false ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::is_empty_workspace_with_leaves_returns_false ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::mode_alias_dispatches_to_mode_segment ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::mode_segment_unknown_passes_through ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::mode_segment_default_hidden_returns_none ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::mode_segment_named_returns_translation ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::natural_key_handles_no_digits ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::natural_key_alternating_chunks ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::natural_key_handles_pure_digits ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::natural_key_orders_digits_numerically ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::priority_sort_workspaces_empty_priority_preserves_order ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::priority_sort_workspaces_priority_not_in_list_is_skipped ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::priority_sort_workspaces_puts_priority_names_first ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::scratchpad_emits_one_entry_per_non_none_window ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::scratchpad_entry_emits_highlight_groups_from_flags ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::scratchpad_entry_known_state_uses_matching_icon ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::scratchpad_entry_unknown_state_falls_back_to_changed_icon ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::scratchpad_groups_on_scratch_workspace_omits_visible ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::scratchpad_entry_none_state_returns_none ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::scratchpad_groups_urgent_focused_visible ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::scratchpad_icons_contains_fresh_and_changed ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::sort_ws_priority_workspaces_pin_to_front ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::sort_ws_sort_workspaces_false_preserves_input_order ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::workspace_default_format_no_strip_returns_name ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::workspace_groups_all_flags_set_returns_all_classes ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::sort_ws_sort_workspaces_true_applies_natural_key_order ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::workspace_default_format_strip_returns_stripped_name ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::workspace_groups_focused_only ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::workspace_groups_none_returns_just_workspace ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::workspace_groups_urgent_only ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::workspace_groups_visible_only ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::workspace_regex_strips_leading_number_and_optional_space ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::workspace_uses_supplied_format_string ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::ws_icons_contains_multiple_entry ... ok
[INFO] [stdout] test ported::segments::ipython::tests::prompt_count_returns_str_of_count ... ok
[INFO] [stdout] test ported::segments::pdb::tests::current_code_name_returns_co_name ... ok
[INFO] [stdout] test ported::segments::i3wm::tests::workspace_substitutes_stripped_name_when_strip_true ... ok
[INFO] [stdout] test ported::segments::ipython::tests::prompt_count_missing_key_returns_none ... ok
[INFO] [stdout] test ported::segments::pdb::tests::current_context_returns_co_name_for_normal_function ... ok
[INFO] [stdout] test ported::segments::pdb::tests::current_file_basename_false_returns_full_path ... ok
[INFO] [stdout] test ported::segments::pdb::tests::current_context_substitutes_module_with_basename ... ok
[INFO] [stdout] test ported::segments::pdb::tests::current_file_basename_true_returns_filename_only ... ok
[INFO] [stdout] test ported::segments::pdb::tests::current_line_returns_lineno_as_string ... ok
[INFO] [stdout] test ported::segments::pdb::tests::stack_depth_full_stack_returns_raw_len ... ok
[INFO] [stdout] test ported::segments::pdb::tests::stack_depth_default_subtracts_initial ... ok
[INFO] [stdout] test ported::segments::shell::tests::continuation_omits_cmdsubst_last ... ok
[INFO] [stdout] test ported::segments::shell::tests::continuation_right_align_sets_first_align ... ok
[INFO] [stdout] test ported::segments::shell::tests::continuation_splits_parser_state ... ok
[INFO] [stdout] test ported::segments::shell::tests::get_shortened_path_falls_back_to_super_when_key_missing ... ok
[INFO] [stdout] test ported::segments::shell::tests::continuation_no_parser_state_returns_empty_segment ... ok
[INFO] [stdout] test ported::segments::shell::tests::exit_codes_known_signals ... ok
[INFO] [stdout] test ported::segments::shell::tests::get_shortened_path_uses_segment_info_shortened_path_when_present ... ok
[INFO] [stdout] test ported::segments::shell::tests::jobnum_none_jobnum_returns_none ... ok
[INFO] [stdout] test ported::segments::shell::tests::jobnum_returns_count_string ... ok
[INFO] [stdout] test ported::segments::shell::tests::get_shortened_path_falls_back_to_super_when_use_shortened_false ... ok
[INFO] [stdout] test ported::segments::shell::tests::jobnum_returns_none_when_zero_and_no_show_zero ... ok
[INFO] [stdout] test ported::segments::shell::tests::jobnum_returns_zero_when_show_zero ... ok
[INFO] [stdout] test ported::segments::shell::tests::last_pipe_status_all_zero_returns_none ... ok
[INFO] [stdout] test ported::segments::shell::tests::last_pipe_status_mixed_emits_per_status_segments ... ok
[INFO] [stdout] test ported::segments::shell::tests::last_status_non_signal_returns_number ... ok
[INFO] [stdout] test ported::segments::shell::tests::last_status_signal_kills ... ok
[INFO] [stdout] test ported::segments::shell::tests::last_status_zero_returns_none ... ok
[INFO] [stdout] test ported::segments::shell::tests::mode_returns_none_when_matches_default ... ok
[INFO] [stdout] test ported::segments::shell::tests::mode_returns_override_when_present ... ok
[INFO] [stdout] test ported::segments::tests::segment_defaults_are_empty ... ok
[INFO] [stdout] test ported::segments::shell::tests::mode_returns_uppercase_when_no_override ... ok
[INFO] [stdout] test ported::segments::tests::with_docstring_passes_through ... ok
[INFO] [stdout] test ported::segments::vim::plugin::ale::tests::ale_returns_none_without_vim ... ok
[INFO] [stdout] test ported::segments::vim::plugin::coc::tests::coc_returns_empty_without_vim ... ok
[INFO] [stdout] test ported::segments::vim::plugin::coc::tests::parse_coc_status_empty_returns_zeros ... ok
[INFO] [stdout] test ported::segments::vim::plugin::coc::tests::parse_coc_status_ignores_unknown_prefix ... ok
[INFO] [stdout] test ported::segments::vim::plugin::coc::tests::parse_coc_status_parses_errors_only ... ok
[INFO] [stdout] test ported::segments::vim::plugin::coc::tests::parse_coc_status_parses_both ... ok
[INFO] [stdout] test ported::segments::vim::plugin::capslock::tests::capslock_returns_none_without_vim ... ok
[INFO] [stdout] test ported::segments::vim::plugin::commandt::tests::finder_returns_one_segment_with_empty_contents ... ok
[INFO] [stdout] test ported::segments::tmux::tests::attached_clients_safe_when_tmux_unavailable ... ok
[INFO] [stdout] test ported::segments::vim::plugin::commandt::tests::finders_without_path_includes_buffer_finder ... ok
[INFO] [stdout] test ported::segments::vim::plugin::coc::tests::parse_coc_status_parses_warnings_only ... ok
[INFO] [stdout] test ported::segments::vim::plugin::commandt::tests::initialize_is_idempotent ... ok
[INFO] [stdout] test ported::segments::vim::plugin::commandt::tests::path_returns_some_when_finder_not_excluded ... ok
[INFO] [stdout] test ported::segments::vim::plugin::syntastic::tests::syntastic_returns_none_without_vim ... ok
[INFO] [stdout] test ported::segments::vim::plugin::tagbar::tests::current_tag_returns_none_without_vim ... ok
[INFO] [stdout] test ported::segments::vim::plugin::nerdtree::tests::nerdtree_returns_none_without_vim ... ok
[INFO] [stdout] test ported::segments::vim::tests::bufnr_show_current_paths ... ok
[INFO] [stdout] test ported::segments::vim::tests::col_current_adds_one_to_zero_based_col ... ok
[INFO] [stdout] test ported::segments::vim::tests::csv_parse_lines_constant ... ok
[INFO] [stdout] test ported::segments::vim::tests::default_position_strings_matches_upstream ... ok
[INFO] [stdout] test ported::segments::vim::tests::csv_sniff_lines_constant ... ok
[INFO] [stdout] test ported::segments::vim::tests::detect_text_csv_dialect_auto_uses_caller_has_header ... ok
[INFO] [stdout] test ported::segments::vim::tests::file_bom_returns_bom_or_none ... ok
[INFO] [stdout] test ported::segments::vim::tests::detect_text_csv_dialect_non_auto_uses_display_name ... ok
[INFO] [stdout] test ported::segments::vim::tests::file_format_returns_value_or_none ... ok
[INFO] [stdout] test ported::segments::vim::tests::file_encoding_returns_value_or_none ... ok
[INFO] [stdout] test ported::segments::vim::tests::file_size_clamps_negative_to_zero ... ok
[INFO] [stdout] test ported::segments::vim::tests::file_size_humanizes_byte_count ... ok
[INFO] [stdout] test ported::segments::vim::tests::file_size_text_positive_formats_via_humanize_bytes ... ok
[INFO] [stdout] test ported::segments::vim::tests::file_size_text_zero_returns_none ... ok
[INFO] [stdout] test ported::segments::vim::tests::file_type_returns_value_or_none ... ok
[INFO] [stdout] test ported::segments::vim::tests::line_count_returns_buffer_len ... ok
[INFO] [stdout] test ported::segments::vim::tests::line_current_returns_cursor_row ... ok
[INFO] [stdout] test ported::segments::vim::tests::file_scheme_returns_none_for_empty_name ... ok
[INFO] [stdout] test ported::segments::vim::tests::line_percent_at_first_line_emits_one ... ok
[INFO] [stdout] test ported::segments::vim::tests::line_percent_no_gradient_returns_string ... ok
[INFO] [stdout] test ported::segments::vim::tests::line_percent_value_at_end_is_100 ... ok
[INFO] [stdout] test ported::segments::vim::tests::line_percent_value_at_start_is_low ... ok
[INFO] [stdout] test ported::segments::vim::tests::line_percent_value_midpoint_is_50 ... ok
[INFO] [stdout] test ported::segments::vim::tests::line_percent_value_zero_total_returns_zero ... ok
[INFO] [stdout] test ported::segments::vim::tests::line_percent_with_gradient_returns_list ... ok
[INFO] [stdout] test ported::segments::vim::tests::mode_empty_returns_bug ... ok
[INFO] [stdout] test ported::segments::vim::tests::mode_override_takes_precedence ... ok
[INFO] [stdout] test ported::segments::vim::tests::line_percent_at_last_line_emits_100 ... ok
[INFO] [stdout] test ported::segments::vim::tests::mode_returns_none_for_nc ... ok
[INFO] [stdout] test ported::segments::vim::tests::mode_translates_normal ... ok
[INFO] [stdout] test ported::segments::vim::tests::mode_translates_visual_block_via_caret_v ... ok
[INFO] [stdout] test ported::segments::vim::tests::mode_translation_falls_back_to_vim_modes ... ok
[INFO] [stdout] test ported::segments::vim::tests::mode_translation_override_takes_precedence ... ok
[INFO] [stdout] test ported::segments::vim::tests::mode_translation_override_with_no_match_falls_through ... ok
[INFO] [stdout] test ported::segments::vim::tests::mode_translation_unknown_returns_input ... ok
[INFO] [stdout] test ported::segments::vim::tests::mode_trims_unknown_suffix ... ok
[INFO] [stdout] test ported::segments::vim::tests::modified_buffers_uses_custom_separator ... ok
[INFO] [stdout] test ported::segments::vim::tests::modified_buffers_joins_list_with_prefix ... ok
[INFO] [stdout] test ported::segments::vim::tests::modified_buffers_with_empty_list_returns_none ... ok
[INFO] [stdout] test ported::segments::vim::tests::modified_indicator_returns_text_when_modified ... ok
[INFO] [stdout] test ported::segments::vim::tests::paste_indicator_returns_text_when_paste_enabled ... ok
[INFO] [stdout] test ported::segments::vim::tests::position_all_when_window_shows_entire_buffer ... ok
[INFO] [stdout] test ported::segments::vim::tests::position_bottom_when_winline_last_is_buffer_end ... ok
[INFO] [stdout] test ported::segments::vim::tests::position_gradient_emits_full_dict ... ok
[INFO] [stdout] test ported::segments::vim::tests::position_top_when_winline_first_is_one_and_not_all ... ok
[INFO] [stdout] test ported::segments::vim::tests::position_middle_emits_percentage ... ok
[INFO] [stdout] test ported::segments::vim::tests::position_value_all_visible_returns_all ... ok
[INFO] [stdout] test ported::segments::vim::tests::position_value_at_bottom_returns_bottom ... ok
[INFO] [stdout] test ported::segments::vim::tests::position_value_at_top_returns_top ... ok
[INFO] [stdout] test ported::segments::vim::tests::position_value_middle_returns_percent ... ok
[INFO] [stdout] test ported::segments::vim::tests::readonly_indicator_returns_text_when_readonly ... ok
[INFO] [stdout] test ported::segments::vim::tests::scheme_re_accepts_digit_prefix ... ok
[INFO] [stdout] test ported::segments::vim::tests::file_scheme_returns_none_for_no_scheme ... ok
[INFO] [stdout] test ported::segments::vim::tests::scheme_re_matches_zipfile_prefix ... ok
[INFO] [stdout] test ported::segments::vim::tests::tab_end_emits_empty_tabnr ... ok
[INFO] [stdout] test ported::segments::vim::tests::scheme_re_no_match_when_no_colon ... ok
[INFO] [stdout] test ported::segments::vim::tests::tab_modified_indicator_returns_none_when_no_modified ... ok
[INFO] [stdout] test ported::segments::vim::tests::tab_modified_indicator_returns_segment_when_modified ... ok
[INFO] [stdout] test ported::segments::vim::tests::tab_returns_segment_with_tabnr_marker ... ok
[INFO] [stdout] test ported::segments::vim::tests::tab_returns_none_when_no_tabnr ... ok
[INFO] [stdout] test ported::segments::vim::tests::tabnr_shows_current_when_flag_set ... ok
[INFO] [stdout] test ported::segments::vim::tests::tabnr_hides_current_when_flag_unset ... ok
[INFO] [stdout] test ported::segments::vim::tests::tabnr_shows_other_tabnr_regardless_of_flag ... ok
[INFO] [stdout] test ported::segments::vim::tests::vim_modes_has_24_entries ... ok
[INFO] [stdout] test ported::segments::vim::tests::vim_modes_insert_translates ... ok
[INFO] [stdout] test ported::segments::vim::tests::vim_modes_terminal_translates ... ok
[INFO] [stdout] test ported::segments::vim::tests::vim_modes_normal_translates_to_normal ... ok
[INFO] [stdout] test ported::segments::vim::tests::vim_modes_visual_line_translates ... ok
[INFO] [stdout] test ported::segments::vim::tests::virtcol_current_no_gradient_omits_level ... ok
[INFO] [stdout] test ported::segments::vim::tests::virtcol_current_clamps_gradient_to_100 ... ok
[INFO] [stdout] test ported::segments::vim::tests::virtcol_current_zero_textwidth_gives_zero_gradient ... ok
[INFO] [stdout] test ported::segments::vim::tests::virtcol_current_with_gradient_computes_level ... ok
[INFO] [stdout] test ported::segments::vim::tests::visual_range_text_blockwise_uses_ctrl_v_format ... ok
[INFO] [stdout] test ported::segments::vim::tests::visual_range_text_normal_mode_returns_empty ... ok
[INFO] [stdout] test ported::segments::vim::tests::visual_range_text_v_line_uses_v_block_text ... ok
[INFO] [stdout] test ported::segments::vim::tests::visual_range_text_visual_multiline_uses_v_multiline ... ok
[INFO] [stdout] test ported::segments::vim::tests::window_cached_passes_function_through ... ok
[INFO] [stdout] test ported::segments::vim::tests::visual_range_text_visual_oneline_uses_v_oneline ... ok
[INFO] [stdout] test ported::segments::vim::tests::window_title_returns_none_when_unset ... ok
[INFO] [stdout] test ported::segments::vim::tests::window_title_returns_value_when_set ... ok
[INFO] [stdout] test ported::selectors::vim::tests::single_tab_returns_false_when_no_vim ... ok
[INFO] [stdout] test ported::segments::vim::tests::winnr_show_current_paths ... ok
[INFO] [stdout] test ported::segments::vim::tests::file_scheme_extracts_prefix ... ok
[INFO] [stdout] test ported::shell::tests::get_config_paths_returns_args_value_when_set ... ok
[INFO] [stdout] test ported::shell::tests::get_config_paths_returns_none_when_args_empty ... ok
[INFO] [stdout] test ported::shell::tests::get_local_themes_empty_input_returns_empty ... ok
[INFO] [stdout] test ported::shell::tests::do_setup_assigns_powerline_attribute ... ok
[INFO] [stdout] test ported::shell::tests::get_local_themes_loaded_config_picks_up_theme_override ... ok
[INFO] [stdout] test ported::shell::tests::get_local_themes_wraps_each_value_in_config_key ... ok
[INFO] [stdout] test ported::shell::tests::init_empty_ext_returns_empty_string ... ok
[INFO] [stdout] test ported::shell::tests::init_stores_args_and_returns_ext_first ... ok
[INFO] [stdout] test ported::shell::tests::load_main_config_overlays_config_override ... ok
[INFO] [stdout] test ported::shell::tests::load_theme_config_ignores_non_matching_theme ... ok
[INFO] [stdout] test ported::shell::tests::load_theme_config_no_overrides_leaves_base ... ok
[INFO] [stdout] test ported::shell::tests::load_main_config_overlay_recurses_into_nested_dict ... ok
[INFO] [stdout] test ported::shell::tests::load_main_config_no_override_leaves_base ... ok
[INFO] [stdout] test ported::shell::tests::load_theme_config_overlays_matching_theme ... ok
[INFO] [stdout] test ported::shell::tests::local_theme_input_with_non_string_value_uses_empty_theme_name ... ok
[INFO] [stdout] test ported::shell::tests::shell_args_default_has_empty_fields ... ok
[INFO] [stdout] test ported::tests::config_loader_condition_returns_none_when_missing ... ok
[INFO] [stdout] test ported::tests::config_loader_condition_returns_path_when_exists ... ok
[INFO] [stdout] test ported::tests::config_loader_condition_returns_none_when_none ... ok
[INFO] [stdout] test ported::tests::find_config_files_appends_json_suffix_to_message ... ok
[INFO] [stdout] test ported::tests::find_config_files_error_when_not_found ... ok
[INFO] [stdout] test ported::tests::finish_common_config_expands_tilde_in_paths ... ok
[INFO] [stdout] test ported::tests::finish_common_config_fills_all_defaults ... ok
[INFO] [stdout] test ported::tests::finish_common_config_fills_default_top_theme_for_ascii ... ok
[INFO] [stdout] test ported::tests::finish_common_config_fills_default_top_theme_for_utf8 ... ok
[INFO] [stdout] test ported::tests::finish_common_config_log_file_defaults_to_list_with_null ... ok
[INFO] [stdout] test ported::tests::finish_common_config_preserves_supplied_values ... ok
[INFO] [stdout] test ported::tests::finish_common_config_wraps_non_list_log_file ... ok
[INFO] [stdout] test ported::tests::finish_common_config_fills_default_top_theme_for_ucs ... ok
[INFO] [stdout] test ported::tests::get_default_theme_non_unicode_returns_ascii ... ok
[INFO] [stdout] test ported::tests::get_config_paths_includes_xdg_config_home ... ok
[INFO] [stdout] test ported::tests::get_default_theme_unicode_returns_powerline_terminus ... ok
[INFO] [stdout] test ported::tests::not_intercepted_error_implements_error ... ok
[INFO] [stdout] test ported::tests::powerline_logger_format_includes_ext_prefix_message ... ok
[INFO] [stdout] test ported::tests::powerline_logger_format_overrides_prefix ... ok
[INFO] [stdout] test ported::tests::get_config_paths_includes_plugin_path_first ... ok
[INFO] [stdout] test ported::tests::powerline_logger_log_captures_message ... ok
[INFO] [stdout] test ported::theme::tests::add_spaces_center_pads_evenly_extra_left_when_odd ... ok
[INFO] [stdout] test ported::theme::tests::add_spaces_left_pads_on_left ... ok
[INFO] [stdout] test ported::theme::tests::alignment_idiom_matches_documented_inverse_mapping ... ok
[INFO] [stdout] test ported::theme::tests::expand_functions_returns_correct_fn_for_each_align ... ok
[INFO] [stdout] test ported::theme::tests::add_spaces_right_pads_on_right ... ok
[INFO] [stdout] test ported::theme::tests::new_empty_segment_line_has_left_and_right ... ok
[INFO] [stdout] test ported::theme::tests::requires_decorators_are_identity ... ok
[INFO] [stdout] test ported::theme::tests::theme_apply_cursor_space_none_leaves_multiplier_unset ... ok
[INFO] [stdout] test ported::theme::tests::theme_apply_cursor_space_computes_multiplier ... ok
[INFO] [stdout] test ported::theme::tests::theme_get_divider_returns_none_for_missing_side_or_type ... ok
[INFO] [stdout] test ported::theme::tests::theme_get_divider_resolves_nested_lookup ... ok
[INFO] [stdout] test ported::theme::tests::theme_get_line_number_returns_segments_len ... ok
[INFO] [stdout] test ported::theme::tests::theme_new_defaults_outer_padding_to_1 ... ok
[INFO] [stdout] test ported::theme::tests::theme_new_initialises_empty_segment_with_python_shape ... ok
[INFO] [stdout] test ported::theme::tests::theme_get_spaces_returns_field_value ... ok
[INFO] [stdout] test ported::theme::tests::theme_shutdown_records_segments_with_shutdown_callable ... ok
[INFO] [stdout] test ported::theme::tests::theme_shutdown_skips_segments_with_null_shutdown ... ok
[INFO] [stdout] test ported::theme::tests::theme_shutdown_walks_both_sides ... ok
[INFO] [stdout] test ported::version::tests::version_constant_matches_upstream ... ok
[INFO] [stdout] test ported::vim::tests::assign_window_id_existing_no_conflict_reuses ... ok
[INFO] [stdout] test ported::vim::tests::assign_window_id_existing_with_conflict_reassigns ... ok
[INFO] [stdout] test ported::vim::tests::create_window_statusline_constructor_emits_pyeval_call ... ok
[INFO] [stdout] test ported::vim::tests::create_window_statusline_format_substitutes_idx ... ok
[INFO] [stdout] test ported::vim::tests::create_window_statusline_format_with_custom_pyeval ... ok
[INFO] [stdout] test ported::vim::tests::assign_window_id_no_existing_assigns_and_bumps ... ok
[INFO] [stdout] test ported::vim::tests::create_window_statusline_format_works_for_zero_idx ... ok
[INFO] [stdout] test ported::vim::tests::do_pyeval_command_handles_dict_json ... ok
[INFO] [stdout] test ported::vim::tests::do_pyeval_command_builds_return_statement ... ok
[INFO] [stdout] test ported::vim::tests::do_pyeval_returns_return_json_command ... ok
[INFO] [stdout] test ported::vim::tests::do_setup_uses_supplied_pyeval_and_pycmd ... ok
[INFO] [stdout] test ported::vim::tests::get_config_paths_falls_back_to_super_when_unset ... ok
[INFO] [stdout] test ported::vim::tests::get_config_paths_returns_vim_var_when_set ... ok
[INFO] [stdout] test ported::vim::tests::do_setup_defaults_to_py3eval_when_unspecified ... ok
[INFO] [stdout] test ported::vim::tests::failed_unicode_message_includes_window_id ... ok
[INFO] [stdout] test ported::vim::tests::get_default_pycmd_returns_python3 ... ok
[INFO] [stdout] test ported::vim::tests::get_local_themes_drops_unresolved_matchers ... ok
[INFO] [stdout] test ported::vim::tests::get_local_themes_empty_returns_empty ... ok
[INFO] [stdout] test ported::vim::tests::get_local_themes_resolves_matchers ... ok
[INFO] [stdout] test ported::vim::tests::get_matcher_module_splits_dotted_name ... ok
[INFO] [stdout] test ported::vim::tests::get_matcher_dotted_name_splits_via_rpartition ... ok
[INFO] [stdout] test ported::vim::tests::get_matcher_module_unrpartitioned_defaults_to_powerline_matchers ... ok
[INFO] [stdout] test ported::vim::tests::get_matcher_returns_none_when_function_missing ... ok
[INFO] [stdout] test ported::vim::tests::get_matcher_module_takes_rightmost_dot ... ok
[INFO] [stdout] test ported::vim::tests::get_matcher_undotted_uses_powerline_matchers_ext ... ok
[INFO] [stdout] test ported::vim::tests::init_constructs_with_default_pyeval ... ok
[INFO] [stdout] test ported::vim::tests::load_main_config_no_overrides_passes_through ... ok
[INFO] [stdout] test ported::vim::tests::load_main_config_use_var_handler_appends_to_log_file ... ok
[INFO] [stdout] test ported::vim::tests::load_theme_config_no_overrides_passes_through ... ok
[INFO] [stdout] test ported::vim::tests::module_setup_returns_vim_powerline_with_pyeval ... ok
[INFO] [stdout] test ported::vim::tests::new_win_idx_assigns_id_when_none_and_returns_current ... ok
[INFO] [stdout] test ported::vim::tests::new_window_returns_win_idx_result ... ok
[INFO] [stdout] test ported::vim::tests::old_win_idx_delegates_to_new_win_idx ... ok
[INFO] [stdout] test ported::vim::tests::new_window_returns_none_when_no_current_window ... ok
[INFO] [stdout] test ported::vim::tests::override_from_no_key_merges_full_dict ... ok
[INFO] [stdout] test ported::vim::tests::override_from_with_matching_key_merges_subdict ... ok
[INFO] [stdout] test ported::vim::tests::override_from_with_missing_key_no_op ... ok
[INFO] [stdout] test ported::vim::tests::reset_highlight_calls_renderer_when_present ... ok
[INFO] [stdout] test ported::vim::tests::reset_highlight_no_op_when_renderer_missing ... ok
[INFO] [stdout] test ported::vim::tests::new_win_idx_reuses_existing_id ... ok
[INFO] [stdout] test ported::vim::tests::override_from_no_var_leaves_config_untouched ... ok
[INFO] [stdout] test ported::vim::tests::setup_components_default_emits_statusline_and_tabline ... ok
[INFO] [stdout] test ported::vim::tests::set_pycmd_updates_global ... ok
[INFO] [stdout] test ported::vim::tests::setup_components_only_tabline ... ok
[INFO] [stdout] test ported::vim::tests::setup_components_only_statusline ... ok
[INFO] [stdout] test ported::vim::tests::setup_components_unknown_ignored ... ok
[INFO] [stdout] test ported::vim::tests::setup_components_uses_custom_pyeval ... ok
[INFO] [stdout] test ported::vim::tests::statusline_dispatches_to_render_when_window_resolves ... ok
[INFO] [stdout] test ported::vim::tests::setup_entry_returns_powerline_with_given_pyeval ... ok
[INFO] [stdout] test ported::vim::tests::statusline_no_window_message_with_id ... ok
[INFO] [stdout] test ported::vim::tests::statusline_no_window_message_without_id ... ok
[INFO] [stdout] test ported::vim::tests::statusline_returns_no_window_message_when_win_idx_none ... ok
[INFO] [stdout] test ported::vim::tests::tabline_fallback_window_defaults_to_last_window_id ... ok
[INFO] [stdout] test ported::vim::tests::tabline_falls_back_to_current_window_when_win_idx_none ... ok
[INFO] [stdout] test ported::vim::tests::tabline_fallback_window_uses_existing_id_when_set ... ok
[INFO] [stdout] test ported::vim::tests::tabline_uses_win_idx_result_when_present ... ok
[INFO] [stdout] test ported::vim::tests::vim_powerline_add_local_theme_records_kv_and_returns_true ... ok
[INFO] [stdout] test ported::vim::tests::vim_var_handler_captures_message ... ok
[INFO] [stdout] test ported::vim::tests::vim_var_handler_stores_varname_as_ascii ... ok
[INFO] [stdout] test ported::vim::tests::vim_powerline_init_defaults_to_powerlinepyeval ... ok
[INFO] [stdout] test ported::vim::tests::vim_var_handler_appends_exc_text_with_newline ... ok
[INFO] [stdout] test ported::version::tests::get_version_returns_nonempty ... ok
[INFO] [stdout] test extensions::disk::tests::disk_io_substitutes_two_rate_tokens ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::do_read_times_out_when_no_data ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::main_loop_exits_on_eof_sentinel ... ok
[INFO] [stdout] test ported::scripts::powerline_daemon::tests::main_loop_renders_request_then_eofs ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- ported::lib::vcs::tests::generate_directories_walks_up_from_cwd stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ported::lib::vcs::tests::generate_directories_walks_up_from_cwd' (2328) panicked at src/ported/lib/vcs/mod.rs:695:9:
[INFO] [stdout] assertion failed: dirs.len() >= 2
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5abdbac47021 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5abdbac47021 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5abdbac47021 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5abdbac47021 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5abdbac5f5ba - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5abdbac5f5ba - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x5abdbac4be4c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x5abdbac4be4c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x5abdbac217f6 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5abdbac217f6 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5abdbac3d699 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5abdba91cbe0 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x5abdba91cbe0 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5abdbac3d852 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x5abdbac3d852 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x5abdbac218d4 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:681:13
[INFO] [stdout]   16:     0x5abdbac18c69 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5abdbac2295d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x5abdbac5fe3c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5abdbac5fe02 - core[6883ba1bc0fe4ed1]::panicking::panic
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5abdba6e27a8 - powerliners[6a1f27cd69f971a]::ported::lib::vcs::tests::generate_directories_walks_up_from_cwd
[INFO] [stdout]                                at /opt/rustwide/workdir/src/ported/lib/vcs/mod.rs:695:9
[INFO] [stdout]   21:     0x5abdba6ba327 - powerliners[6a1f27cd69f971a]::ported::lib::vcs::tests::generate_directories_walks_up_from_cwd::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/ported/lib/vcs/mod.rs:689:48
[INFO] [stdout]   22:     0x5abdba5a6916 - <powerliners[6a1f27cd69f971a]::ported::lib::vcs::tests::generate_directories_walks_up_from_cwd::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5abdba90ff1b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5abdba90ff1b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x5abdba91d565 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x5abdba91d565 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x5abdba91d565 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   28:     0x5abdba91d565 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x5abdba91d565 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x5abdba91d565 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x5abdba91d565 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x5abdba918014 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x5abdba918014 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x5abdba9206b2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x5abdba9206b2 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x5abdba9206b2 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   37:     0x5abdba9206b2 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x5abdba9206b2 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x5abdba9206b2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x5abdba9206b2 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5abdbac4600f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   42:     0x5abdbac4600f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   43:     0x7a6bd334daa4 - <unknown>
[INFO] [stdout]   44:     0x7a6bd33daa64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     ported::lib::vcs::tests::generate_directories_walks_up_from_cwd
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2427 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.44s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8", kill_on_drop: false }`
[INFO] [stdout] d882f6762dd3d27b9fc45a5e0ad2c59f921dac2e90544e3347d08f74b66e9ac8
