[INFO] fetching crate confab 0.3.2... [INFO] testing confab-0.3.2 against beta-2025-09-21 for beta-1.91-3 [INFO] extracting crate confab 0.3.2 into /workspace/builds/worker-3-tc2/source [INFO] started tweaking crates.io crate confab 0.3.2 [INFO] removed 0 missing examples [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate confab 0.3.2 [INFO] tweaked toml for crates.io crate confab 0.3.2 written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate confab 0.3.2 on toolchain beta-2025-09-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate confab 0.3.2 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" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 443716f2322dcb976f1dfab85c8df3a1a4688eda18e253e1e28bbbd9ed8a0d73 [INFO] running `Command { std: "docker" "start" "-a" "443716f2322dcb976f1dfab85c8df3a1a4688eda18e253e1e28bbbd9ed8a0d73", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "443716f2322dcb976f1dfab85c8df3a1a4688eda18e253e1e28bbbd9ed8a0d73", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "443716f2322dcb976f1dfab85c8df3a1a4688eda18e253e1e28bbbd9ed8a0d73", kill_on_drop: false }` [INFO] [stdout] 443716f2322dcb976f1dfab85c8df3a1a4688eda18e253e1e28bbbd9ed8a0d73 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 30be1b4cdd0f537e1410740b2d487830181eaa8fe602cd5d95ca9871b5e6df1a [INFO] running `Command { std: "docker" "start" "-a" "30be1b4cdd0f537e1410740b2d487830181eaa8fe602cd5d95ca9871b5e6df1a", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling linux-raw-sys v0.9.4 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling cc v1.2.23 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling camino v1.1.9 [INFO] [stderr] Compiling mio v1.0.3 [INFO] [stderr] Compiling smallvec v1.15.0 [INFO] [stderr] Compiling convert_case v0.7.1 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Compiling socket2 v0.5.9 [INFO] [stderr] Compiling rustls v0.23.27 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling time v0.3.41 [INFO] [stderr] Compiling unicode-general-category v1.0.0 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling time-macros v0.2.22 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling signal-hook-mio v0.2.4 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling terminal_size v0.4.2 [INFO] [stderr] Compiling clap_builder v4.5.38 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling clap_derive v4.5.32 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling tokio v1.45.0 [INFO] [stderr] Compiling derive_more v2.0.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling pin-project v1.1.10 [INFO] [stderr] Compiling thingbuf v0.1.6 [INFO] [stderr] Compiling clap v4.5.38 [INFO] [stderr] Compiling rustls-webpki v0.103.3 [INFO] [stderr] Compiling rustyline-async v0.4.6 [INFO] [stderr] Compiling tokio-util v0.7.15 [INFO] [stderr] Compiling tokio-rustls v0.26.2 [INFO] [stderr] Compiling cargo-platform v0.1.9 [INFO] [stderr] Compiling cargo_metadata v0.19.2 [INFO] [stderr] Compiling confab v0.3.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.42s [INFO] running `Command { std: "docker" "inspect" "30be1b4cdd0f537e1410740b2d487830181eaa8fe602cd5d95ca9871b5e6df1a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "30be1b4cdd0f537e1410740b2d487830181eaa8fe602cd5d95ca9871b5e6df1a", kill_on_drop: false }` [INFO] [stdout] 30be1b4cdd0f537e1410740b2d487830181eaa8fe602cd5d95ca9871b5e6df1a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b4dfc3af4220066d847cf044b6691634131787bb1282d8c70edbae5052350dc3 [INFO] running `Command { std: "docker" "start" "-a" "b4dfc3af4220066d847cf044b6691634131787bb1282d8c70edbae5052350dc3", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling mio v1.0.3 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling socket2 v0.5.9 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling signal-hook-registry v1.4.5 [INFO] [stderr] Compiling memoffset v0.7.1 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling io-lifetimes v1.0.11 [INFO] [stderr] Compiling deranged v0.4.0 [INFO] [stderr] Compiling polling v2.8.0 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling rustix v0.37.28 [INFO] [stderr] Compiling async-io v1.13.0 [INFO] [stderr] Compiling linux-raw-sys v0.3.8 [INFO] [stderr] Compiling fastrand v1.9.0 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling signal-hook-mio v0.2.4 [INFO] [stderr] Compiling waker-fn v1.2.0 [INFO] [stderr] Compiling event-listener v2.5.3 [INFO] [stderr] Compiling nix v0.26.4 [INFO] [stderr] Compiling futures-lite v1.13.0 [INFO] [stderr] Compiling time-macros v0.2.22 [INFO] [stderr] Compiling socket2 v0.4.10 [INFO] [stderr] Compiling async-lock v2.8.0 [INFO] [stderr] Compiling relative-path v1.9.3 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling glob v0.3.2 [INFO] [stderr] Compiling time v0.3.41 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling assert_matches v1.5.0 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling rustls-webpki v0.103.3 [INFO] [stderr] Compiling rustls v0.23.27 [INFO] [stderr] Compiling terminal_size v0.4.2 [INFO] [stderr] Compiling tempfile v3.20.0 [INFO] [stderr] Compiling clap_builder v4.5.38 [INFO] [stderr] Compiling ptyprocess v0.4.1 [INFO] [stderr] Compiling expectrl v0.7.1 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling clap_derive v4.5.32 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling tokio v1.45.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling derive_more v2.0.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling pin-project v1.1.10 [INFO] [stderr] Compiling thingbuf v0.1.6 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling clap v4.5.38 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling rustyline-async v0.4.6 [INFO] [stderr] Compiling tokio-rustls v0.26.2 [INFO] [stderr] Compiling tokio-util v0.7.15 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling camino v1.1.9 [INFO] [stderr] Compiling cargo-platform v0.1.9 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling rstest_macros v0.25.0 [INFO] [stderr] Compiling cargo_metadata v0.19.2 [INFO] [stderr] Compiling serde-jsonlines v0.7.0 [INFO] [stderr] Compiling confab v0.3.2 (/opt/rustwide/workdir) [INFO] [stderr] Compiling rstest v0.25.0 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 55.71s [INFO] running `Command { std: "docker" "inspect" "b4dfc3af4220066d847cf044b6691634131787bb1282d8c70edbae5052350dc3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b4dfc3af4220066d847cf044b6691634131787bb1282d8c70edbae5052350dc3", kill_on_drop: false }` [INFO] [stdout] b4dfc3af4220066d847cf044b6691634131787bb1282d8c70edbae5052350dc3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] fa2fab53318326d59235395b74ab60fc0a7e33db26e808783508bea36143b915 [INFO] running `Command { std: "docker" "start" "-a" "fa2fab53318326d59235395b74ab60fc0a7e33db26e808783508bea36143b915", kill_on_drop: false }` [INFO] [stderr] Compiling confab v0.3.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 5.31s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/confab-9eaa045751868cc1) [INFO] [stdout] [INFO] [stdout] running 65 tests [INFO] [stdout] test codec::tests::test_decode_end_after_limit ... ok [INFO] [stdout] test codec::tests::test_decode_end_before_limit ... ok [INFO] [stdout] test codec::tests::test_decode_end_at_limit ... ok [INFO] [stdout] test codec::tests::test_decode_max_length_minus_1_no_end ... ok [INFO] [stdout] test codec::tests::test_decode_max_length_no_end ... ok [INFO] [stdout] test codec::tests::test_decode_over_max_length_straddling_utf8 ... ok [INFO] [stdout] test codec::tests::test_decode_max_length_plus_1_no_end ... ok [INFO] [stdout] test codec::tests::test_decode_end_right_after_limit ... ok [INFO] [stdout] test codec::tests::test_decode_over_max_length_straddling_utf8_in_latin1 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_01 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_03 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_05 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_02 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_08 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_09 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_10 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_12 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_14 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_16 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_17 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_19 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_07 ... ok [INFO] [stdout] test util::tests::test_chomp::case_5 ... ok [INFO] [stdout] test util::tests::test_chomp::case_6 ... ok [INFO] [stdout] test util::tests::test_chomp::case_7 ... ok [INFO] [stdout] test util::tests::test_chomp::case_8 ... ok [INFO] [stdout] test tests::build_info_and_args ... ok [INFO] [stdout] test util::tests::test_decode_latin1 ... ok [INFO] [stdout] test tests::just_build_info ... ok [INFO] [stdout] test tests::no_args ... ok [INFO] [stdout] test tests::validate_cli ... ok [INFO] [stdout] test util::tests::test_chomp::case_1 ... ok [INFO] [stdout] test util::tests::test_decode_utf8 ... ok [INFO] [stdout] test util::tests::test_decode_utf8latin1_fallback ... ok [INFO] [stdout] test util::tests::test_decode_utf8latin1_good ... ok [INFO] [stdout] test util::tests::test_display_vis ... ok [INFO] [stdout] test util::tests::test_encode_latin1 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_06 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_04 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_15 ... ok [INFO] [stdout] test util::tests::test_chomp::case_2 ... ok [INFO] [stdout] test util::tests::test_chomp::case_3 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_18 ... ok [INFO] [stdout] test util::tests::test_chomp::case_4 ... ok [INFO] [stdout] test util::tests::test_json_str_map_empty ... ok [INFO] [stdout] test util::tests::test_json_str_map_one_field ... ok [INFO] [stdout] test util::tests::test_latin1ify ... ok [INFO] [stdout] test util::tests::test_vis::case_3 ... ok [INFO] [stdout] test util::tests::test_vis::case_4 ... ok [INFO] [stdout] test util::tests::test_vis::case_6 ... ok [INFO] [stdout] test util::tests::test_vis::case_7 ... ok [INFO] [stdout] test util::tests::test_write_json_str::case_1 ... ok [INFO] [stdout] test util::tests::test_write_json_str::case_3 ... ok [INFO] [stdout] test util::tests::test_write_json_str::case_4 ... ok [INFO] [stdout] test util::tests::test_write_json_str::case_6 ... ok [INFO] [stdout] test util::tests::test_write_json_str::case_8 ... ok [INFO] [stdout] test util::tests::test_json_str_map_two_fields ... ok [INFO] [stdout] test util::tests::test_vis::case_1 ... ok [INFO] [stdout] test util::tests::test_write_json_str::case_2 ... ok [INFO] [stdout] test util::tests::test_write_json_str::case_7 ... ok [INFO] [stdout] test util::tests::test_write_json_str::case_5 ... ok [INFO] [stdout] test util::tests::test_vis::case_2 ... ok [INFO] [stdout] test util::tests::test_vis::case_5 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_11 ... ok [INFO] [stdout] test codec::tests::test_find_final_char_boundary::case_13 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 65 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stderr] Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-474b9de14b70c7ba) [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] read: "* Connecting ...\r\n* Connected to 127.0.0.1:38293\r\nconfab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Welcome to the confab Test Server!\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Ping 1\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "* Connecting ...\r\n* Connected to 127.0.0.1:36211\r\n" [INFO] [stdout] read: "confab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h\u{1b}[1G\u{1b}[J< Welcome to the confab Test Server!\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "Hello!\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> H\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> He\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> Hel\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> Hell\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> Hello\u{1b}[1" [INFO] [stdout] read: "G\u{1b}[13C\u{1b}[1G\u{1b}[Jconfab> Hello!\u{1b}[1G\u{1b}[14C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> Hello!\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"Hello!\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "\u{4}" [INFO] [stdout] read: "\n\u{1b}[1G\u{1b}[J\u{1b}[1G\u{1b}[J* Disconnected\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "" [INFO] [stdout] test test_send_ctrl_d ... ok [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Ping 2\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "quit\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> q\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> qu\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> qui\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> quit\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> quit\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< You sent: \"quit\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< Goodbye.\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[" [INFO] [stdout] read: "8C\u{1b}[1G\u{1b}[J* Disconnected\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "" [INFO] [stdout] test test_async_recv ... ok [INFO] [stdout] read: "* Connecting ...\r\n" [INFO] [stdout] read: "* Connected to 127.0.0.1:40229\r\n" [INFO] [stdout] read: "confab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Welcome to the confab Test Server!\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "crlf\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> c\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> cr\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> crl\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> crlf\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> crlf\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"crlf\\r\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< CR LF:\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "quit\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> q\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> qu\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> qui\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> quit\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> quit\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"quit\\r\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< Goodbye.\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J* Disconnected\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "" [INFO] [stdout] test test_send_crlf ... ok [INFO] [stdout] read: "* Connecting ...\r\n* Connected to 127.0.0.1:44331\r\nconfab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Welcome to the confab Test Server!\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "crlf\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> c\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> cr\u{1b}[1G\u{1b}[10C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> crl\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> crlf\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> crlf\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"crlf\"\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< CR LF:\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "quit\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> q\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> qu\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> qui\u{1b}[1G\u{1b}[11C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> quit\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J> quit\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"quit\"\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Goodbye.\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J* Disconnected\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "" [INFO] [stdout] test test_no_crlf_recv_crlf ... ok [INFO] [stdout] read: "* Connecting ...\r\n* Connected to 127.0.0.1:46245\r\nconfab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h\u{1b}[1G\u{1b}[J< Welcome to the confab Test Server!\n\u{1b}[1G\u{1b}[1Gconfa" [INFO] [stdout] read: "b> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "Hello!\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> H\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> He\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> Hel\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> Hell\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> Hello\u{1b}[1" [INFO] [stdout] read: "G\u{1b}[13C\u{1b}[1G\u{1b}[Jconfab> Hello!\u{1b}[1G\u{1b}[14C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J> Hello!\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "* Connecting ...\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"Hello!\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "quit\r\n" [INFO] [stdout] read: "* Connected to 127.0.0.1:32901" [INFO] [stdout] read: "\r\n" [INFO] [stdout] read: "confab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Welcome to the confab Test Server!\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "pieces\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> q\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> qu\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> qui\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> quit\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> p\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> pi\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> pie\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> piec\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> piece\u{1b}[1" [INFO] [stdout] read: "G\u{1b}[13C\u{1b}[1G\u{1b}[Jconfab> pieces\u{1b}[1G\u{1b}[14C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J> pieces\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> quit\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< You sent: \"quit\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< Goodbye.\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[" [INFO] [stdout] read: "8C\u{1b}[1G\u{1b}[J* Disconnected\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"pieces\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "" [INFO] [stdout] test test_quit_session ... ok [INFO] [stdout] read: "[07:34:25] * Connecting ...\r\n" [INFO] [stdout] read: "[07:34:25] * Connected to 127.0.0.1:45485" [INFO] [stdout] read: "\r\nconfab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J[07:34:25] < Welcome to the confab Test Server!\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "* Connecting ...\r\n* Connected to 127.0.0.1:35265\r\n" [INFO] [stdout] read: "< Welcome to the confab Test Server!\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< This line is|being sent in|pieces.|Did you get it all?\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "quit\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> q\u{1b}[1G\u{1b}[9C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> qu\u{1b}[1G\u{1b}[10C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> qui\u{1b}[1G\u{1b}[11C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> quit\u{1b}[1G\u{1b}[12C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> quit\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"quit\"\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Goodbye.\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J* Disconnected\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "" [INFO] [stdout] test test_piecemeal_line ... ok [INFO] [stdout] read: "* Connecting ..." [INFO] [stdout] read: "\r\n" [INFO] [stdout] read: "* Connected to 127.0.0.1:46713" [INFO] [stdout] read: "\r\n" [INFO] [stdout] read: "confab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Welcome to the confab Test Server!\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "bytes\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> b\u{1b}[1G\u{1b}[9C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> by\u{1b}[1G\u{1b}[10C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> byt\u{1b}[1G\u{1b}[11C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> byte\u{1b}[1G\u{1b}[12C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> bytes\u{1b}[1G\u{1b}[13C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J> bytes\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< You sent: \"bytes\"\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "* Connecting ..." [INFO] [stdout] read: "\r\n* Connected to 127.0.0.1:42753" [INFO] [stdout] read: "\r\nconfab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Here is some non-UTF-8 data:\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< Latin-1: Libert�, �galit�, fraternit�\n\u{1b}[1G\u{1b}[1Gcon" [INFO] [stdout] read: "fab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< General garbage: ����\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "quit\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> q\u{1b}[1G\u{1b}[9C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> qu\u{1b}[1G\u{1b}[10C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> qui\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> quit\u{1b}[1G\u{1b}[12C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Welcome to the confab Test Server!\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "Fëanor is an 🧝. Frosty is a ☃.\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> quit\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> F\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> Fë\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> Fëa\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> Fëan\u{1b}[1G\u{1b}[12C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëano\u{1b}[1G\u{1b}[13C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor\u{1b}[1G\u{1b}[14C\u{1b}[1G\u{1b}[Jconfab> Fëanor \u{1b}[1G\u{1b}[15C\u{1b}[1G\u{1b}[Jconfab> Fëanor i\u{1b}[1G\u{1b}[16C\u{1b}[1G\u{1b}[Jconfab> Fëanor is\u{1b}[1G\u{1b}[1" [INFO] [stdout] read: "7C\u{1b}[1G\u{1b}[Jconfab> Fëanor is \u{1b}[1G\u{1b}[18C\u{1b}[1G\u{1b}[Jconfab> Fëanor is a\u{1b}[1G\u{1b}[19C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an\u{1b}[1G\u{1b}[20C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< You sent: \"quit\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an \u{1b}[1G\u{1b}[21C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝\u{1b}[1G\u{1b}[23C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝.\u{1b}[1G\u{1b}[24C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Goodbye.\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. \u{1b}[1G\u{1b}[25C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. \u{1b}[1G\u{1b}[26C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. F\u{1b}[1G\u{1b}[27C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J* Disconnected\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Fr\u{1b}[1G\u{1b}[28C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Fro\u{1b}[1G\u{1b}[29C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝" [INFO] [stdout] read: ". Fros\u{1b}[1G\u{1b}[30C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frost\u{1b}[1G\u{1b}[31C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty\u{1b}[1G\u{1b}[32C\u{1b}[1G\u{1b}[Jconf" [INFO] [stdout] read: "ab> Fëanor is an 🧝. Frosty \u{1b}[1G\u{1b}[33C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty i\u{1b}[1G\u{1b}[34C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝." [INFO] [stdout] read: " Frosty is\u{1b}[1G\u{1b}[35C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty is \u{1b}[1G\u{1b}[36C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty is a\u{1b}[1G\u{1b}[" [INFO] [stdout] read: "37C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty is a \u{1b}[1G\u{1b}[38C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty is a ☃\u{1b}[1G\u{1b}[39C\u{1b}[1G\u{1b}[Jc" [INFO] [stdout] read: "onfab> Fëanor is an 🧝. Frosty is a ☃.\u{1b}[1G\u{1b}[40C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J> Fëanor is an ?. Frosty is a ?.\n\u{1b}[1G\u{1b}[1Gco" [INFO] [stdout] read: "" [INFO] [stdout] read: "nfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: b\"F\\xebanor is an ?. Frosty is a ?.\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "quit\r\n" [INFO] [stdout] test test_receive_non_utf8 ... ok [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> q\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> qu\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> qui\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> quit\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> quit\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"quit\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Goodbye.\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J* Disconnected\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "" [INFO] [stdout] test test_send_latin1 ... ok [INFO] [stdout] read: "* Connecting ...\r\n" [INFO] [stdout] read: "* Connected to 127.0.0.1:43965\r\n" [INFO] [stdout] read: "< Welcome to the confab Test Server!\r\n" [INFO] [stdout] read: "* Connecting ...\r\n* Connected to 127.0.0.1:39189\r\nconfab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Welcome to the confab Test Server!\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "long\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> l\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> lo\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> lon\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> long\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> long\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"long\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "* Connecting ...\r\n" [INFO] [stdout] read: "* Connected to 127.0.0.1:43147\r\n" [INFO] [stdout] read: "confab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h\u{1b}[1G\u{1b}[J< Welcome to the confab Test Server!\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "bytes\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> b\u{1b}[1G\u{1b}[9C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> by\u{1b}[1G\u{1b}[10C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> byt\u{1b}[1G\u{1b}[11C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> byte\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> bytes\u{1b}[1G\u{1b}[13C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J> bytes\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"bytes\"\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< This is a very long line. I'm not going t\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< o bore you with the details, so instead I'\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< ll bore you with some mangled Cicero: Lore\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< m ipsum dolor sit amet, consectetur adipis\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< icing elit, sed do eiusmod tempor incididu\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< nt ut labore et dolore magna aliqua. Ut e\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< nim ad minim veniam, quis nostrud exercita\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< tion ullamco laboris nisi ut aliquip ex ea\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< commodo consequat.\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "quit\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> q\u{1b}[1G\u{1b}[9C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> qu\u{1b}[1G\u{1b}[10C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> qui\u{1b}[1G\u{1b}[11C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> quit\u{1b}[1G\u{1b}[12C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J> quit\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J< You sent: \"quit\"\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Goodbye.\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J* Disconnected\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "" [INFO] [stdout] test test_long_line ... ok [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Here is some non-UTF-8 data:\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Latin-1: Liberté, égalité, fraternité\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< General garbage: \u{1b}[7m\u{1b}[0m«Íï\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "quit\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> q\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> qu\u{1b}[1G\u{1b}[10C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> qui\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> quit\u{1b}[1G\u{1b}[12C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J> quit\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"quit\"\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Goodbye.\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J* Disconnected\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "" [INFO] [stdout] test test_receive_non_utf8_with_latin1_fallback ... ok [INFO] [stdout] read: "* Connecting ...\r\n" [INFO] [stdout] read: "* Connected to 127.0.0.1:35679\r\n" [INFO] [stdout] read: "confab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Welcome to the confab Test Server!\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "Fëanor is an 🧝. Frosty is a ☃.\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> F\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> Fë\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> Fëa\u{1b}[1G\u{1b}[11C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëan\u{1b}[1G\u{1b}[12C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëano\u{1b}[1G\u{1b}[13C\u{1b}[1G\u{1b}[Jconfab> Fëanor\u{1b}[1G\u{1b}[14C\u{1b}[1G\u{1b}[Jconfab> Fëanor \u{1b}[1G\u{1b}[15C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor i\u{1b}[1G\u{1b}[16C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is\u{1b}[1G\u{1b}[17C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is \u{1b}[1G\u{1b}[18C\u{1b}[1G\u{1b}[Jconfab> Fëanor is a\u{1b}[1G\u{1b}[19C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an\u{1b}[1G\u{1b}[20C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an \u{1b}[1G\u{1b}[21C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝\u{1b}[1G\u{1b}[23C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝.\u{1b}[1G\u{1b}[24C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. \u{1b}[1G\u{1b}[25C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. \u{1b}[1G\u{1b}[26C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. F\u{1b}[1G\u{1b}[27C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Fr\u{1b}[1G\u{1b}[28C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Fro\u{1b}[1G\u{1b}[29C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Fros\u{1b}[1G\u{1b}[30C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frost\u{1b}[1G\u{1b}[31C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty\u{1b}[1G\u{1b}[32C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty \u{1b}[1G\u{1b}[33C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty i\u{1b}[1G\u{1b}[34C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty is\u{1b}[1G\u{1b}[35C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty is \u{1b}[1G\u{1b}[36C\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty is a\u{1b}[1G\u{1b}[37C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty is a \u{1b}[1G\u{1b}[38C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty is a ☃\u{1b}[1G\u{1b}[39C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Fëanor is an 🧝. Frosty is a ☃.\u{1b}[1G\u{1b}[40C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> Fëanor is an 🧝. Frosty is a ☃.\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"Fëanor is an 🧝. Frosty is a ☃.\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "quit\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> q\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> qu\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> qui\u{1b}[1G\u{1b}[11C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> quit\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> quit\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"quit\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Goodbye.\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J* Disconnected\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "" [INFO] [stdout] test test_send_utf8 ... ok [INFO] [stdout] read: "> Hello!\r\n" [INFO] [stdout] read: "< You sent: \"Hello!\"\r\n" [INFO] [stdout] read: "> Hello!\r\n" [INFO] [stdout] read: "< You sent: \"Hello!\"" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J[07:34:26] < Ping 1\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "> quit\r\n" [INFO] [stdout] read: "< You sent: \"quit\"\r\n< Goodbye.\r\n" [INFO] [stdout] read: "* Disconnected\r\n" [INFO] [stdout] read: "" [INFO] [stdout] test quit_from_startup_script ... ok [INFO] [stdout] read: "\r\n" [INFO] [stdout] read: "> This is from a startup script.\r\n" [INFO] [stdout] read: "< You sent: \"This is from a startup script.\"\r\n" [INFO] [stdout] read: "confab> \u{1b}[1G\u{1b}[8C\u{1b}[?7h" [INFO] [stdout] write: "Hello again!\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> H\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> He\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> Hel\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> Hell\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> Hello\u{1b}[1" [INFO] [stdout] read: "G\u{1b}[13C\u{1b}[1G\u{1b}[Jconfab> Hello \u{1b}[1G\u{1b}[14C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Hello a\u{1b}[1G\u{1b}[15C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Hello ag\u{1b}[1G\u{1b}[16C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Hello aga\u{1b}[1G\u{1b}[17C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Hello agai\u{1b}[1G\u{1b}[18C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> Hello again\u{1b}[1G\u{1b}[19C\u{1b}[1G\u{1b}[Jconfab> Hello again!\u{1b}[1G\u{1b}[20C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> Hello again!\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"Hello again!\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "This is from the prompt.\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> T\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> Th\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> Thi\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> This\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> This \u{1b}[1" [INFO] [stdout] read: "G\u{1b}[13C\u{1b}[1G\u{1b}[Jconfab> This i\u{1b}[1G\u{1b}[14C\u{1b}[1G\u{1b}[Jconfab> This is\u{1b}[1G\u{1b}[15C\u{1b}[1G\u{1b}[Jconfab> This is \u{1b}[1G\u{1b}[16C\u{1b}[1G\u{1b}[Jconfab> This is f\u{1b}[1G\u{1b}" [INFO] [stdout] read: "[17C\u{1b}[1G\u{1b}[Jconfab> This is fr\u{1b}[1G\u{1b}[18C\u{1b}[1G\u{1b}[Jconfab> This is fro\u{1b}[1G\u{1b}[19C\u{1b}[1G\u{1b}[Jconfab> This is from\u{1b}[1G\u{1b}[20C\u{1b}[1G\u{1b}[Jconfab> This" [INFO] [stdout] read: " is from \u{1b}[1G\u{1b}[21C\u{1b}[1G\u{1b}[Jconfab> This is from t\u{1b}[1G\u{1b}[22C\u{1b}[1G\u{1b}[Jconfab> This is from th\u{1b}[1G\u{1b}[23C\u{1b}[1G\u{1b}[Jconfab> This is from the\u{1b}[" [INFO] [stdout] read: "1G\u{1b}[24C\u{1b}[1G\u{1b}[Jconfab> This is from the \u{1b}[1G\u{1b}[25C\u{1b}[1G\u{1b}[Jconfab> This is from the p\u{1b}[1G\u{1b}[26C\u{1b}[1G\u{1b}[Jconfab> This is from the pr\u{1b}[1G" [INFO] [stdout] read: "\u{1b}[27C\u{1b}[1G\u{1b}[Jconfab> This is from the pro\u{1b}[1G\u{1b}[28C\u{1b}[1G\u{1b}[Jconfab> This is from the prom\u{1b}[1G\u{1b}[29C\u{1b}[1G\u{1b}[Jconfab> This is from the pr" [INFO] [stdout] read: "omp\u{1b}[1G\u{1b}[30C\u{1b}[1G\u{1b}[Jconfab> This is from the prompt\u{1b}[1G\u{1b}[31C\u{1b}[1G\u{1b}[Jconfab> This is from the prompt.\u{1b}[1G\u{1b}[32C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[" [INFO] [stdout] read: "8C\u{1b}[1G\u{1b}[J> This is from the prompt.\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"This is from the prompt.\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "quit\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> q\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> qu\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> qui\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> quit\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J> quit\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< You sent: \"quit\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J< Goodbye.\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J* Disconnected\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "" [INFO] [stdout] test startup_script ... ok [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J[07:34:27] < Ping 2\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] write: "quit\r\n" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[Jconfab> q\u{1b}[1G\u{1b}[9C\u{1b}[1G\u{1b}[Jconfab> qu\u{1b}[1G\u{1b}[10C\u{1b}[1G\u{1b}[Jconfab> qui\u{1b}[1G\u{1b}[11C\u{1b}[1G\u{1b}[Jconfab> quit\u{1b}[1G\u{1b}[12C\u{1b}[1G\u{1b}[Jconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J[07:34:27] > quit\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J[07:34:27] < You sent: \"quit\"\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J[07:34:27] < Goodbye.\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C" [INFO] [stdout] read: "\u{1b}[1G\u{1b}[J[07:34:27] * Disconnected\n\u{1b}[1G\u{1b}[1Gconfab> \u{1b}[1G\u{1b}[8C\u{1b}[1G\u{1b}[J" [INFO] [stdout] read: "" [INFO] [stdout] test test_show_times ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.23s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "fa2fab53318326d59235395b74ab60fc0a7e33db26e808783508bea36143b915", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fa2fab53318326d59235395b74ab60fc0a7e33db26e808783508bea36143b915", kill_on_drop: false }` [INFO] [stdout] fa2fab53318326d59235395b74ab60fc0a7e33db26e808783508bea36143b915