[INFO] fetching crate psl 2.0.40...
[INFO] testing psl-2.0.40 against 1.54.0 for beta-1.55-1
[INFO] extracting crate psl 2.0.40 into /workspace/builds/worker-43/source
[INFO] validating manifest of crates.io crate psl 2.0.40 on toolchain 1.54.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate psl 2.0.40
[INFO] finished tweaking crates.io crate psl 2.0.40
[INFO] tweaked toml for crates.io crate psl 2.0.40 written to /workspace/builds/worker-43/source/Cargo.toml
[INFO] crate crates.io crate psl 2.0.40 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-43/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-43/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8f50ad8bfe330f556abf624e20e3048e4169874846283811e08936fcc6a511ff
[INFO] running `Command { std: "docker" "start" "-a" "8f50ad8bfe330f556abf624e20e3048e4169874846283811e08936fcc6a511ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8f50ad8bfe330f556abf624e20e3048e4169874846283811e08936fcc6a511ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8f50ad8bfe330f556abf624e20e3048e4169874846283811e08936fcc6a511ff", kill_on_drop: false }`
[INFO] [stdout] 8f50ad8bfe330f556abf624e20e3048e4169874846283811e08936fcc6a511ff
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-43/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-43/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1461b01299edea7eb89cc00c61b8690c28c21399abb6d19bec890db9da6e1b46
[INFO] running `Command { std: "docker" "start" "-a" "1461b01299edea7eb89cc00c61b8690c28c21399abb6d19bec890db9da6e1b46", kill_on_drop: false }`
[INFO] [stderr]    Compiling psl-types v2.0.7
[INFO] [stderr]    Compiling psl v2.0.40 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 7.84s
[INFO] running `Command { std: "docker" "inspect" "1461b01299edea7eb89cc00c61b8690c28c21399abb6d19bec890db9da6e1b46", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1461b01299edea7eb89cc00c61b8690c28c21399abb6d19bec890db9da6e1b46", kill_on_drop: false }`
[INFO] [stdout] 1461b01299edea7eb89cc00c61b8690c28c21399abb6d19bec890db9da6e1b46
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-43/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-43/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0240dbbe32d27768216131824c6e7d30af449012ce96bbd38afbae11f832fd5f
[INFO] running `Command { std: "docker" "start" "-a" "0240dbbe32d27768216131824c6e7d30af449012ce96bbd38afbae11f832fd5f", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling syn v1.0.74
[INFO] [stderr]    Compiling libc v0.2.98
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.5
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.5
[INFO] [stderr]    Compiling strsim v0.9.3
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling scopeguard v1.1.0
[INFO] [stderr]    Compiling rayon-core v1.9.1
[INFO] [stderr]    Compiling const_fn v0.4.8
[INFO] [stderr]    Compiling derive_builder v0.9.0
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]    Compiling memoffset v0.6.4
[INFO] [stderr]    Compiling rayon v1.5.1
[INFO] [stderr]    Compiling standback v0.2.17
[INFO] [stderr]    Compiling time v0.2.27
[INFO] [stderr]    Compiling crossbeam-channel v0.5.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.0
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling colored v2.0.0
[INFO] [stderr]    Compiling darling_core v0.10.2
[INFO] [stderr]    Compiling darling_macro v0.10.2
[INFO] [stderr]    Compiling time-macros-impl v0.1.2
[INFO] [stderr]    Compiling derive-new v0.5.9
[INFO] [stderr]    Compiling time-macros v0.1.1
[INFO] [stderr]    Compiling darling v0.10.2
[INFO] [stderr]    Compiling derive_builder_core v0.9.0
[INFO] [stderr]    Compiling rspec v1.0.0
[INFO] [stderr]    Compiling psl v2.0.40 (/opt/rustwide/workdir)
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> tests/list.rs:44:36
[INFO] [stdout]    |
[INFO] [stdout] 44 |   ...                   panic!(format!(
[INFO] [stdout]    |  ______________________________^
[INFO] [stdout] 45 | | ...                       "line {} of the test file doesn't seem to be valid",
[INFO] [stdout] 46 | | ...                       i
[INFO] [stdout] 47 | | ...                   ));
[INFO] [stdout]    | |_______________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_fmt_panic)]` on by default
[INFO] [stdout]    = note: this is no longer accepted in Rust 2021
[INFO] [stdout]    = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 44 |                             panic!(
[INFO] [stdout] 45 |                                 "line {} of the test file doesn't seem to be valid",
[INFO] [stdout] 46 |                                 i
[INFO] [stdout] 47 |                             );
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> tests/list.rs:68:36
[INFO] [stdout]    |
[INFO] [stdout] 68 |   ...                   panic!(format!(
[INFO] [stdout]    |  ______________________________^
[INFO] [stdout] 69 | | ...                       "line {} of the test file doesn't seem to be valid",
[INFO] [stdout] 70 | | ...                       i
[INFO] [stdout] 71 | | ...                   ));
[INFO] [stdout]    | |_______________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this is no longer accepted in Rust 2021
[INFO] [stdout]    = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 68 |                             panic!(
[INFO] [stdout] 69 |                                 "line {} of the test file doesn't seem to be valid",
[INFO] [stdout] 70 |                                 i
[INFO] [stdout] 71 |                             );
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 35.44s
[INFO] running `Command { std: "docker" "inspect" "0240dbbe32d27768216131824c6e7d30af449012ce96bbd38afbae11f832fd5f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0240dbbe32d27768216131824c6e7d30af449012ce96bbd38afbae11f832fd5f", kill_on_drop: false }`
[INFO] [stdout] 0240dbbe32d27768216131824c6e7d30af449012ce96bbd38afbae11f832fd5f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-43/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-43/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 468c6888aea08b2e6f5aa952e478bb77097df75a3d9e5d011098e566d0c4d4c6
[INFO] running `Command { std: "docker" "start" "-a" "468c6888aea08b2e6f5aa952e478bb77097df75a3d9e5d011098e566d0c4d4c6", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]   --> tests/list.rs:44:36
[INFO] [stderr]    |
[INFO] [stderr] 44 |   ...                   panic!(format!(
[INFO] [stderr]    |  ______________________________^
[INFO] [stderr] 45 | | ...                       "line {} of the test file doesn't seem to be valid",
[INFO] [stderr] 46 | | ...                       i
[INFO] [stderr] 47 | | ...                   ));
[INFO] [stderr]    | |_______________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_fmt_panic)]` on by default
[INFO] [stderr]    = note: this is no longer accepted in Rust 2021
[INFO] [stderr]    = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]    |
[INFO] [stderr] 44 |                             panic!(
[INFO] [stderr] 45 |                                 "line {} of the test file doesn't seem to be valid",
[INFO] [stderr] 46 |                                 i
[INFO] [stderr] 47 |                             );
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]   --> tests/list.rs:68:36
[INFO] [stderr]    |
[INFO] [stderr] 68 |   ...                   panic!(format!(
[INFO] [stderr]    |  ______________________________^
[INFO] [stderr] 69 | | ...                       "line {} of the test file doesn't seem to be valid",
[INFO] [stderr] 70 | | ...                       i
[INFO] [stderr] 71 | | ...                   ));
[INFO] [stderr]    | |_______________________^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this is no longer accepted in Rust 2021
[INFO] [stderr]    = note: the panic!() macro supports formatting, so there's no need for the format!() macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]    |
[INFO] [stderr] 68 |                             panic!(
[INFO] [stderr] 69 |                                 "line {} of the test file doesn't seem to be valid",
[INFO] [stderr] 70 |                                 i
[INFO] [stderr] 71 |                             );
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: 2 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.83s
[INFO] [stderr]      Running unittests (/opt/rustwide/target/debug/deps/psl-65485deb22de9aad)
[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/list.rs (/opt/rustwide/target/debug/deps/list-c5783c7e397efc3d)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] 
[INFO] [stdout] tests:
[INFO] [stdout] 
[INFO] [stdout] Describe "the official test"
[INFO] [stdout]   When "input is ``"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `COM`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `example.COM`"
[INFO] [stdout]     It "means the root domain should be `example.com`" ... ok
[INFO] [stdout]     It "also means the suffix should be `com`" ... ok
[INFO] [stdout]   When "input is `WwW.example.COM`"
[INFO] [stdout]     It "means the root domain should be `example.com`" ... ok
[INFO] [stdout]     It "also means the suffix should be `com`" ... ok
[INFO] [stdout]   When "input is `.com`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `.example`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `.example.com`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `.example.example`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `example`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `example.example`"
[INFO] [stdout]     It "means the root domain should be `example.example`" ... ok
[INFO] [stdout]     It "also means the suffix should be `example`" ... ok
[INFO] [stdout]   When "input is `b.example.example`"
[INFO] [stdout]     It "means the root domain should be `example.example`" ... ok
[INFO] [stdout]     It "also means the suffix should be `example`" ... ok
[INFO] [stdout]   When "input is `a.b.example.example`"
[INFO] [stdout]     It "means the root domain should be `example.example`" ... ok
[INFO] [stdout]     It "also means the suffix should be `example`" ... ok
[INFO] [stdout]   When "input is `biz`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `domain.biz`"
[INFO] [stdout]     It "means the root domain should be `domain.biz`" ... ok
[INFO] [stdout]     It "also means the suffix should be `biz`" ... ok
[INFO] [stdout]   When "input is `b.domain.biz`"
[INFO] [stdout]     It "means the root domain should be `domain.biz`" ... ok
[INFO] [stdout]     It "also means the suffix should be `biz`" ... ok
[INFO] [stdout]   When "input is `a.b.domain.biz`"
[INFO] [stdout]     It "means the root domain should be `domain.biz`" ... ok
[INFO] [stdout]     It "also means the suffix should be `biz`" ... ok
[INFO] [stdout]   When "input is `com`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `example.com`"
[INFO] [stdout]     It "means the root domain should be `example.com`" ... ok
[INFO] [stdout]     It "also means the suffix should be `com`" ... ok
[INFO] [stdout]   When "input is `b.example.com`"
[INFO] [stdout]     It "means the root domain should be `example.com`" ... ok
[INFO] [stdout]     It "also means the suffix should be `com`" ... ok
[INFO] [stdout]   When "input is `a.b.example.com`"
[INFO] [stdout]     It "means the root domain should be `example.com`" ... ok
[INFO] [stdout]     It "also means the suffix should be `com`" ... ok
[INFO] [stdout]   When "input is `uk.com`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `example.uk.com`"
[INFO] [stdout]     It "means the root domain should be `example.uk.com`" ... ok
[INFO] [stdout]     It "also means the suffix should be `uk.com`" ... ok
[INFO] [stdout]   When "input is `b.example.uk.com`"
[INFO] [stdout]     It "means the root domain should be `example.uk.com`" ... ok
[INFO] [stdout]     It "also means the suffix should be `uk.com`" ... ok
[INFO] [stdout]   When "input is `a.b.example.uk.com`"
[INFO] [stdout]     It "means the root domain should be `example.uk.com`" ... ok
[INFO] [stdout]     It "also means the suffix should be `uk.com`" ... ok
[INFO] [stdout]   When "input is `test.ac`"
[INFO] [stdout]     It "means the root domain should be `test.ac`" ... ok
[INFO] [stdout]     It "also means the suffix should be `ac`" ... ok
[INFO] [stdout]   When "input is `mm`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `c.mm`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `b.c.mm`"
[INFO] [stdout]     It "means the root domain should be `b.c.mm`" ... ok
[INFO] [stdout]     It "also means the suffix should be `c.mm`" ... ok
[INFO] [stdout]   When "input is `a.b.c.mm`"
[INFO] [stdout]     It "means the root domain should be `b.c.mm`" ... ok
[INFO] [stdout]     It "also means the suffix should be `c.mm`" ... ok
[INFO] [stdout]   When "input is `jp`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `test.jp`"
[INFO] [stdout]     It "means the root domain should be `test.jp`" ... ok
[INFO] [stdout]     It "also means the suffix should be `jp`" ... ok
[INFO] [stdout]   When "input is `www.test.jp`"
[INFO] [stdout]     It "means the root domain should be `test.jp`" ... ok
[INFO] [stdout]     It "also means the suffix should be `jp`" ... ok
[INFO] [stdout]   When "input is `ac.jp`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `test.ac.jp`"
[INFO] [stdout]     It "means the root domain should be `test.ac.jp`" ... ok
[INFO] [stdout]     It "also means the suffix should be `ac.jp`" ... ok
[INFO] [stdout]   When "input is `www.test.ac.jp`"
[INFO] [stdout]     It "means the root domain should be `test.ac.jp`" ... ok
[INFO] [stdout]     It "also means the suffix should be `ac.jp`" ... ok
[INFO] [stdout]   When "input is `kyoto.jp`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `test.kyoto.jp`"
[INFO] [stdout]     It "means the root domain should be `test.kyoto.jp`" ... ok
[INFO] [stdout]     It "also means the suffix should be `kyoto.jp`" ... ok
[INFO] [stdout]   When "input is `ide.kyoto.jp`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `b.ide.kyoto.jp`"
[INFO] [stdout]     It "means the root domain should be `b.ide.kyoto.jp`" ... ok
[INFO] [stdout]     It "also means the suffix should be `ide.kyoto.jp`" ... ok
[INFO] [stdout]   When "input is `a.b.ide.kyoto.jp`"
[INFO] [stdout]     It "means the root domain should be `b.ide.kyoto.jp`" ... ok
[INFO] [stdout]     It "also means the suffix should be `ide.kyoto.jp`" ... ok
[INFO] [stdout]   When "input is `c.kobe.jp`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `b.c.kobe.jp`"
[INFO] [stdout]     It "means the root domain should be `b.c.kobe.jp`" ... ok
[INFO] [stdout]     It "also means the suffix should be `c.kobe.jp`" ... ok
[INFO] [stdout]   When "input is `a.b.c.kobe.jp`"
[INFO] [stdout]     It "means the root domain should be `b.c.kobe.jp`" ... ok
[INFO] [stdout]     It "also means the suffix should be `c.kobe.jp`" ... ok
[INFO] [stdout]   When "input is `city.kobe.jp`"
[INFO] [stdout]     It "means the root domain should be `city.kobe.jp`" ... ok
[INFO] [stdout]     It "also means the suffix should be `kobe.jp`" ... ok
[INFO] [stdout]   When "input is `www.city.kobe.jp`"
[INFO] [stdout]     It "means the root domain should be `city.kobe.jp`" ... ok
[INFO] [stdout]     It "also means the suffix should be `kobe.jp`" ... ok
[INFO] [stdout]   When "input is `ck`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `test.ck`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `b.test.ck`"
[INFO] [stdout]     It "means the root domain should be `b.test.ck`" ... ok
[INFO] [stdout]     It "also means the suffix should be `test.ck`" ... ok
[INFO] [stdout]   When "input is `a.b.test.ck`"
[INFO] [stdout]     It "means the root domain should be `b.test.ck`" ... ok
[INFO] [stdout]     It "also means the suffix should be `test.ck`" ... ok
[INFO] [stdout]   When "input is `www.ck`"
[INFO] [stdout]     It "means the root domain should be `www.ck`" ... ok
[INFO] [stdout]     It "also means the suffix should be `ck`" ... ok
[INFO] [stdout]   When "input is `www.www.ck`"
[INFO] [stdout]     It "means the root domain should be `www.ck`" ... ok
[INFO] [stdout]     It "also means the suffix should be `ck`" ... ok
[INFO] [stdout]   When "input is `us`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `test.us`"
[INFO] [stdout]     It "means the root domain should be `test.us`" ... ok
[INFO] [stdout]     It "also means the suffix should be `us`" ... ok
[INFO] [stdout]   When "input is `www.test.us`"
[INFO] [stdout]     It "means the root domain should be `test.us`" ... ok
[INFO] [stdout]     It "also means the suffix should be `us`" ... ok
[INFO] [stdout]   When "input is `ak.us`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `test.ak.us`"
[INFO] [stdout]     It "means the root domain should be `test.ak.us`" ... ok
[INFO] [stdout]     It "also means the suffix should be `ak.us`" ... ok
[INFO] [stdout]   When "input is `www.test.ak.us`"
[INFO] [stdout]     It "means the root domain should be `test.ak.us`" ... ok
[INFO] [stdout]     It "also means the suffix should be `ak.us`" ... ok
[INFO] [stdout]   When "input is `k12.ak.us`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `test.k12.ak.us`"
[INFO] [stdout]     It "means the root domain should be `test.k12.ak.us`" ... ok
[INFO] [stdout]     It "also means the suffix should be `k12.ak.us`" ... ok
[INFO] [stdout]   When "input is `www.test.k12.ak.us`"
[INFO] [stdout]     It "means the root domain should be `test.k12.ak.us`" ... ok
[INFO] [stdout]     It "also means the suffix should be `k12.ak.us`" ... ok
[INFO] [stdout]   When "input is `食狮.com.cn`"
[INFO] [stdout]     It "means the root domain should be `食狮.com.cn`" ... ok
[INFO] [stdout]     It "also means the suffix should be `com.cn`" ... ok
[INFO] [stdout]   When "input is `食狮.公司.cn`"
[INFO] [stdout]     It "means the root domain should be `食狮.公司.cn`" ... ok
[INFO] [stdout]     It "also means the suffix should be `公司.cn`" ... ok
[INFO] [stdout]   When "input is `www.食狮.公司.cn`"
[INFO] [stdout]     It "means the root domain should be `食狮.公司.cn`" ... ok
[INFO] [stdout]     It "also means the suffix should be `公司.cn`" ... ok
[INFO] [stdout]   When "input is `shishi.公司.cn`"
[INFO] [stdout]     It "means the root domain should be `shishi.公司.cn`" ... ok
[INFO] [stdout]     It "also means the suffix should be `公司.cn`" ... ok
[INFO] [stdout]   When "input is `公司.cn`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `食狮.中国`"
[INFO] [stdout]     It "means the root domain should be `食狮.中国`" ... ok
[INFO] [stdout]     It "also means the suffix should be `中国`" ... ok
[INFO] [stdout]   When "input is `www.食狮.中国`"
[INFO] [stdout]     It "means the root domain should be `食狮.中国`" ... ok
[INFO] [stdout]     It "also means the suffix should be `中国`" ... ok
[INFO] [stdout]   When "input is `shishi.中国`"
[INFO] [stdout]     It "means the root domain should be `shishi.中国`" ... ok
[INFO] [stdout]     It "also means the suffix should be `中国`" ... ok
[INFO] [stdout]   When "input is `中国`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `xn--85x722f.com.cn`"
[INFO] [stdout]     It "means the root domain should be `xn--85x722f.com.cn`" ... ok
[INFO] [stdout]     It "also means the suffix should be `com.cn`" ... ok
[INFO] [stdout]   When "input is `xn--85x722f.xn--55qx5d.cn`"
[INFO] [stdout]     It "means the root domain should be `xn--85x722f.xn--55qx5d.cn`" ... ok
[INFO] [stdout]     It "also means the suffix should be `xn--55qx5d.cn`" ... ok
[INFO] [stdout]   When "input is `www.xn--85x722f.xn--55qx5d.cn`"
[INFO] [stdout]     It "means the root domain should be `xn--85x722f.xn--55qx5d.cn`" ... ok
[INFO] [stdout]     It "also means the suffix should be `xn--55qx5d.cn`" ... ok
[INFO] [stdout]   When "input is `shishi.xn--55qx5d.cn`"
[INFO] [stdout]     It "means the root domain should be `shishi.xn--55qx5d.cn`" ... ok
[INFO] [stdout]     It "also means the suffix should be `xn--55qx5d.cn`" ... ok
[INFO] [stdout]   When "input is `xn--55qx5d.cn`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout]   When "input is `xn--85x722f.xn--fiqs8s`"
[INFO] [stdout]     It "means the root domain should be `xn--85x722f.xn--fiqs8s`" ... ok
[INFO] [stdout]     It "also means the suffix should be `xn--fiqs8s`" ... ok
[INFO] [stdout]   When "input is `www.xn--85x722f.xn--fiqs8s`"
[INFO] [stdout]     It "means the root domain should be `xn--85x722f.xn--fiqs8s`" ... ok
[INFO] [stdout]     It "also means the suffix should be `xn--fiqs8s`" ... ok
[INFO] [stdout]   When "input is `shishi.xn--fiqs8s`"
[INFO] [stdout]     It "means the root domain should be `shishi.xn--fiqs8s`" ... ok
[INFO] [stdout]     It "also means the suffix should be `xn--fiqs8s`" ... ok
[INFO] [stdout]   When "input is `xn--fiqs8s`"
[INFO] [stdout]     It "means the root domain is invalid" ... ok
[INFO] [stdout] 
[INFO] [stdout] duration: 0.355s.
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 130 passed; 0 failed; 0 ignored
[INFO] [stdout] 
[INFO] [stdout] tests:
[INFO] [stdout] 
[INFO] [stdout] Describe "suffix tests"
[INFO] [stdout]   When "input is `gp-id-ter-acc-1.to.gp-kl-cas-11-ses001-ses-1.wdsl.5m.za`"
[INFO] [stdout]     It "means the suffix should be `za`" ... ok
[INFO] [stdout]   When "input is `yokohama.jp`"
[INFO] [stdout]     It "means the suffix should be `jp`" ... ok
[INFO] [stdout]   When "input is `kobe.jp`"
[INFO] [stdout]     It "means the suffix should be `jp`" ... ok
[INFO] [stdout]   When "input is `foo.bar.platformsh.site`"
[INFO] [stdout]     It "means the suffix should be `bar.platformsh.site`" ... ok
[INFO] [stdout]   When "input is `bar.platformsh.site`"
[INFO] [stdout]     It "means the suffix should be `bar.platformsh.site`" ... ok
[INFO] [stdout]   When "input is `platform.sh`"
[INFO] [stdout]     It "means the suffix should be `sh`" ... ok
[INFO] [stdout]   When "input is `sh`"
[INFO] [stdout]     It "means the suffix should be `sh`" ... ok
[INFO] [stdout]   When "input is `.`"
[INFO] [stdout]     It "means the suffix should be `.`" ... ok
[INFO] [stdout]   When "input is `example.com.`"
[INFO] [stdout]     It "means the suffix should be `com.`" ... ok
[INFO] [stdout]   When "input is `www.食狮.中国`"
[INFO] [stdout]     It "means the suffix should be `中国`" ... ok
[INFO] [stdout]   When "input is `www.xn--85x722f.xn--55qx5d.cn`"
[INFO] [stdout]     It "means the suffix should be `xn--55qx5d.cn`" ... ok
[INFO] [stdout]   When "input is `a.b.example.uk.com`"
[INFO] [stdout]     It "means the suffix should be `uk.com`" ... ok
[INFO] [stdout]   When "input is `_tcp.example.com.`"
[INFO] [stdout]     It "means the suffix should be `com.`" ... ok
[INFO] [stdout] 
[INFO] [stdout] duration: 0.029s.
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored
[INFO] [stdout] 
[INFO] [stdout] tests:
[INFO] [stdout] 
[INFO] [stdout] Describe "suffix type tests"
[INFO] [stdout]   When "input is `gp-id-ter-acc-1.to.gp-kl-cas-11-ses001-ses-1.wdsl.5m.za`"
[INFO] [stdout]     It "means known suffix should be `false`" ... ok
[INFO] [stdout]   When "input is `yokohama.jp`"
[INFO] [stdout]     It "means known suffix should be `true`" ... ok
[INFO] [stdout]   When "input is `kobe.jp`"
[INFO] [stdout]     It "means known suffix should be `true`" ... ok
[INFO] [stdout]   When "input is `foo.bar.platformsh.site`"
[INFO] [stdout]     It "means known suffix should be `true`" ... ok
[INFO] [stdout]   When "input is `bar.platformsh.site`"
[INFO] [stdout]     It "means known suffix should be `true`" ... ok
[INFO] [stdout]   When "input is `platform.sh`"
[INFO] [stdout]     It "means known suffix should be `true`" ... ok
[INFO] [stdout]   When "input is `sh`"
[INFO] [stdout]     It "means known suffix should be `true`" ... ok
[INFO] [stdout]   When "input is `.`"
[INFO] [stdout]     It "means known suffix should be `false`" ... ok
[INFO] [stdout]   When "input is `example.gafregsrse`"
[INFO] [stdout]     It "means known suffix should be `false`" ... ok
[INFO] [stdout]   When "input is `www.食狮.中国`"
[INFO] [stdout]     It "means known suffix should be `true`" ... ok
[INFO] [stdout]   When "input is `www.xn--85x722f.xn--55qx5d.cn`"
[INFO] [stdout]     It "means known suffix should be `true`" ... ok
[INFO] [stdout] 
[INFO] [stdout] duration: 0.025s.
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored
[INFO] [stdout] test list_behaviour ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.42s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests psl
[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" "468c6888aea08b2e6f5aa952e478bb77097df75a3d9e5d011098e566d0c4d4c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "468c6888aea08b2e6f5aa952e478bb77097df75a3d9e5d011098e566d0c4d4c6", kill_on_drop: false }`
[INFO] [stdout] 468c6888aea08b2e6f5aa952e478bb77097df75a3d9e5d011098e566d0c4d4c6
