[INFO] cloning repository https://github.com/oddurs/rsst
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/oddurs/rsst" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foddurs%2Frsst", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foddurs%2Frsst'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 84652db250869c17902d4d4db21c42e756104833
[INFO] testing oddurs/rsst against 1.99.0-beta.8 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foddurs%2Frsst" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/oddurs/rsst
[INFO] finished tweaking git repo https://github.com/oddurs/rsst
[INFO] tweaked toml for git repo https://github.com/oddurs/rsst written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/oddurs/rsst on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/oddurs/rsst already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded smallvec v1.16.1
[INFO] [stderr]   Downloaded hashlink v0.12.2
[INFO] [stderr]   Downloaded toml v0.9.12+spec-1.1.0
[INFO] [stderr]   Downloaded multiversion-macros v0.9.0
[INFO] [stderr]   Downloaded instability v0.3.13
[INFO] [stderr]   Downloaded compression-codecs v0.4.41
[INFO] [stderr]   Downloaded lru v0.18.4
[INFO] [stderr]   Downloaded multiversion v0.9.0
[INFO] [stderr]   Downloaded pest_derive v2.9.1
[INFO] [stderr]   Downloaded pest_generator v2.9.1
[INFO] [stderr]   Downloaded uuid v1.26.1
[INFO] [stderr]   Downloaded pest_meta v2.9.1
[INFO] [stderr]   Downloaded async-compression v0.4.46
[INFO] [stderr]   Downloaded webpki-root-certs v1.0.9
[INFO] [stderr]   Downloaded rusqlite v0.40.2
[INFO] [stderr]   Downloaded pest v2.9.1
[INFO] [stderr]   Downloaded encoding_rs v0.8.41
[INFO] [stderr]   Downloaded mediatype v0.21.0
[INFO] [stderr]   Downloaded libredox v0.1.24
[INFO] [stderr]   Downloaded feed-rs v2.4.0
[INFO] [stderr]   Downloaded libsqlite3-sys v0.38.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31
[INFO] running `Command { std: "docker" "start" "171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31", 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" "171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31", 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" "171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling rustversion v1.0.23
[INFO] [stderr]    Compiling smallvec v1.16.1
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling bitflags v2.13.2
[INFO] [stderr]    Compiling aws-lc-rs v1.18.1
[INFO] [stderr]    Compiling syn v3.0.5
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling crc32fast v1.5.1
[INFO] [stderr]    Compiling rustls v0.23.45
[INFO] [stderr]    Compiling futures-task v0.3.34
[INFO] [stderr]    Compiling mio v1.2.3
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling miniz_oxide v0.9.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling instability v0.3.13
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling aws-lc-sys v0.45.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling simdutf8 v0.1.5
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling encoding_rs v0.8.41
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling compression-core v0.4.33
[INFO] [stderr]    Compiling core_detect v1.0.0
[INFO] [stderr]    Compiling multiversion_no_op v1.0.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.38.2
[INFO] [stderr]    Compiling flate2 v1.1.10
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling ipnet v2.12.2
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling compression-codecs v0.4.41
[INFO] [stderr]    Compiling winnow v1.0.4
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling indexmap v2.14.2
[INFO] [stderr]    Compiling lru v0.18.4
[INFO] [stderr]    Compiling line-clipping v0.3.8
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling uuid v1.26.1
[INFO] [stderr]    Compiling hashlink v0.12.2
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling base64 v0.23.1
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling toml_edit v0.25.15+spec-1.1.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling toml v0.9.12+spec-1.1.0
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling darling_core v0.24.1
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling multiversion-macros v0.9.0
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling multiversion v0.9.0
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling darling_macro v0.24.1
[INFO] [stderr]    Compiling darling v0.24.1
[INFO] [stderr]    Compiling quick-xml v0.41.0
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling mediatype v0.21.0
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling rusqlite v0.40.2
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling async-compression v0.4.46
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling feed-rs v2.4.0
[INFO] [stderr]    Compiling h2 v0.4.19
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tokio-rustls v0.26.5
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.5
[INFO] [stderr]    Compiling rsst v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 02s
[INFO] running `Command { std: "docker" "inspect" "171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31", 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" "171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rsst v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 14.41s
[INFO] running `Command { std: "docker" "inspect" "171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31", 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" "171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.43s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rsst-5d3cb2c3b8606f42)
[INFO] [stdout] 
[INFO] [stdout] running 516 tests
[INFO] [stdout] test app::tests::a_feed_can_have_an_order_of_its_own ... ok
[INFO] [stdout] test app::tests::a_fetched_article_is_rendered_as_a_document_not_flattened ... ok
[INFO] [stdout] test app::tests::a_fetched_article_replaces_the_teaser ... ok
[INFO] [stdout] test app::tests::a_digit_that_can_only_mean_one_link_opens_it_at_once ... ok
[INFO] [stdout] test app::tests::a_feed_keeps_its_whole_folder_path ... ok
[INFO] [stdout] test app::tests::a_bulk_mark_counts_only_what_was_still_unread ... ok
[INFO] [stdout] test app::tests::a_typed_url_is_only_offered_once_it_looks_like_one ... ok
[INFO] [stdout] test app::tests::abandoning_a_bulk_mark_changes_nothing ... ok
[INFO] [stdout] test app::tests::a_half_page_scales_with_the_pane_height ... ok
[INFO] [stdout] test app::tests::a_feed_that_has_landed_can_be_refreshed_again ... ok
[INFO] [stdout] test app::tests::a_number_with_no_link_behind_it_says_so_rather_than_opening_something_else ... ok
[INFO] [stdout] test app::tests::an_article_of_the_same_length_is_still_noticed ... ok
[INFO] [stdout] test app::tests::an_empty_query_matches_nothing_rather_than_everything ... ok
[INFO] [stdout] test app::tests::an_entry_toggles_between_read_and_unread ... ok
[INFO] [stdout] test app::tests::an_article_with_no_links_says_so ... ok
[INFO] [stdout] test app::tests::cancelling_an_unsubscribe_changes_nothing ... ok
[INFO] [stdout] test app::tests::cancelling_the_picker_changes_nothing ... ok
[INFO] [stdout] test app::tests::choosing_the_top_level_clears_the_path ... ok
[INFO] [stdout] test app::tests::confirming_an_unsubscribe_marks_nothing_read ... ok
[INFO] [stdout] test app::tests::an_entry_with_no_date_goes_last_whichever_way_the_list_runs ... ok
[INFO] [stdout] test app::tests::a_pane_taller_than_its_text_does_not_scroll ... ok
[INFO] [stdout] test app::tests::a_refresh_that_changes_an_entry_relays_it_out ... ok
[INFO] [stdout] test app::tests::a_single_feed_is_sorted_too ... ok
[INFO] [stdout] test app::tests::a_new_folder_needs_a_name_before_it_is_a_destination ... ok
[INFO] [stdout] test app::tests::a_half_page_in_a_tiny_pane_still_moves ... ok
[INFO] [stdout] test app::tests::direction_is_separate_from_the_field ... ok
[INFO] [stdout] test app::tests::a_fully_read_feed_under_the_filter_shows_only_the_selection ... ok
[INFO] [stdout] test app::tests::escape_restores_the_selection_the_search_started_from ... ok
[INFO] [stdout] test app::tests::entry_navigation_stays_within_the_selected_feed ... ok
[INFO] [stdout] test app::tests::everything_that_shapes_the_article_lays_it_out_again ... ok
[INFO] [stdout] test app::tests::feed_selection_wraps_around ... ok
[INFO] [stdout] test app::tests::dropping_a_feed_from_the_config_drops_it_from_the_reader ... ok
[INFO] [stdout] test app::tests::every_folder_on_the_path_can_be_moved_into ... ok
[INFO] [stdout] test app::tests::g_and_shift_g_jump_to_the_ends_of_the_entry_list ... ok
[INFO] [stdout] test app::tests::folding_an_outer_folder_hides_the_feeds_below_it ... ok
[INFO] [stdout] test app::tests::focusing_the_entry_pane_marks_what_is_already_shown ... ok
[INFO] [stdout] test app::tests::a_digit_that_might_yet_grow_waits_for_the_next_one ... ok
[INFO] [stdout] test app::tests::marking_a_feed_read_needs_confirming_first ... ok
[INFO] [stdout] test app::tests::marking_everything_covers_every_feed ... ok
[INFO] [stdout] test app::tests::marking_one_feed_leaves_the_others_alone ... ok
[INFO] [stdout] test app::tests::moving_between_feeds_does_not_mark_anything_read ... ok
[INFO] [stdout] test app::tests::moving_through_entries_marks_them_read ... ok
[INFO] [stdout] test app::tests::next_unread_crosses_into_the_following_feed ... ok
[INFO] [stdout] test app::tests::navigation_is_inert_without_feeds ... ok
[INFO] [stdout] test app::tests::next_unread_reports_when_there_is_nothing_left ... ok
[INFO] [stdout] test app::tests::focus_cycles_through_all_three_panes ... ok
[INFO] [stdout] test app::tests::only_the_new_feeds_need_fetching ... ok
[INFO] [stdout] test app::tests::folding_is_per_path_not_per_name ... ok
[INFO] [stdout] test app::tests::opening_the_starred_view_selects_the_first_starred_entry ... ok
[INFO] [stdout] test app::tests::navigation_skips_entries_the_filter_hides ... ok
[INFO] [stdout] test app::tests::paging_stops_at_the_end_rather_than_running_past_it ... ok
[INFO] [stdout] test app::tests::published_and_received_are_not_the_same_order ... ok
[INFO] [stdout] test app::tests::reloading_applies_new_tags ... ok
[INFO] [stdout] test app::tests::previous_unread_walks_backwards_across_feeds ... ok
[INFO] [stdout] test app::tests::g_and_shift_g_jump_to_the_ends_of_the_feed_list ... ok
[INFO] [stdout] test app::tests::next_unread_on_an_empty_reader_is_harmless ... ok
[INFO] [stdout] test app::tests::changing_feed_resets_the_entry_cursor ... ok
[INFO] [stdout] test app::tests::confirming_leaves_the_text_field_but_keeps_the_results ... ok
[INFO] [stdout] test app::tests::entries_stay_readable_while_a_feed_is_refreshing ... ok
[INFO] [stdout] test app::tests::refreshing_starts_every_idle_feed ... ok
[INFO] [stdout] test app::tests::search_is_case_insensitive ... ok
[INFO] [stdout] test app::tests::an_unchanged_article_is_laid_out_once ... ok
[INFO] [stdout] test app::tests::scrolling_stops_at_the_top_and_at_the_last_line ... ok
[INFO] [stdout] test app::tests::reading_mode_takes_focus_and_gives_it_back ... ok
[INFO] [stdout] test app::tests::search_also_looks_in_the_summary ... ok
[INFO] [stdout] test app::tests::search_matches_across_every_feed ... ok
[INFO] [stdout] test app::tests::results_narrow_as_the_query_grows ... ok
[INFO] [stdout] test app::tests::sorting_by_feed_orders_a_list_drawn_from_several ... ok
[INFO] [stdout] test app::tests::selecting_another_entry_resets_the_scroll ... ok
[INFO] [stdout] test app::tests::refreshing_again_while_in_flight_starts_nothing ... ok
[INFO] [stdout] test app::tests::selecting_another_feed_resets_the_scroll ... ok
[INFO] [stdout] test app::tests::stepping_with_no_matches_is_harmless ... ok
[INFO] [stdout] test app::tests::starring_is_reflected_in_the_starred_view ... ok
[INFO] [stdout] test app::tests::sorting_by_title_is_alphabetical_and_reverses ... ok
[INFO] [stdout] test app::tests::reloading_drops_a_feed_that_was_removed ... ok
[INFO] [stdout] test app::tests::the_add_prompt_can_be_corrected_and_cancelled ... ok
[INFO] [stdout] test app::tests::shift_g_in_the_detail_pane_goes_to_the_last_line ... ok
[INFO] [stdout] test app::tests::sorting_within_one_feed_by_feed_name_leaves_it_alone ... ok
[INFO] [stdout] test app::tests::the_all_feeds_view_lists_every_entry_newest_first ... ok
[INFO] [stdout] test app::tests::the_all_feeds_view_toggles_and_selects_the_first_row ... ok
[INFO] [stdout] test app::tests::the_detail_pane_scrolls_a_line_at_a_time ... ok
[INFO] [stdout] test app::tests::the_articles_links_are_numbered_in_the_order_they_appear ... ok
[INFO] [stdout] test app::tests::reloading_picks_up_a_new_feed_without_disturbing_the_others ... ok
[INFO] [stdout] test app::tests::the_unsubscribe_prompt_stays_quiet_about_stars_when_there_are_none ... ok
[INFO] [stdout] test app::tests::the_list_says_what_it_is_sorted_by ... ok
[INFO] [stdout] test app::tests::stepping_through_matches_wraps_and_crosses_feeds ... ok
[INFO] [stdout] test app::tests::the_sort_order_reverses ... ok
[INFO] [stdout] test app::tests::the_starred_view_toggles_off_again ... ok
[INFO] [stdout] test app::tests::the_sort_key_still_does_the_obvious_thing ... ok
[INFO] [stdout] test app::tests::a_half_typed_number_can_be_opened_or_abandoned ... ok
[INFO] [stdout] test app::tests::the_visible_count_agrees_with_the_unread_count ... ok
[INFO] [stdout] test app::tests::typing_only_reaches_the_new_folder_choice ... ok
[INFO] [stdout] test app::tests::undated_entries_sort_last_in_both_directions ... ok
[INFO] [stdout] test app::tests::unfiltered_everything_is_listed ... ok
[INFO] [stdout] test app::tests::the_unsubscribe_prompt_says_what_it_is_about_to_throw_away ... ok
[INFO] [stdout] test app::tests::unread_counts_are_per_feed_and_safe_out_of_range ... ok
[INFO] [stdout] test app::tests::toggling_the_filter_is_reversible ... ok
[INFO] [stdout] test app::tests::unstarring_removes_it_from_the_view ... ok
[INFO] [stdout] test app::tests::without_a_fetch_the_feeds_own_text_is_shown ... ok
[INFO] [stdout] test article::tests::a_long_code_line_is_cut_rather_than_reflowed ... ok
[INFO] [stdout] test article::tests::a_quote_is_marked_out_from_body_text ... ok
[INFO] [stdout] test app::tests::the_picker_cursor_wraps ... ok
[INFO] [stdout] test article::tests::a_code_block_keeps_its_own_line_breaks_and_indentation ... ok
[INFO] [stdout] test article::tests::a_header_is_separated_from_the_body ... ok
[INFO] [stdout] test article::tests::a_pane_narrower_than_the_measure_is_used_as_it_is ... ok
[INFO] [stdout] test article::tests::a_link_with_no_visible_text_is_not_numbered ... ok
[INFO] [stdout] test app::tests::the_move_picker_opens_on_where_the_feed_already_is ... ok
[INFO] [stdout] test app::tests::the_filter_hides_read_entries_but_keeps_the_selected_one ... ok
[INFO] [stdout] test app::tests::the_picker_offers_the_top_level_every_folder_and_a_new_one ... ok
[INFO] [stdout] test article::tests::a_table_too_wide_to_fit_is_stacked_rather_than_mangled ... ok
[INFO] [stdout] test app::tests::a_typed_slash_nests_in_one_go ... ok
[INFO] [stdout] test article::tests::code_keeps_the_full_width_even_when_prose_does_not ... ok
[INFO] [stdout] test article::tests::comments_and_doctypes_are_not_content ... ok
[INFO] [stdout] test article::tests::an_empty_or_malformed_table_is_harmless ... ok
[INFO] [stdout] test article::tests::a_terminal_without_a_bullet_still_gets_a_list ... ok
[INFO] [stdout] test article::tests::an_image_becomes_its_alt_text ... ok
[INFO] [stdout] test article::tests::a_truncated_tag_does_not_spray_markup_into_the_article ... ok
[INFO] [stdout] test article::tests::an_image_with_no_alt_text_is_still_acknowledged ... ok
[INFO] [stdout] test article::tests::entities_are_decoded ... ok
[INFO] [stdout] test article::tests::a_table_with_no_header_still_lays_out ... ok
[INFO] [stdout] test article::tests::a_table_is_laid_out_in_aligned_columns ... ok
[INFO] [stdout] test article::tests::list_items_are_bulleted_with_a_hanging_indent ... ok
[INFO] [stdout] test article::tests::a_zero_width_pane_produces_nothing_rather_than_looping ... ok
[INFO] [stdout] test article::tests::headings_are_distinct_from_body ... ok
[INFO] [stdout] test article::tests::inline_code_keeps_its_own_styling ... ok
[INFO] [stdout] test article::tests::several_links_are_numbered_in_order ... ok
[INFO] [stdout] test article::tests::links_are_numbered_in_the_text_and_listed_at_the_end ... ok
[INFO] [stdout] test article::tests::ordered_lists_are_numbered_and_count_up ... ok
[INFO] [stdout] test article::tests::empty_input_produces_nothing ... ok
[INFO] [stdout] test article::tests::stray_closing_tags_are_harmless ... ok
[INFO] [stdout] test article::tests::the_real_world_article_that_prompted_this ... ok
[INFO] [stdout] test article::tests::paragraphs_are_separated_rather_than_run_together ... ok
[INFO] [stdout] test article::tests::attributes_parse_in_every_spelling_feeds_use ... ok
[INFO] [stdout] test article::tests::turning_the_measure_off_uses_the_whole_pane ... ok
[INFO] [stdout] test article::tests::the_reference_list_follows_the_measure_too ... ok
[INFO] [stdout] test article::tests::unclosed_tags_do_not_lose_the_text ... ok
[INFO] [stdout] test article::tests::unknown_elements_keep_their_text ... ok
[INFO] [stdout] test app::tests::a_page_is_a_screenful_less_an_overlap ... ok
[INFO] [stdout] test article::tests::the_measure_is_centred_in_the_pane ... ok
[INFO] [stdout] test article::tests::styling_survives_a_line_break ... ok
[INFO] [stdout] test article::tests::the_table_that_prompted_this_is_no_longer_a_word ... ok
[INFO] [stdout] test cache::tests::a_cache_from_a_newer_rsst_is_discarded ... ok
[INFO] [stdout] test cache::tests::a_feed_we_know_nothing_about_may_always_be_fetched ... ok
[INFO] [stdout] test cache::tests::a_missing_cache_is_empty ... ok
[INFO] [stdout] test article::tests::prose_holds_its_measure_on_a_wide_pane ... ok
[INFO] [stdout] test article::tests::plain_text_with_no_markup_still_renders ... ok
[INFO] [stdout] test article::tests::ragged_rows_do_not_lose_cells_or_panic ... ok
[INFO] [stdout] test app::tests::an_article_is_reopened_where_it_was_left ... ok
[INFO] [stdout] test cache::tests::a_stored_feed_comes_back ... ok
[INFO] [stdout] test cache::tests::feeds_removed_from_the_config_are_dropped ... ok
[INFO] [stdout] test cache::tests::a_starred_entry_still_present_is_not_duplicated ... ok
[INFO] [stdout] test cache::tests::a_corrupt_cache_is_discarded_rather_than_fatal ... ok
[INFO] [stdout] test cache::tests::a_deferred_feed_may_not_be_fetched_until_its_time ... ok
[INFO] [stdout] test cache::tests::an_unknown_feed_is_absent ... ok
[INFO] [stdout] test cache::tests::entries_are_capped_so_the_cache_cannot_grow_without_bound ... ok
[INFO] [stdout] test cli::tests::a_subcommand_still_honours_config ... ok
[INFO] [stdout] test cache::tests::the_configured_title_overrides_the_cached_one ... ok
[INFO] [stdout] test cli::tests::completions_without_a_shell_is_an_error ... ok
[INFO] [stdout] test cli::tests::config_accepts_a_separate_or_joined_value ... ok
[INFO] [stdout] test cli::tests::help_and_version_are_recognised_in_both_spellings ... ok
[INFO] [stdout] test cache::tests::a_successful_response_clears_a_deferral ... ok
[INFO] [stdout] test cli::tests::help_wins_over_a_later_bad_argument ... ok
[INFO] [stdout] test cli::tests::an_unknown_flag_is_an_error ... ok
[INFO] [stdout] test cache::tests::the_cache_records_its_format_version ... ok
[INFO] [stdout] test cli::tests::export_takes_no_path_and_tolerates_the_opml_flag ... ok
[INFO] [stdout] test cli::tests::no_arguments_runs_with_the_default_config ... ok
[INFO] [stdout] test cache::tests::saving_leaves_no_temporary_file_behind ... ok
[INFO] [stdout] test cli::tests::screenshot_takes_a_size_and_honours_config ... ok
[INFO] [stdout] test cli::tests::config_without_a_value_is_an_error ... ok
[INFO] [stdout] test cache::tests::a_truncated_cache_is_discarded_rather_than_fatal ... ok
[INFO] [stdout] test cli::tests::import_rejects_a_second_path ... ok
[INFO] [stdout] test cache::tests::metadata_for_removed_feeds_is_dropped_too ... ok
[INFO] [stdout] test cli::tests::the_help_text_names_the_binary_and_the_keys ... ok
[INFO] [stdout] test config::tests::a_url_that_is_not_in_the_config_is_an_error ... ok
[INFO] [stdout] test cache::tests::the_cache_round_trips_through_a_file ... ok
[INFO] [stdout] test cli::tests::import_takes_a_path ... ok
[INFO] [stdout] test config::tests::an_empty_config_is_valid ... ok
[INFO] [stdout] test cache::tests::a_response_missing_a_validator_does_not_erase_the_stored_one ... ok
[INFO] [stdout] test cli::tests::the_generators_are_reachable_from_the_command_line ... ok
[INFO] [stdout] test cache::tests::a_restored_feed_is_marked_fetching_because_a_refresh_is_coming ... ok
[INFO] [stdout] test config::tests::adding_a_feed_already_there_is_refused ... ok
[INFO] [stdout] test cache::tests::a_starred_entry_survives_falling_out_of_the_feed ... ok
[INFO] [stdout] test cache::tests::validators_are_remembered_and_survive_a_restart ... ok
[INFO] [stdout] test config::tests::adding_a_feed_keeps_the_comments ... ok
[INFO] [stdout] test cli::tests::import_without_a_path_is_an_error ... ok
[INFO] [stdout] test cli::tests::screenshot_without_a_size_is_an_error ... ok
[INFO] [stdout] test config::tests::tags_are_optional_and_default_to_none ... ok
[INFO] [stdout] test config::tests::adding_to_a_config_with_no_feeds_yet_works ... ok
[INFO] [stdout] test config::tests::a_moved_feed_is_pointed_at_its_new_address_without_losing_the_file ... ok
[INFO] [stdout] test config::tests::moving_a_feed_keeps_every_comment_and_the_rest_of_the_file ... ok
[INFO] [stdout] test config::tests::the_measure_defaults_and_can_be_turned_off ... ok
[INFO] [stdout] test config::tests::moving_a_feed_to_the_top_level_removes_its_tags ... ok
[INFO] [stdout] test config::tests::the_mouse_is_on_unless_the_config_says_otherwise ... ok
[INFO] [stdout] test config::tests::parses_a_minimal_feed_list ... ok
[INFO] [stdout] test config::tests::moving_a_feed_the_config_does_not_have_is_an_error_not_a_silent_no_op ... ok
[INFO] [stdout] test config::tests::the_refresh_interval_falls_back_from_feed_to_global_to_default ... ok
[INFO] [stdout] test config::tests::adding_without_a_title_leaves_the_feed_to_name_itself ... ok
[INFO] [stdout] test config::tests::the_example_config_exercises_every_key_the_parser_accepts ... ok
[INFO] [stdout] test config::tests::the_example_config_parses ... ok
[INFO] [stdout] test config::tests::moving_a_feed_leaves_the_other_feeds_alone ... ok
[INFO] [stdout] test config::tests::the_fetch_limit_is_configurable ... ok
[INFO] [stdout] test config::tests::the_example_binds_every_action ... ok
[INFO] [stdout] test config::tests::the_example_theme_resolves ... ok
[INFO] [stdout] test config::tests::unsubscribing_from_something_not_subscribed_to_is_an_error ... ok
[INFO] [stdout] test config::tests::the_result_still_parses_as_a_config ... ok
[INFO] [stdout] test db::tests::a_database_from_a_newer_rsst_is_refused_rather_than_misread ... ok
[INFO] [stdout] test config::tests::the_fetch_limit_defaults_when_unset ... ok
[INFO] [stdout] test app::tests::a_place_is_kept_per_article_not_shared_between_them ... ok
[INFO] [stdout] test config::tests::zero_minutes_turns_the_timer_off ... ok
[INFO] [stdout] test config::tests::writing_leaves_no_temporary_file_behind ... ok
[INFO] [stdout] test config::tests::unsubscribing_from_the_last_feed_leaves_a_config_that_still_parses ... ok
[INFO] [stdout] test config::tests::unsubscribing_removes_one_feed_and_leaves_the_file_alone ... ok
[INFO] [stdout] test db::tests::a_feed_never_fetched_is_due_at_once ... ok
[INFO] [stdout] test db::tests::a_not_modified_response_still_counts_as_reached ... ok
[INFO] [stdout] test db::tests::a_feed_just_fetched_is_not_due_again_yet ... ok
[INFO] [stdout] test db::tests::a_deferred_feed_may_not_be_fetched_until_its_time ... ok
[INFO] [stdout] test article::tests::deeply_nested_markup_does_not_blow_the_stack ... ok
[INFO] [stdout] test db::tests::a_rate_limited_feed_is_never_due ... ok
[INFO] [stdout] test db::tests::a_successful_response_clears_a_deferral ... ok
[INFO] [stdout] test db::tests::a_dropped_entry_goes_unless_it_was_starred ... ok
[INFO] [stdout] test db::tests::a_stored_feed_comes_back_with_its_entries_and_keys ... ok
[INFO] [stdout] test db::tests::a_starred_key_is_never_pruned_even_with_no_entry ... ok
[INFO] [stdout] test db::tests::a_fetched_article_is_found_by_any_of_the_entry_keys ... ok
[INFO] [stdout] test db::tests::a_restored_feed_is_marked_fetching_because_a_refresh_is_coming ... ok
[INFO] [stdout] test db::tests::a_starred_entry_survives_falling_out_of_the_feed ... ok
[INFO] [stdout] test db::tests::a_fetched_article_survives_the_feed_being_refreshed ... ok
[INFO] [stdout] test db::tests::a_new_entry_arrives_at_the_top_and_the_rest_keep_their_order ... ok
[INFO] [stdout] test db::tests::a_zero_interval_turns_the_timer_off ... ok
[INFO] [stdout] test db::tests::an_empty_query_matches_nothing ... ok
[INFO] [stdout] test db::tests::fetching_again_replaces_what_was_stored ... ok
[INFO] [stdout] test db::tests::flags_round_trip ... ok
[INFO] [stdout] test db::tests::full_text_search_finds_entries_across_feeds ... ok
[INFO] [stdout] test db::tests::an_unknown_feed_is_absent ... ok
[INFO] [stdout] test db::tests::deleting_an_entry_removes_it_from_the_index ... ok
[INFO] [stdout] test db::tests::moving_an_entry_does_not_disturb_the_search_index ... ok
[INFO] [stdout] test db::tests::punctuation_in_a_query_is_not_read_as_syntax ... ok
[INFO] [stdout] test db::tests::read_keys_are_pruned_when_nothing_holds_them ... ok
[INFO] [stdout] test db::tests::removing_a_feed_takes_its_entries_with_it ... ok
[INFO] [stdout] test db::tests::state_is_written_as_a_delta_not_a_rewrite ... ok
[INFO] [stdout] test db::tests::read_state_follows_an_entry_that_was_rewritten ... ok
[INFO] [stdout] test db::tests::search_is_case_insensitive_and_looks_in_the_body ... ok
[INFO] [stdout] test db::tests::the_configured_title_overrides_the_stored_one ... ok
[INFO] [stdout] test feed::tests::a_bare_ampersand_survives ... ok
[INFO] [stdout] test db::tests::refreshing_one_feed_leaves_the_others_untouched ... ok
[INFO] [stdout] test feed::tests::a_blank_configured_title_does_not_win_over_the_feeds_own ... ok
[INFO] [stdout] test feed::tests::a_blank_title_falls_back_the_way_a_missing_one_does ... ok
[INFO] [stdout] test feed::tests::a_comments_feed_is_never_the_one_that_was_meant ... ok
[INFO] [stdout] test feed::tests::a_configured_title_is_the_readers_own_text_and_is_left_alone ... ok
[INFO] [stdout] test db::tests::validators_round_trip_and_a_missing_one_is_not_erased ... ok
[INFO] [stdout] test feed::tests::a_configured_title_wins ... ok
[INFO] [stdout] test db::tests::only_the_entry_that_changed_is_rewritten ... ok
[INFO] [stdout] test feed::tests::a_failed_status_carries_both_the_kind_and_the_words ... ok
[INFO] [stdout] test db::tests::a_refresh_that_changes_nothing_writes_nothing ... ok
[INFO] [stdout] test feed::tests::a_feed_that_lists_the_same_file_twice_shows_it_once ... ok
[INFO] [stdout] test feed::tests::a_feed_with_no_title_is_named_by_its_host ... ok
[INFO] [stdout] test feed::tests::a_host_is_read_out_of_whatever_shape_the_address_is ... ok
[INFO] [stdout] test db::tests::opening_twice_does_not_migrate_twice ... ok
[INFO] [stdout] test feed::tests::a_numeric_entity_in_a_title_is_decoded ... ok
[INFO] [stdout] test db::tests::migrating_twice_is_a_no_op ... ok
[INFO] [stdout] test feed::tests::a_page_that_names_its_feed_is_followed ... ok
[INFO] [stdout] test feed::tests::a_page_with_no_feed_finds_nothing_rather_than_guessing ... ok
[INFO] [stdout] test db::tests::the_run_that_migrates_does_not_prune_what_it_just_brought_across ... ok
[INFO] [stdout] test feed::tests::a_parsed_feed_is_idle ... ok
[INFO] [stdout] test feed::tests::a_pending_feed_keeps_the_configured_title_and_is_marked_loading ... ok
[INFO] [stdout] test feed::tests::a_pending_feed_without_a_title_falls_back_to_its_url ... ok
[INFO] [stdout] test db::tests::a_version_one_database_gains_the_content_column ... ok
[INFO] [stdout] test feed::tests::a_podcast_episode_is_carried_on_the_entry ... ok
[INFO] [stdout] test feed::tests::a_bare_503_is_retried_rather_than_costing_five_minutes ... ok
[INFO] [stdout] test feed::tests::a_retry_after_date_in_the_past_means_retry_now ... ok
[INFO] [stdout] test feed::tests::a_declared_length_over_the_limit_is_refused_before_the_body ... ok
[INFO] [stdout] test feed::tests::a_discovered_feed_keeps_the_address_it_was_subscribed_under ... ok
[INFO] [stdout] test feed::tests::a_size_reads_the_way_a_person_would_say_it ... ok
[INFO] [stdout] test feed::tests::a_title_is_decoded_the_same_way_a_summary_is ... ok
[INFO] [stdout] test feed::tests::a_wait_never_runs_past_what_is_left_of_the_budget ... ok
[INFO] [stdout] test feed::tests::adjacent_entities_all_decode ... ok
[INFO] [stdout] test feed::tests::an_absurd_backoff_is_capped ... ok
[INFO] [stdout] test feed::tests::an_entry_with_no_id_or_link_still_gets_a_key ... ok
[INFO] [stdout] test feed::tests::an_entry_with_nothing_attached_carries_nothing ... ok
[INFO] [stdout] test db::tests::a_version_seven_database_gains_the_first_seen_column ... ok
[INFO] [stdout] test feed::tests::an_unrecognised_entity_is_left_alone_rather_than_dropped ... ok
[INFO] [stdout] test feed::tests::an_href_with_an_entity_in_it_is_decoded ... ok
[INFO] [stdout] test feed::tests::atom_wins_when_a_page_offers_both ... ok
[INFO] [stdout] test feed::tests::a_redirect_loop_gives_up_rather_than_going_round ... ok
[INFO] [stdout] test feed::tests::each_wait_is_longer_than_the_one_before ... ok
[INFO] [stdout] test feed::tests::entries_are_sorted_newest_first ... ok
[INFO] [stdout] test db::tests::a_version_six_database_gains_the_enclosures_table ... ok
[INFO] [stdout] test feed::tests::every_kind_reads_as_a_sentence_rather_than_a_variant_name ... ok
[INFO] [stdout] test feed::tests::entries_carry_id_link_and_title_keys ... ok
[INFO] [stdout] test feed::tests::a_permanent_redirect_is_remembered ... ok
[INFO] [stdout] test feed::tests::key_kinds_are_prefixed_so_they_cannot_collide ... ok
[INFO] [stdout] test feed::tests::every_quoting_style_a_page_might_use_is_read ... ok
[INFO] [stdout] test feed::tests::feeds_on_one_host_do_not_come_back_in_lockstep ... ok
[INFO] [stdout] test feed::tests::no_single_wait_exceeds_the_ceiling ... ok
[INFO] [stdout] test feed::tests::nonsense_in_retry_after_is_ignored ... ok
[INFO] [stdout] test feed::tests::named_entities_are_decoded ... ok
[INFO] [stdout] test feed::tests::numeric_entities_are_decoded_in_both_bases ... ok
[INFO] [stdout] test feed::tests::only_a_failed_status_carries_an_error ... ok
[INFO] [stdout] test feed::tests::only_what_could_succeed_next_time_is_retried ... ok
[INFO] [stdout] test feed::tests::markers_distinguish_fetching_from_failed ... ok
[INFO] [stdout] test feed::tests::a_host_that_is_not_listening_is_unreachable_and_worth_retrying ... ok
[INFO] [stdout] test feed::tests::a_body_over_the_limit_is_refused_rather_than_swallowed ... ok
[INFO] [stdout] test feed::tests::retries_stop_after_the_allowed_number ... ok
[INFO] [stdout] test feed::tests::retry_after_reads_an_http_date ... ok
[INFO] [stdout] test feed::tests::summaries_have_their_entities_decoded_and_whitespace_collapsed ... ok
[INFO] [stdout] test feed::tests::a_page_with_no_feed_says_so_rather_than_only_not_a_feed ... ok
[INFO] [stdout] test feed::tests::the_configured_attempts_are_honoured_and_capped ... ok
[INFO] [stdout] test feed::tests::a_feed_inside_the_limit_is_read_as_usual ... ok
[INFO] [stdout] test feed::tests::the_configured_limit_is_honoured_and_zero_means_the_default ... ok
[INFO] [stdout] test feed::tests::the_same_feed_always_waits_the_same ... ok
[INFO] [stdout] test feed::tests::retry_after_reads_a_plain_number_of_seconds ... ok
[INFO] [stdout] test feed::tests::the_entrys_own_page_is_not_mistaken_for_a_file_it_carries ... ok
[INFO] [stdout] test feed::tests::the_total_budget_ends_it_however_many_attempts_are_left ... ok
[INFO] [stdout] test feed::tests::summaries_lose_their_markup ... ok
[INFO] [stdout] test feed::tests::zero_attempts_never_retries ... ok
[INFO] [stdout] test feed::tests::undated_entries_render_a_placeholder ... ok
[INFO] [stdout] test generate::tests::an_unsupported_shell_is_reported ... ok
[INFO] [stdout] test generate::tests::completions_list_every_long_flag ... ok
[INFO] [stdout] test generate::tests::completions_offer_both_subcommands ... ok
[INFO] [stdout] test feed::tests::relative_hrefs_resolve_against_the_page_they_came_from ... ok
[INFO] [stdout] test generate::tests::the_man_page_documents_every_flag_and_command ... ok
[INFO] [stdout] test feed::tests::uses_the_feed_title_when_none_is_configured ... ok
[INFO] [stdout] test home::tests::an_empty_value_is_not_an_override ... ok
[INFO] [stdout] test generate::tests::the_man_page_starts_with_a_roff_header ... ok
[INFO] [stdout] test generate::tests::every_supported_shell_gets_a_script_naming_the_binary ... ok
[INFO] [stdout] test generate::tests::the_man_page_documents_every_key ... ok
[INFO] [stdout] test feed::tests::a_chain_that_is_permanent_all_the_way_down_is_remembered ... ok
[INFO] [stdout] test home::tests::without_an_override_the_platform_decides ... ok
[INFO] [stdout] test keys::tests::a_capital_letter_binding_matches_the_shift_the_terminal_reports ... ok
[INFO] [stdout] test keys::tests::an_empty_key_is_rejected ... ok
[INFO] [stdout] test home::tests::an_override_takes_both_directories ... ok
[INFO] [stdout] test keys::tests::an_override_replaces_the_default_rather_than_adding_to_it ... ok
[INFO] [stdout] test db::tests::a_version_four_database_gains_the_resolved_url_column ... ok
[INFO] [stdout] test keys::tests::an_unknown_action_is_reported_with_the_known_ones ... ok
[INFO] [stdout] test keys::tests::control_is_still_required_where_it_is_bound ... ok
[INFO] [stdout] test keys::tests::modifiers_and_named_keys_parse ... ok
[INFO] [stdout] test keys::tests::every_action_is_bound_and_described_by_default ... ok
[INFO] [stdout] test keys::tests::the_help_reflects_a_rebinding ... ok
[INFO] [stdout] test keys::tests::shift_still_matters_for_keys_without_a_character ... ok
[INFO] [stdout] test keys::tests::the_defaults_all_parse ... ok
[INFO] [stdout] test keys::tests::case_distinguishes_two_bindings ... ok
[INFO] [stdout] test keys::tests::an_unparseable_key_names_the_action_it_came_from ... ok
[INFO] [stdout] test limit::tests::a_host_is_the_server_being_asked ... ok
[INFO] [stdout] test keys::tests::every_row_fits_an_eighty_column_terminal ... ok
[INFO] [stdout] test launch::tests::every_platform_offers_at_least_one_clipboard_command ... ok
[INFO] [stdout] test launch::tests::the_opener_is_the_platform_convention ... ok
[INFO] [stdout] test db::tests::a_version_five_database_gains_the_digest_column ... ok
[INFO] [stdout] test launch::tests::a_missing_helper_is_an_error_rather_than_a_panic ... ok
[INFO] [stdout] test feed::tests::a_503_that_names_a_time_is_still_honoured ... ok
[INFO] [stdout] test launch::tests::copying_reports_a_missing_command ... ok
[INFO] [stdout] test limit::tests::a_per_host_limit_of_zero_still_makes_progress ... ok
[INFO] [stdout] test limit::tests::the_per_host_limit_is_configurable_and_zero_means_the_default ... ok
[INFO] [stdout] test limit::tests::the_permit_is_released_even_when_the_work_panics_is_not_required ... ok
[INFO] [stdout] test mouse::tests::a_clicked_link_is_the_one_open_then_opens ... ok
[INFO] [stdout] test mouse::tests::clicking_a_feed_selects_that_feed ... ok
[INFO] [stdout] test mouse::tests::clicking_a_folder_folds_it ... ok
[INFO] [stdout] test mouse::tests::clicking_a_link_in_the_article_opens_that_link ... ok
[INFO] [stdout] test mouse::tests::clicking_an_entry_selects_it_and_double_clicking_opens_it ... ok
[INFO] [stdout] test mouse::tests::clicking_beside_a_link_only_focuses_the_pane ... ok
[INFO] [stdout] test mouse::tests::clicking_empty_space_in_a_pane_still_moves_focus_there ... ok
[INFO] [stdout] test mouse::tests::clicking_the_link_opens_it_but_beside_it_only_focuses ... ok
[INFO] [stdout] test mouse::tests::clicks_outside_every_pane_do_nothing ... ok
[INFO] [stdout] test mouse::tests::middle_click_on_anything_else_does_nothing ... ok
[INFO] [stdout] test mouse::tests::middle_click_opens_a_link_in_the_article ... ok
[INFO] [stdout] test mouse::tests::middle_click_opens_an_entry_without_selecting_it_first ... ok
[INFO] [stdout] test mouse::tests::other_buttons_and_movement_are_ignored ... ok
[INFO] [stdout] test mouse::tests::rows_come_from_what_was_drawn_not_from_arithmetic ... ok
[INFO] [stdout] test mouse::tests::status_bar_hints_are_buttons ... ok
[INFO] [stdout] test mouse::tests::the_help_overlay_scrolls_rather_than_closing_on_the_wheel ... ok
[INFO] [stdout] test limit::tests::a_limit_of_zero_still_makes_progress ... ok
[INFO] [stdout] test mouse::tests::the_help_overlay_takes_every_click ... ok
[INFO] [stdout] test mouse::tests::the_wheel_moves_prose_further_than_a_list ... ok
[INFO] [stdout] test mouse::tests::the_wheel_scrolls_whichever_pane_it_is_over ... ok
[INFO] [stdout] test opml::tests::a_duplicate_inside_one_document_is_taken_once ... ok
[INFO] [stdout] test opml::tests::a_round_trip_preserves_the_feed_list ... ok
[INFO] [stdout] test opml::tests::a_folder_round_trips_through_export_and_import ... ok
[INFO] [stdout] test opml::tests::an_outline_without_a_url_is_not_a_feed ... ok
[INFO] [stdout] test opml::tests::attribute_case_does_not_matter ... ok
[INFO] [stdout] test opml::tests::entities_in_titles_are_decoded ... ok
[INFO] [stdout] test opml::tests::folders_become_tags_not_feeds ... ok
[INFO] [stdout] test opml::tests::importing_twice_adds_nothing_the_second_time ... ok
[INFO] [stdout] test opml::tests::malformed_xml_is_an_error_rather_than_silence ... ok
[INFO] [stdout] test opml::tests::merging_keeps_feeds_that_are_already_configured ... ok
[INFO] [stdout] test opml::tests::reads_a_real_world_export ... ok
[INFO] [stdout] test opml::tests::nested_folders_all_become_tags ... ok
[INFO] [stdout] test readable::tests::a_page_with_no_article_is_left_alone ... ok
[INFO] [stdout] test readable::tests::a_plain_page_with_no_containers_falls_back_to_the_body ... ok
[INFO] [stdout] test readable::tests::an_empty_or_broken_page_is_not_an_article ... ok
[INFO] [stdout] test readable::tests::an_unclosed_script_does_not_eat_the_whole_page_silently ... ok
[INFO] [stdout] test readable::tests::a_wall_of_links_loses_to_real_prose ... ok
[INFO] [stdout] test readable::tests::nested_containers_do_not_confuse_the_matching ... ok
[INFO] [stdout] test readable::tests::scripts_and_styles_never_reach_the_reader ... ok
[INFO] [stdout] test readable::tests::the_article_wins_over_the_furniture ... ok
[INFO] [stdout] test readable::tests::the_biggest_of_several_candidates_wins ... ok
[INFO] [stdout] test screenshot::tests::a_screenshot_is_small_enough_to_commit ... ok
[INFO] [stdout] test limit::tests::feeds_on_different_hosts_still_go_at_once ... ok
[INFO] [stdout] test screenshot::tests::sizes_parse_and_nonsense_does_not ... ok
[INFO] [stdout] test limit::tests::one_host_never_sees_more_than_its_share ... ok
[INFO] [stdout] test state::tests::a_corrupt_file_loads_as_empty_rather_than_failing ... ok
[INFO] [stdout] test feed::tests::a_page_pointing_at_another_page_fails_rather_than_looping ... ok
[INFO] [stdout] test state::tests::a_file_from_a_newer_rsst_is_discarded_rather_than_misread ... ok
[INFO] [stdout] test feed::tests::too_much_body_is_not_worth_retrying ... ok
[INFO] [stdout] test state::tests::a_missing_file_loads_as_empty ... ok
[INFO] [stdout] test state::tests::an_entry_sharing_no_key_is_a_different_entry ... ok
[INFO] [stdout] test state::tests::an_unmarked_entry_is_unread ... ok
[INFO] [stdout] test state::tests::marking_an_entry_makes_it_read ... ok
[INFO] [stdout] test screenshot::tests::the_svg_is_well_formed_and_shows_the_real_interface ... ok
[INFO] [stdout] test state::tests::marking_unread_leaves_other_entries_alone ... ok
[INFO] [stdout] test state::tests::read_state_survives_a_changed_identifier ... ok
[INFO] [stdout] test state::tests::an_entry_can_be_put_back_to_unread ... ok
[INFO] [stdout] test state::tests::raw_keys_can_be_checked_for_stars ... ok
[INFO] [stdout] test state::tests::saving_leaves_no_temporary_file_behind ... ok
[INFO] [stdout] test state::tests::starring_toggles_and_is_independent_of_read_state ... ok
[INFO] [stdout] test state::tests::a_file_without_a_version_is_read_as_the_first_format ... ok
[INFO] [stdout] test state::tests::state_round_trips_through_a_file ... ok
[INFO] [stdout] test state::tests::stars_survive_a_restart ... ok
[INFO] [stdout] test state::tests::the_sort_order_survives_a_restart ... ok
[INFO] [stdout] test text::tests::a_word_longer_than_the_width_is_split_not_overflowed ... ok
[INFO] [stdout] test state::tests::the_state_file_records_its_format_version ... ok
[INFO] [stdout] test state::tests::the_unread_filter_survives_a_restart ... ok
[INFO] [stdout] test text::tests::a_zero_width_pane_produces_nothing_rather_than_looping ... ok
[INFO] [stdout] test text::tests::blank_lines_survive_as_paragraph_breaks ... ok
[INFO] [stdout] test text::tests::empty_text_produces_a_single_blank_line ... ok
[INFO] [stdout] test text::tests::multibyte_text_is_measured_in_characters_not_bytes ... ok
[INFO] [stdout] test text::tests::no_line_exceeds_the_width ... ok
[INFO] [stdout] test screenshot::tests::markup_in_an_entry_cannot_break_the_svg ... ok
[INFO] [stdout] test text::tests::short_text_is_one_line ... ok
[INFO] [stdout] test text::tests::text_breaks_on_whitespace_at_the_width ... ok
[INFO] [stdout] test theme::tests::a_malformed_value_names_the_role_it_came_from ... ok
[INFO] [stdout] test theme::tests::a_named_preset_changes_the_styling ... ok
[INFO] [stdout] test theme::tests::a_role_can_be_overridden_with_attributes_alone ... ok
[INFO] [stdout] test theme::tests::a_role_can_combine_an_attribute_and_a_colour ... ok
[INFO] [stdout] test theme::tests::a_role_can_be_overridden_with_a_colour ... ok
[INFO] [stdout] test theme::tests::an_empty_value_is_rejected ... ok
[INFO] [stdout] test theme::tests::an_unknown_role_is_reported ... ok
[INFO] [stdout] test theme::tests::ascii_can_be_forced_either_way ... ok
[INFO] [stdout] test theme::tests::dark_and_light_differ_in_the_roles_that_matter ... ok
[INFO] [stdout] test theme::tests::default_means_the_terminals_own_foreground ... ok
[INFO] [stdout] test theme::tests::mono_names_no_colour_but_keeps_attributes ... ok
[INFO] [stdout] test theme::tests::no_color_still_honours_the_ascii_setting ... ok
[INFO] [stdout] test theme::tests::no_color_wins_over_the_config ... ok
[INFO] [stdout] test theme::tests::no_preset_uses_a_colour_the_terminal_cannot_theme ... ok
[INFO] [stdout] test theme::tests::dim_names_no_colour_so_it_cannot_vanish ... ok
[INFO] [stdout] test theme::tests::the_bright_half_of_the_palette_is_addressable ... ok
[INFO] [stdout] test theme::tests::the_default_follows_the_terminal ... ok
[INFO] [stdout] test tree::tests::a_collapsed_folder_still_reports_its_count ... ok
[INFO] [stdout] test theme::tests::the_status_bar_reverses_rather_than_naming_a_text_colour ... ok
[INFO] [stdout] test tree::tests::a_folder_counts_everything_beneath_it_including_nested_folders ... ok
[INFO] [stdout] test tree::tests::a_tag_path_nests_arbitrarily_deep ... ok
[INFO] [stdout] test tree::tests::a_tree_with_no_folders_offers_none ... ok
[INFO] [stdout] test tree::tests::every_folder_on_a_path_is_offered_for_moving_into ... ok
[INFO] [stdout] test theme::tests::hex_colours_are_still_accepted_for_people_who_want_them ... ok
[INFO] [stdout] test tree::tests::feeds_with_no_tags_sit_at_the_top_level ... ok
[INFO] [stdout] test tree::tests::folding_a_folder_hides_everything_beneath_it ... ok
[INFO] [stdout] test tree::tests::folding_an_inner_folder_leaves_its_parent_open ... ok
[INFO] [stdout] test tree::tests::a_guide_is_drawn_only_while_something_follows_at_that_level ... ok
[INFO] [stdout] test tree::tests::two_folders_of_the_same_name_in_different_places_are_different ... ok
[INFO] [stdout] test tree::tests::depth_matches_the_guides ... ok
[INFO] [stdout] test tree::tests::folders_come_before_loose_feeds_at_the_same_level ... ok
[INFO] [stdout] test theme::tests::an_unknown_theme_is_reported ... ok
[INFO] [stdout] test limit::tests::the_limit_is_actually_reached ... ok
[INFO] [stdout] test ui::tests::a_different_theme_actually_changes_the_rendering ... ok
[INFO] [stdout] test ui::tests::a_failed_feed_is_marked_and_explains_itself_without_inventing_entries ... ok
[INFO] [stdout] test limit::tests::a_limit_of_one_serialises_everything ... ok
[INFO] [stdout] test ui::tests::a_hidden_pane_cannot_be_clicked ... ok
[INFO] [stdout] test ui::tests::a_fully_read_feed_shows_no_count_at_all ... ok
[INFO] [stdout] test ui::tests::a_failed_feed_keeps_showing_its_cached_entries ... ok
[INFO] [stdout] test ui::tests::a_link_scrolled_out_of_sight_cannot_be_clicked ... ok
[INFO] [stdout] test ui::tests::a_click_outside_a_prompt_cancels_it ... ok
[INFO] [stdout] test ui::tests::a_failure_reads_as_a_sentence_about_the_feed ... ok
[INFO] [stdout] test limit::tests::the_global_limit_still_binds_when_hosts_are_plentiful ... ok
[INFO] [stdout] test ui::tests::a_status_bar_hint_runs_its_action ... ok
[INFO] [stdout] test limit::tests::many_feeds_never_exceed_the_limit ... ok
[INFO] [stdout] test ui::tests::a_fetching_feed_looks_different_from_a_failed_one ... ok
[INFO] [stdout] test ui::tests::a_links_recorded_columns_are_where_its_text_was_drawn ... ok
[INFO] [stdout] test ui::tests::ascii_mode_draws_nothing_a_plain_terminal_cannot ... ok
[INFO] [stdout] test ui::tests::a_feed_still_fetching_is_marked_and_stops_being_marked_once_it_lands ... ok
[INFO] [stdout] test ui::tests::a_marker_and_a_count_end_in_the_same_column ... ok
[INFO] [stdout] test ui::tests::a_roomy_terminal_also_gets_the_section_headings ... ok
[INFO] [stdout] test ui::tests::clicking_a_group_heading_folds_and_unfolds_it ... ok
[INFO] [stdout] test ui::tests::an_overflowing_overlay_says_how_to_scroll ... ok
[INFO] [stdout] test feed::tests::one_temporary_hop_makes_the_whole_chain_temporary ... ok
[INFO] [stdout] test ui::tests::a_short_overlay_says_any_key_dismisses_it ... ok
[INFO] [stdout] test feed::tests::a_site_address_finds_the_feed_the_page_points_at ... ok
[INFO] [stdout] test ui::tests::clicking_a_feed_selects_the_one_that_was_drawn_there ... ok
[INFO] [stdout] test feed::tests::too_many_requests_backs_off_even_without_a_number ... ok
[INFO] [stdout] test feed::tests::bytes_that_are_not_a_feed_are_their_own_kind_of_trouble ... ok
[INFO] [stdout] test feed::tests::each_status_maps_to_the_kind_that_decides_what_to_do ... ok
[INFO] [stdout] test ui::tests::clicking_an_entry_selects_it_and_marks_it_read ... ok
[INFO] [stdout] test ui::tests::clicking_dismisses_the_help_overlay ... ok
[INFO] [stdout] test ui::tests::reading_mode_puts_the_lists_away ... ok
[INFO] [stdout] test ui::tests::clicking_the_link_asks_to_open_it ... ok
[INFO] [stdout] test ui::tests::renders_without_panicking_when_there_are_no_feeds ... ok
[INFO] [stdout] test ui::tests::renders_the_selected_entry_across_all_panes ... ok
[INFO] [stdout] test ui::tests::clicking_beside_the_link_only_moves_focus ... ok
[INFO] [stdout] test ui::tests::scrolling_the_detail_pane_changes_what_is_shown ... ok
[INFO] [stdout] test ui::tests::the_help_overlay_is_absent_until_asked_for ... ok
[INFO] [stdout] test ui::tests::the_default_theme_still_uses_box_drawing ... ok
[INFO] [stdout] test ui::tests::reading_mode_gives_the_article_the_whole_width ... ok
[INFO] [stdout] test ui::tests::the_feed_pane_shows_an_unread_count_that_shrinks_as_you_read ... ok
[INFO] [stdout] test ui::tests::the_status_bar_offers_a_way_out_of_reading_mode ... ok
[INFO] [stdout] test ui::tests::the_mono_theme_uses_no_colour_anywhere ... ok
[INFO] [stdout] test ui::tests::the_status_bar_reverses_instead_of_pinning_a_text_colour ... ok
[INFO] [stdout] test ui::tests::the_detail_pane_stops_at_the_last_line ... ok
[INFO] [stdout] test ui::tests::folding_a_group_shifts_the_rows_below_it_and_clicks_follow ... ok
[INFO] [stdout] test ui::tests::the_wheel_over_the_detail_pane_scrolls_the_article ... ok
[INFO] [stdout] test ui::tests::moving_the_selection_off_screen_scrolls_it_back_into_view ... ok
[INFO] [stdout] test ui::tests::the_wheel_over_the_entries_pane_scrolls_without_moving_the_selection ... ok
[INFO] [stdout] test ui::tests::the_help_overlay_says_how_to_dismiss_itself ... ok
[INFO] [stdout] test ui::tests::the_wheel_does_not_steal_keyboard_focus ... ok
[INFO] [stdout] test ui::tests::the_wheel_over_the_feed_list_scrolls_it_too ... ok
[INFO] [stdout] test ui::tests::no_click_reaches_the_panes_while_an_overlay_is_up ... ok
[INFO] [stdout] test feed::tests::a_temporary_redirect_is_followed_but_not_remembered ... ok
[INFO] [stdout] test ui::tests::every_binding_is_reachable_on_an_eighty_by_twentyfour_terminal ... ok
[INFO] [stdout] test ui::tests::scrolling_the_list_marks_nothing_read ... ok
[INFO] [stdout] test readable::tests::hostile_input_terminates ... ok
[INFO] [stdout] test ui::tests::scrolling_stops_at_the_ends_rather_than_wrapping ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 516 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.10s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rsst-53431df6cf08e11f)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]      Running unittests src/bin/bench.rs (/opt/rustwide/target/debug/deps/rsst_bench-d62ab6cb78ce040a)
[INFO] [stdout] test tests::only_key_presses_are_acted_on ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/scaling.rs (/opt/rustwide/target/debug/deps/rsst_scaling-481bd25f5d36b593)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]      Running unittests src/bin/seed.rs (/opt/rustwide/target/debug/deps/rsst_seed-ee136e5c1f2ccfe3)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/dev_env.rs (/opt/rustwide/target/debug/deps/dev_env-d252debd8e37b70a)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test the_fixtures_are_the_ones_the_seeder_asks_for ... ok
[INFO] [stdout] test seeding_survives_every_single_feed_failing ... ok
[INFO] [stdout] test seeding_without_a_home_refuses_rather_than_guessing ... ok
[INFO] [stdout] test seeding_writes_a_config_only_inside_the_home_it_was_given ... ok
[INFO] [stderr]      Running tests/fuzz.rs (/opt/rustwide/target/debug/deps/fuzz-96bf0833641833ae)
[INFO] [stdout] test an_offline_seed_configures_nothing_off_this_machine ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test every_seed_in_the_corpus_is_survivable ... ok
[INFO] [stdout] test a_feed_cannot_make_the_renderer_allocate_without_bound ... ok
[INFO] [stdout] test deeply_nested_markup_does_not_overflow_the_stack ... ok
[INFO] [stdout] test mutations_of_the_corpus_are_survivable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 16.86s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/home.rs (/opt/rustwide/target/debug/deps/home-bc2d88c1c254db0f)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test a_first_run_writes_its_config_into_the_home_it_was_given ... ok
[INFO] [stdout] test the_database_lands_in_the_home_too ... ok
[INFO] [stderr]    Doc-tests rsst
[INFO] [stdout] test two_homes_do_not_share_a_database ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.65s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31", kill_on_drop: false }`
[INFO] [stdout] 171206c0542edd98bddf6212b008093fcd06b8eeb0d990d34b175dc3e1a3ce31
