[INFO] cloning repository https://github.com/n0madic/py2rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/n0madic/py2rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fn0madic%2Fpy2rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fn0madic%2Fpy2rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 84bc98bd557c9e93e08cf375cc583777de009a86
[INFO] testing n0madic/py2rust against beta-2026-03-05 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fn0madic%2Fpy2rust" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/n0madic/py2rust
[INFO] finished tweaking git repo https://github.com/n0madic/py2rust
[INFO] tweaked toml for git repo https://github.com/n0madic/py2rust written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/n0madic/py2rust on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/n0madic/py2rust 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-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1ed46a79d2c70d195e083f8d886e0c87579522c8fda9a4d2004cf8faec95a11f
[INFO] running `Command { std: "docker" "start" "-a" "1ed46a79d2c70d195e083f8d886e0c87579522c8fda9a4d2004cf8faec95a11f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1ed46a79d2c70d195e083f8d886e0c87579522c8fda9a4d2004cf8faec95a11f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ed46a79d2c70d195e083f8d886e0c87579522c8fda9a4d2004cf8faec95a11f", kill_on_drop: false }`
[INFO] [stdout] 1ed46a79d2c70d195e083f8d886e0c87579522c8fda9a4d2004cf8faec95a11f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 29e56ffb2d324b495d633b084ebd0d9f7420f831f088e071d2f997847ee2be7e
[INFO] running `Command { std: "docker" "start" "-a" "29e56ffb2d324b495d633b084ebd0d9f7420f831f088e071d2f997847ee2be7e", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.37
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling malachite-nz v0.4.22
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling unic-common v0.9.0
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling unic-char-range v0.9.0
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling unic-char-property v0.9.0
[INFO] [stderr]    Compiling unic-ucd-version v0.9.0
[INFO] [stderr]    Compiling rustpython-parser-vendored v0.3.1
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling rustc-demangle v0.1.27
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling is_ci v1.2.0
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling supports-color v2.1.0
[INFO] [stderr]    Compiling clap_builder v4.5.56
[INFO] [stderr]    Compiling unic-emoji-char v0.9.0
[INFO] [stderr]    Compiling unic-ucd-ident v0.9.0
[INFO] [stderr]    Compiling supports-hyperlinks v2.1.0
[INFO] [stderr]    Compiling supports-unicode v2.1.0
[INFO] [stderr]    Compiling textwrap v0.15.2
[INFO] [stderr]    Compiling terminal_size v0.1.17
[INFO] [stderr]    Compiling lalrpop-util v0.20.2
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling owo-colors v3.5.0
[INFO] [stderr]    Compiling regex-lite v0.1.9
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling addr2line v0.25.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling is-macro v0.3.7
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling miette-derive v5.10.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling rustpython-parser-core v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling malachite-base v0.4.22
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling backtrace-ext v0.2.1
[INFO] [stderr]    Compiling miette v5.10.0
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling derive_more v1.0.0
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling clap v4.5.56
[INFO] [stderr]    Compiling phf_codegen v0.11.3
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling unicode_names2_generator v1.3.0
[INFO] [stderr]    Compiling rustpython-parser v0.3.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling unicode_names2 v1.3.0
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]    Compiling malachite-q v0.4.22
[INFO] [stderr]    Compiling malachite v0.4.22
[INFO] [stderr]    Compiling malachite-bigint v0.2.3
[INFO] [stderr]    Compiling rustpython-ast v0.3.1
[INFO] [stderr]    Compiling py2rust v0.1.0 (/opt/rustwide/workdir/crates/py2rust)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] running `Command { std: "docker" "inspect" "29e56ffb2d324b495d633b084ebd0d9f7420f831f088e071d2f997847ee2be7e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "29e56ffb2d324b495d633b084ebd0d9f7420f831f088e071d2f997847ee2be7e", kill_on_drop: false }`
[INFO] [stdout] 29e56ffb2d324b495d633b084ebd0d9f7420f831f088e071d2f997847ee2be7e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cde18dbf447f6c06d8bacf3597381009a343cd3c7ae511a769dd13d1771fb248
[INFO] running `Command { std: "docker" "start" "-a" "cde18dbf447f6c06d8bacf3597381009a343cd3c7ae511a769dd13d1771fb248", kill_on_drop: false }`
[INFO] [stderr]    Compiling py2rust v0.1.0 (/opt/rustwide/workdir/crates/py2rust)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 9.79s
[INFO] running `Command { std: "docker" "inspect" "cde18dbf447f6c06d8bacf3597381009a343cd3c7ae511a769dd13d1771fb248", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cde18dbf447f6c06d8bacf3597381009a343cd3c7ae511a769dd13d1771fb248", kill_on_drop: false }`
[INFO] [stdout] cde18dbf447f6c06d8bacf3597381009a343cd3c7ae511a769dd13d1771fb248
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] dbc7b3825ea11703f229a763909cb558587e788e149081b5586186bf099e3ac2
[INFO] running `Command { std: "docker" "start" "-a" "dbc7b3825ea11703f229a763909cb558587e788e149081b5586186bf099e3ac2", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/py2rust-13d4aa57215002b7)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test typecheck::throws::tests::test_explicit_raise_marks_throwing ... ok
[INFO] [stdout] test typecheck::throws::tests::test_call_propagation ... ok
[INFO] [stdout] test typecheck::throws::tests::test_try_catch_blocks_propagation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/py2rust-9376bec9e9d32353)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/builtin_registry.rs (/opt/rustwide/target/debug/deps/builtin_registry-c5fe201cde5ab789)
[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] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test builtin_keyword_policy_matches_expected_surface ... ok
[INFO] [stdout] test builtin_registry_roundtrip_and_uniqueness ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/call_bind.rs (/opt/rustwide/target/debug/deps/call_bind-3b842358ff6911a8)
[INFO] [stdout] running 9 tests
[INFO] [stdout] test call_bind_detects_missing_required ... ok
[INFO] [stdout] test call_bind_rejects_duplicate_keyword ... ok
[INFO] [stdout] test call_bind_implicit_first_disallows_keyword_override ... ok
[INFO] [stdout] test call_bind_rejects_keyword_for_positional_only_param ... ok
[INFO] [stdout] test call_bind_resolves_positional_keyword_and_variadics ... ok
[INFO] [stdout] test call_bind_rejects_keyword_unpack_token ... ok
[INFO] [stdout] test call_bind_rejects_malformed_signature_metadata ... ok
[INFO] [stdout] test call_bind_rejects_unknown_keyword_without_varkw ... ok
[INFO] [stdout] test call_bind_rejects_extra_positionals_without_varargs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/callspec.rs (/opt/rustwide/target/debug/deps/callspec-3492e5076b9b0305)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test callspec_arity_exact_range_and_at_least ... ok
[INFO] [stdout] test callspec_keyword_policies_are_enforced ... ok
[INFO] [stdout] test callspec_rejects_kwargs_unpacking ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/codegen_optimizations.rs (/opt/rustwide/target/debug/deps/codegen_optimizations-e456dcd53a0eb937)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test all_any_copy_types_skip_clone ... ok
[INFO] [stdout] test global_alias_chains_promote_local_bindings_to_arc_mutex_storage ... ok
[INFO] [stdout] test list_equality_literal_uses_local_vec_operand ... ok
[INFO] [stdout] test local_aliasing_lists_and_dicts_use_arc_mutex_storage ... ok
[INFO] [stdout] test format_literal_prefix_in_string_add ... ok
[INFO] [stdout] test non_throwing_assert_uses_assert_macro ... ok
[INFO] [stdout] test string_literal_call_arg_avoids_redundant_clone ... ok
[INFO] [stdout] test print_list_literal_uses_vec_repr ... ok
[INFO] [stdout] test range_for_loop_avoids_into_iter ... ok
[INFO] [stdout] test enumerate_local_list_uses_index_iter ... ok
[INFO] [stdout] test optional_unwrap_avoids_double_clone ... ok
[INFO] [stdout] test local_list_constructor_assignment_stays_vec_backed ... ok
[INFO] [stdout] test reversed_local_list_uses_index_iter ... ok
[INFO] [stdout] test exceptions_codegen_avoids_redundant_runtime_patterns ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/container_registry.rs (/opt/rustwide/target/debug/deps/container_registry-3a7ca69419b718ff)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test container_registry_names_are_unique_per_container ... ok
[INFO] [stderr]      Running tests/differential.rs (/opt/rustwide/target/debug/deps/differential-67e267e8db86cae9)
[INFO] [stdout] test set_registry_surface_and_arity_are_stable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test differential_positional_only_calls ... ok
[INFO] [stderr]      Running tests/edge_cases.rs (/opt/rustwide/target/debug/deps/edge_cases-04625598408fc9e4)
[INFO] [stdout] test differential_core_arithmetic_and_control_flow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.08s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test dict_missing_key_error ... ok
[INFO] [stdout] test empty_list_min_has_error_message ... ok
[INFO] [stdout] test py_index_helper_is_emitted ... ok
[INFO] [stdout] test empty_list_max_has_error_message ... ok
[INFO] [stdout] test py_max_helper_is_emitted ... ok
[INFO] [stdout] test empty_dict_literal ... ok
[INFO] [stdout] test float_parse_has_error_message ... ok
[INFO] [stdout] test dict_pop_key_named_guard_is_preserved ... ok
[INFO] [stdout] test dict_literal_uses_builder_ops ... ok
[INFO] [stdout] test py_list_get_helper_is_emitted ... ok
[INFO] [stdout] test py_min_helper_is_emitted ... ok
[INFO] [stdout] test py_parse_int_helper_is_emitted ... ok
[INFO] [stdout] test positive_index_literal ... ok
[INFO] [stdout] test try_else_binding_uses_nameerror_path_without_expect ... ok
[INFO] [stdout] test negative_index_literal ... ok
[INFO] [stdout] test negative_index_variable ... ok
[INFO] [stdout] test set_literal_uses_from ... ok
[INFO] [stdout] test int_parse_has_error_message ... ok
[INFO] [stdout] test negative_index_assignment ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.44s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/golden.rs (/opt/rustwide/target/debug/deps/golden-c879f17a3423c1fb)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test main_rename_preserves_assignment_target_legacy_behavior ... ok
[INFO] [stdout] test emits_union_match ... ok
[INFO] [stdout] test emits_keyword_argument_reordering ... ok
[INFO] [stdout] test renames_user_main_definition_and_calls ... ok
[INFO] [stdout] test top_level_used_in_function_globalized ... ok
[INFO] [stdout] test top_level_local_not_globalized ... ok
[INFO] [stdout] test emits_union_method_call ... ok
[INFO] [stdout] test emits_iterator ... ok
[INFO] [stdout] test main_rename_preserves_comp_generator_legacy_behavior ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running tests/negative_tests.rs (/opt/rustwide/target/debug/deps/negative_tests-e11e4ef1c0780764)
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 45 tests
[INFO] [stdout] test rejects_async_function ... ok
[INFO] [stdout] test rejects_class_decorators ... ok
[INFO] [stdout] test rejects_from_os_import_unknown_member ... ok
[INFO] [stdout] test rejects_decorator_calls ... ok
[INFO] [stdout] test rejects_lambda_star_args ... ok
[INFO] [stdout] test rejects_from_time_import_unknown_member ... ok
[INFO] [stdout] test allows_recursive_lambda_captures ... ok
[INFO] [stdout] test rejects_from_subprocess_import_unknown_member ... ok
[INFO] [stdout] test rejects_keyword_for_positional_only_parameter ... ok
[INFO] [stdout] test rejects_implicit_str_coercion_for_user_functions ... ok
[INFO] [stdout] test rejects_duplicate_union_match_cases ... ok
[INFO] [stdout] test rejects_os_remove_without_import ... ok
[INFO] [stdout] test rejects_async_comprehensions ... ok
[INFO] [stdout] test rejects_local_class_capture_of_outer_local ... ok
[INFO] [stdout] test rejects_multiple_inheritance ... ok
[INFO] [stdout] test rejects_slice_step_zero ... ok
[INFO] [stdout] test rejects_invalid_property_setter_signature ... ok
[INFO] [stdout] test rejects_type_parameters ... ok
[INFO] [stdout] test rejects_time_call_without_import ... ok
[INFO] [stdout] test rejects_local_class_inside_control_flow ... ok
[INFO] [stdout] test rejects_unknown_keyword_arguments ... ok
[INFO] [stdout] test rejects_set_pop_with_argument ... ok
[INFO] [stdout] test rejects_from_urllib_parse_import_unknown_member ... ok
[INFO] [stdout] test rejects_match_guards ... ok
[INFO] [stdout] test rejects_subprocess_run_duplicate_capture_output ... ok
[INFO] [stdout] test rejects_unknown_name_at_compile_time ... ok
[INFO] [stdout] test rejects_subprocess_call_without_import ... ok
[INFO] [stdout] test rejects_unsupported_binary_ops ... ok
[INFO] [stdout] test rejects_set_extend_wrong_arity ... ok
[INFO] [stdout] test rejects_urllib_request_urlopen_duplicate_timeout ... ok
[INFO] [stdout] test rejects_wrong_tuple_shape_for_time_strftime ... ok
[INFO] [stdout] test supports_from_os_import_wildcard ... ok
[INFO] [stdout] test rejects_wrong_arity_for_imported_os_remove ... ok
[INFO] [stdout] test rejects_wrong_arity_for_subprocess_run ... ok
[INFO] [stdout] test rejects_wrong_arity_for_sys_exit ... ok
[INFO] [stdout] test rejects_wrong_arity_for_time_localtime ... ok
[INFO] [stdout] test supports_kwargs ... ok
[INFO] [stdout] test supports_star_args ... ok
[INFO] [stdout] test rejects_urllib_parse_call_without_import ... ok
[INFO] [stdout] test supports_positional_only_parameters ... ok
[INFO] [stdout] test supports_set_extend_method ... ok
[INFO] [stdout] test rejects_wrong_arity_for_urllib_parse_quote ... ok
[INFO] [stdout] test supports_set_pop_method ... ok
[INFO] [stdout] test rejects_wrong_arity_for_time_strptime ... ok
[INFO] [stderr]      Running tests/perf_runtime.rs (/opt/rustwide/target/debug/deps/perf_runtime-88bf8d7938d5494c)
[INFO] [stdout] test rejects_wrong_arity_for_time_strftime ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/runtime.rs (/opt/rustwide/target/debug/deps/runtime-21ad8e0376d2b277)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test perf_runtime_harness ... ignored, manual runtime benchmark harness
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 30 tests
[INFO] [stdout] test runtime_assert_comprehensive ... ok
[INFO] [stdout] test runtime_io_comprehensive ... ok
[INFO] [stdout] test runtime_comprehensions ... ok
[INFO] [stdout] test runtime_match_comprehensive ... ok
[INFO] [stdout] test runtime_generators_comprehensive ... ok
[INFO] [stdout] test runtime_import_comprehensive ... ok
[INFO] [stdout] test runtime_file_io_comprehensive ... ok
[INFO] [stdout] test runtime_core_types_comprehensive ... ok
[INFO] [stdout] test runtime_print_comprehensive ... ok
[INFO] [stdout] test runtime_global_scoping_comprehensive ... ok
[INFO] [stdout] test runtime_stdlib_random_comprehensive ... ok
[INFO] [stdout] test runtime_operators_comprehensive ... ok
[INFO] [stdout] test runtime_control_flow_comprehensive ... ok
[INFO] [stdout] test runtime_stdlib_re_comprehensive ... ok
[INFO] [stdout] test runtime_classes_comprehensive ... ok
[INFO] [stdout] test runtime_stdlib_json_comprehensive ... FAILED
[INFO] [stdout] test runtime_stdlib_os_comprehensive ... ok
[INFO] [stdout] test runtime_collections_comprehensive ... ok
[INFO] [stdout] test runtime_stdlib_subprocess_comprehensive ... ok
[INFO] [stdout] test runtime_stdlib_sys_comprehensive ... ok
[INFO] [stdout] test runtime_stdlib_time_comprehensive ... FAILED
[INFO] [stdout] test runtime_stdlib_math_comprehensive ... ok
[INFO] [stdout] test runtime_union_method_calls ... ok
[INFO] [stdout] test runtime_builtins_comprehensive ... ok
[INFO] [stdout] test runtime_exceptions_comprehensive ... ok
[INFO] [stdout] test runtime_stdlib_urllib_comprehensive ... ok
[INFO] [stdout] test runtime_types_system_comprehensive ... ok
[INFO] [stdout] test runtime_functions_comprehensive ... ok
[INFO] [stdout] test runtime_strings_comprehensive ... ok
[INFO] [stdout] test runtime_iteration_comprehensive ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- runtime_stdlib_json_comprehensive stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'runtime_stdlib_json_comprehensive' (674) panicked at crates/py2rust/tests/common/mod.rs:43:5:
[INFO] [stdout] runtime execution failed for stdlib_json (exit code: Some(101)).
[INFO] [stdout] stdout: json.dumps dict: {"a": 1, "b": 2}
[INFO] [stdout] json.dumps list: [1, 2, 3]
[INFO] [stdout] json.dumps float: 3.14
[INFO] [stdout] json.loads obj type check passed
[INFO] [stdout] json.loads array type check passed
[INFO] [stdout] json.loads string type check passed
[INFO] [stdout] json.loads int type check passed
[INFO] [stdout] json.loads bool type check passed
[INFO] [stdout] json.loads null type check passed
[INFO] [stdout] Round-trip JSON: {"key": "value"}
[INFO] [stdout] json.dumps nested: {"numbers": [1, 2, 3]}
[INFO] [stdout] 
[INFO] [stdout] stderr: 
[INFO] [stdout] thread 'main' (1338) panicked at /tmp/py2rust_test_stdlib_json/main.rs:806:99:
[INFO] [stdout] Unhandled exception: IOError: Read-only file system (os error 30)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58b385728eaa - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x58b385728eaa - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x58b385728eaa - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x58b385728eaa - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x58b38573b83a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x58b38573b83a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x58b38572cca2 - std[b80a194dd3c418bb]::io::default_write_fmt::<std[b80a194dd3c418bb]::sys::stdio::unix::Stderr>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x58b38572cca2 - <std[b80a194dd3c418bb]::sys::stdio::unix::Stderr as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x58b38571423f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x58b38571423f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x58b385724a61 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:319:9
[INFO] [stdout]   11:     0x58b385724c1b - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:825:13
[INFO] [stdout]   12:     0x58b3857142f8 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   13:     0x58b38570be49 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   14:     0x58b385714c5d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   15:     0x58b38573c0ec - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   16:     0x58b3856e4875 - main::main::{{closure}}::h845e11f3c651022e
[INFO] [stdout]   17:     0x58b3856f06da - core::result::Result<T,E>::unwrap_or_else::h16b8ee710d40d572
[INFO] [stdout]   18:     0x58b3856e24d1 - main::main::h853666e4b694e3cf
[INFO] [stdout]   19:     0x58b3856ec093 - core::ops::function::FnOnce::call_once::hc7dc7289c7e154d8
[INFO] [stdout]   20:     0x58b3856f36f6 - std::sys::backtrace::__rust_begin_short_backtrace::h7a6373d770ef5c49
[INFO] [stdout]   21:     0x58b3856eb489 - std::rt::lang_start::{{closure}}::hc02079e2ad51d9d9
[INFO] [stdout]   22:     0x58b3857241e4 - <&dyn core[10b6fa85044e1869]::ops::function::Fn<(), Output = i32> + core[10b6fa85044e1869]::panic::unwind_safe::RefUnwindSafe + core[10b6fa85044e1869]::marker::Sync as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:287:21
[INFO] [stdout]   23:     0x58b3857241e4 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<&dyn core[10b6fa85044e1869]::ops::function::Fn<(), Output = i32> + core[10b6fa85044e1869]::panic::unwind_safe::RefUnwindSafe + core[10b6fa85044e1869]::marker::Sync, i32>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   24:     0x58b3857241e4 - std[b80a194dd3c418bb]::panicking::catch_unwind::<i32, &dyn core[10b6fa85044e1869]::ops::function::Fn<(), Output = i32> + core[10b6fa85044e1869]::panic::unwind_safe::RefUnwindSafe + core[10b6fa85044e1869]::marker::Sync>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   25:     0x58b3857241e4 - std[b80a194dd3c418bb]::panic::catch_unwind::<&dyn core[10b6fa85044e1869]::ops::function::Fn<(), Output = i32> + core[10b6fa85044e1869]::panic::unwind_safe::RefUnwindSafe + core[10b6fa85044e1869]::marker::Sync, i32>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   26:     0x58b3857241e4 - std[b80a194dd3c418bb]::rt::lang_start_internal::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/rt.rs:175:24
[INFO] [stdout]   27:     0x58b3857241e4 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<std[b80a194dd3c418bb]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x58b3857241e4 - std[b80a194dd3c418bb]::panicking::catch_unwind::<isize, std[b80a194dd3c418bb]::rt::lang_start_internal::{closure#0}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x58b3857241e4 - std[b80a194dd3c418bb]::panic::catch_unwind::<std[b80a194dd3c418bb]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x58b3857241e4 - std[b80a194dd3c418bb]::rt::lang_start_internal
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/rt.rs:171:5
[INFO] [stdout]   31:     0x58b3856eb471 - std::rt::lang_start::hc08e0869af25f9cd
[INFO] [stdout]   32:     0x58b3856e6e75 - main
[INFO] [stdout]   33:     0x7cd9d6a0c1ca - <unknown>
[INFO] [stdout]   34:     0x7cd9d6a0c28b - __libc_start_main
[INFO] [stdout]   35:     0x58b3856d3755 - _start
[INFO] [stdout]   36:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x59a315524cfa - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x59a315524cfa - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x59a315524cfa - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x59a315524cfa - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x59a31553ab3a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x59a31553ab3a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x59a3155297f2 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x59a3155297f2 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x59a315501d2f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x59a315501d2f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x59a31551c3f9 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x59a314da106c - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x59a314da106c - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x59a31551c5b2 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x59a31551c5b2 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x59a315501de8 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x59a3154f94c9 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x59a315502afd - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x59a31553b41c - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x59a314d94df4 - runtime::common::run_py::he024a8d7b0586082
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/py2rust/tests/common/mod.rs:43:5
[INFO] [stdout]   20:     0x59a314d93f93 - runtime::runtime_stdlib_json_comprehensive::he2ffbbee57b9d1ed
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/py2rust/tests/runtime.rs:13:13
[INFO] [stdout]   21:     0x59a314d93fb7 - runtime::runtime_stdlib_json_comprehensive::{{closure}}::he462eae1ffd3cd6d
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/py2rust/tests/runtime.rs:12:24
[INFO] [stdout]   22:     0x59a314d92f66 - core::ops::function::FnOnce::call_once::hf3b67a1dadaa4908
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x59a314d9514b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x59a314d9514b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x59a314da1b3b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x59a314da1b3b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   27:     0x59a314da1b3b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x59a314da1b3b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x59a314da1b3b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x59a314da1b3b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x59a314da1b3b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x59a314d9d254 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x59a314d9d254 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x59a314da4742 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x59a314da4742 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   36:     0x59a314da4742 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x59a314da4742 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x59a314da4742 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x59a314da4742 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x59a314da4742 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x59a3155240bf - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   42:     0x59a3155240bf - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x77dcb057aaa4 - <unknown>
[INFO] [stdout]   44:     0x77dcb0607a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- runtime_stdlib_time_comprehensive stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'runtime_stdlib_time_comprehensive' (1050) panicked at crates/py2rust/tests/common/mod.rs:30:5:
[INFO] [stdout] rustc compilation failed for stdlib_time.
[INFO] [stdout] Generated Rust:
[INFO] [stdout] #![allow(unused, non_snake_case, non_camel_case_types)]
[INFO] [stdout] use std::cell::RefCell;
[INFO] [stdout] use std::rc::Rc;
[INFO] [stdout] use std::sync::{Arc, Mutex, OnceLock};
[INFO] [stdout] const __NAME__: &str = "__main__";
[INFO] [stdout] 
[INFO] [stdout] enum PyListGuard<'a, T> {
[INFO] [stdout]     Sync(std::sync::MutexGuard<'a, Vec<T>>),
[INFO] [stdout]     Cell(std::cell::RefMut<'a, Vec<T>>),
[INFO] [stdout] }
[INFO] [stdout] impl<'a, T> std::ops::Deref for PyListGuard<'a, T> {
[INFO] [stdout]     type Target = Vec<T>;
[INFO] [stdout]     fn deref(&self) -> &Self::Target {
[INFO] [stdout]         match self {
[INFO] [stdout]             Self::Sync(guard) => guard,
[INFO] [stdout]             Self::Cell(guard) => guard,
[INFO] [stdout]         }
[INFO] [stdout]     }
[INFO] [stdout] }
[INFO] [stdout] impl<'a, T> std::ops::DerefMut for PyListGuard<'a, T> {
[INFO] [stdout]     fn deref_mut(&mut self) -> &mut Self::Target {
[INFO] [stdout]         match self {
[INFO] [stdout]             Self::Sync(guard) => guard,
[INFO] [stdout]             Self::Cell(guard) => guard,
[INFO] [stdout]         }
[INFO] [stdout]     }
[INFO] [stdout] }
[INFO] [stdout] trait PyListGuardExt<T> {
[INFO] [stdout]     fn py_list_guard(&self) -> PyListGuard<'_, T>;
[INFO] [stdout] }
[INFO] [stdout] impl<T> PyListGuardExt<T> for Arc<Mutex<Vec<T>>> {
[INFO] [stdout]     fn py_list_guard(&self) -> PyListGuard<'_, T> {
[INFO] [stdout]         PyListGuard::Sync(self.lock().expect("list mutex poisoned"))
[INFO] [stdout]     }
[INFO] [stdout] }
[INFO] [stdout] impl<T> PyListGuardExt<T> for Rc<RefCell<Vec<T>>> {
[INFO] [stdout]     fn py_list_guard(&self) -> PyListGuard<'_, T> {
[INFO] [stdout]         PyListGuard::Cell(self.borrow_mut())
[INFO] [stdout]     }
[INFO] [stdout] }
[INFO] [stdout] fn py_print<T: std::fmt::Display + ?Sized>(v: &T) {
[INFO] [stdout]     println!("{v}");
[INFO] [stdout] }
[INFO] [stdout] fn py_range(end: i64) -> std::ops::Range<i64> { 0..end }
[INFO] [stdout] fn py_time_monotonic() -> f64 {
[INFO] [stdout]     static __PY_TIME_MONOTONIC_START: OnceLock<std::time::Instant> = OnceLock::new();
[INFO] [stdout]     __PY_TIME_MONOTONIC_START
[INFO] [stdout]         .get_or_init(std::time::Instant::now)
[INFO] [stdout]         .elapsed()
[INFO] [stdout]         .as_secs_f64()
[INFO] [stdout] }
[INFO] [stdout] fn py_time_monotonic_ns() -> i64 {
[INFO] [stdout]     static __PY_TIME_MONOTONIC_NS_START: OnceLock<std::time::Instant> = OnceLock::new();
[INFO] [stdout]     __PY_TIME_MONOTONIC_NS_START
[INFO] [stdout]         .get_or_init(std::time::Instant::now)
[INFO] [stdout]         .elapsed()
[INFO] [stdout]         .as_nanos() as i64
[INFO] [stdout] }
[INFO] [stdout] fn py_time_perf_counter() -> f64 {
[INFO] [stdout]     static __PY_TIME_PERF_COUNTER_START: OnceLock<std::time::Instant> = OnceLock::new();
[INFO] [stdout]     __PY_TIME_PERF_COUNTER_START
[INFO] [stdout]         .get_or_init(std::time::Instant::now)
[INFO] [stdout]         .elapsed()
[INFO] [stdout]         .as_secs_f64()
[INFO] [stdout] }
[INFO] [stdout] fn py_time_perf_counter_ns() -> i64 {
[INFO] [stdout]     static __PY_TIME_PERF_COUNTER_NS_START: OnceLock<std::time::Instant> = OnceLock::new();
[INFO] [stdout]     __PY_TIME_PERF_COUNTER_NS_START
[INFO] [stdout]         .get_or_init(std::time::Instant::now)
[INFO] [stdout]         .elapsed()
[INFO] [stdout]         .as_nanos() as i64
[INFO] [stdout] }
[INFO] [stdout] fn py_time_process_time() -> f64 {
[INFO] [stdout]     static __PY_TIME_PROCESS_TIME_START: OnceLock<std::time::Instant> = OnceLock::new();
[INFO] [stdout]     __PY_TIME_PROCESS_TIME_START
[INFO] [stdout]         .get_or_init(std::time::Instant::now)
[INFO] [stdout]         .elapsed()
[INFO] [stdout]         .as_secs_f64()
[INFO] [stdout] }
[INFO] [stdout] fn py_time_process_time_ns() -> i64 {
[INFO] [stdout]     static __PY_TIME_PROCESS_TIME_NS_START: OnceLock<std::time::Instant> = OnceLock::new();
[INFO] [stdout]     __PY_TIME_PROCESS_TIME_NS_START
[INFO] [stdout]         .get_or_init(std::time::Instant::now)
[INFO] [stdout]         .elapsed()
[INFO] [stdout]         .as_nanos() as i64
[INFO] [stdout] }
[INFO] [stdout] fn py_time_sleep(seconds: f64) {
[INFO] [stdout]     if !seconds.is_finite() || seconds <= 0.0 {
[INFO] [stdout]         return;
[INFO] [stdout]     }
[INFO] [stdout]     std::thread::sleep(std::time::Duration::from_secs_f64(seconds));
[INFO] [stdout] }
[INFO] [stdout] type __py_time_tuple = (i64, i64, i64, i64, i64, i64, i64, i64, i64);
[INFO] [stdout] 
[INFO] [stdout] fn py_time_is_leap(year: i64) -> bool {
[INFO] [stdout]     (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] fn py_time_days_in_month(year: i64, month: i64) -> i64 {
[INFO] [stdout]     match month {
[INFO] [stdout]         1 => 31,
[INFO] [stdout]         2 => if py_time_is_leap(year) { 29 } else { 28 },
[INFO] [stdout]         3 => 31,
[INFO] [stdout]         4 => 30,
[INFO] [stdout]         5 => 31,
[INFO] [stdout]         6 => 30,
[INFO] [stdout]         7 => 31,
[INFO] [stdout]         8 => 31,
[INFO] [stdout]         9 => 30,
[INFO] [stdout]         10 => 31,
[INFO] [stdout]         11 => 30,
[INFO] [stdout]         12 => 31,
[INFO] [stdout]         _ => panic!("invalid month in time tuple: {}", month),
[INFO] [stdout]     }
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] fn py_time_day_of_year(year: i64, month: i64, mday: i64) -> i64 {
[INFO] [stdout]     let mut yday = 0;
[INFO] [stdout]     let mut m = 1;
[INFO] [stdout]     while m < month {
[INFO] [stdout]         yday += py_time_days_in_month(year, m);
[INFO] [stdout]         m += 1;
[INFO] [stdout]     }
[INFO] [stdout]     yday + mday
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] fn py_time_civil_from_days(z: i64) -> (i64, i64, i64) {
[INFO] [stdout]     let z = z + 719468;
[INFO] [stdout]     let era = if z >= 0 { z } else { z - 146096 } / 146097;
[INFO] [stdout]     let doe = z - era * 146097;
[INFO] [stdout]     let yoe = (doe - doe / 1460 + doe / 36524 - doe / 146096) / 365;
[INFO] [stdout]     let mut year = yoe + era * 400;
[INFO] [stdout]     let doy = doe - (365 * yoe + yoe / 4 - yoe / 100);
[INFO] [stdout]     let mp = (5 * doy + 2) / 153;
[INFO] [stdout]     let mday = doy - (153 * mp + 2) / 5 + 1;
[INFO] [stdout]     let month = mp + if mp < 10 { 3 } else { -9 };
[INFO] [stdout]     if month <= 2 {
[INFO] [stdout]         year += 1;
[INFO] [stdout]     }
[INFO] [stdout]     (year, month, mday)
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] fn py_time_days_from_civil(year: i64, month: i64, mday: i64) -> i64 {
[INFO] [stdout]     let y = year - if month <= 2 { 1 } else { 0 };
[INFO] [stdout]     let era = if y >= 0 { y } else { y - 399 } / 400;
[INFO] [stdout]     let yoe = y - era * 400;
[INFO] [stdout]     let mp = month + if month > 2 { -3 } else { 9 };
[INFO] [stdout]     let doy = (153 * mp + 2) / 5 + mday - 1;
[INFO] [stdout]     let doe = yoe * 365 + yoe / 4 - yoe / 100 + doy;
[INFO] [stdout]     era * 146097 + doe - 719468
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] fn py_time_split_epoch(seconds: f64) -> __py_time_tuple {
[INFO] [stdout]     let whole = seconds.floor() as i64;
[INFO] [stdout]     let day_seconds = whole.rem_euclid(86_400);
[INFO] [stdout]     let days = whole.div_euclid(86_400);
[INFO] [stdout]     let hour = day_seconds / 3600;
[INFO] [stdout]     let minute = (day_seconds % 3600) / 60;
[INFO] [stdout]     let second = day_seconds % 60;
[INFO] [stdout]     let (year, month, mday) = py_time_civil_from_days(days);
[INFO] [stdout]     // Python tm_wday is Monday=0 .. Sunday=6.
[INFO] [stdout]     let wday = (days + 3).rem_euclid(7);
[INFO] [stdout]     let yday = py_time_day_of_year(year, month, mday);
[INFO] [stdout]     (year, month, mday, hour, minute, second, wday, yday, 0)
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] fn py_time_now_seconds() -> f64 {
[INFO] [stdout]     std::time::SystemTime::now()
[INFO] [stdout]         .duration_since(std::time::UNIX_EPOCH)
[INFO] [stdout]         .unwrap_or(std::time::Duration::from_secs(0))
[INFO] [stdout]         .as_secs_f64()
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] fn py_time_parse_fixed_digits(text: &[u8], idx: &mut usize, width: usize, field: &str) -> i64 {
[INFO] [stdout]     if *idx + width > text.len() {
[INFO] [stdout]         panic!("time.strptime(): unexpected end while parsing {}", field);
[INFO] [stdout]     }
[INFO] [stdout]     for pos in *idx..(*idx + width) {
[INFO] [stdout]         if !text[pos].is_ascii_digit() {
[INFO] [stdout]             panic!("time.strptime(): expected digits for {}", field);
[INFO] [stdout]         }
[INFO] [stdout]     }
[INFO] [stdout]     let slice = std::str::from_utf8(&text[*idx..(*idx + width)])
[INFO] [stdout]         .unwrap_or_else(|_| panic!("time.strptime(): invalid utf-8 in {}", field));
[INFO] [stdout]     *idx += width;
[INFO] [stdout]     slice
[INFO] [stdout]         .parse::<i64>()
[INFO] [stdout]         .unwrap_or_else(|_| panic!("time.strptime(): invalid number for {}", field))
[INFO] [stdout] }
[INFO] [stdout] fn py_time_local_offset_seconds(year: i32, month: u32, mday: u32) -> i32 {
[INFO] [stdout]     // Sample noon instead of midnight to avoid ambiguous/non-existent local midnight
[INFO] [stdout]     // around DST transitions.
[INFO] [stdout]     let local_result = chrono::TimeZone::with_ymd_and_hms(&chrono::Local, year, month, mday, 12, 0, 0);
[INFO] [stdout]     let dt = local_result
[INFO] [stdout]         .single()
[INFO] [stdout]         .or_else(|| local_result.earliest())
[INFO] [stdout]         .or_else(|| local_result.latest())
[INFO] [stdout]         .unwrap_or_else(|| panic!("time.localtime(): invalid local date {}-{:02}-{:02}", year, month, mday));
[INFO] [stdout]     chrono::Offset::fix(dt.offset()).local_minus_utc()
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] fn py_time_is_dst_local(dt: &chrono::DateTime<chrono::Local>) -> i64 {
[INFO] [stdout]     let year = chrono::Datelike::year(dt);
[INFO] [stdout]     let jan_offset = py_time_local_offset_seconds(year, 1, 1);
[INFO] [stdout]     let jul_offset = py_time_local_offset_seconds(year, 7, 1);
[INFO] [stdout]     if jan_offset == jul_offset {
[INFO] [stdout]         return 0;
[INFO] [stdout]     }
[INFO] [stdout]     let current_offset = chrono::Offset::fix(dt.offset()).local_minus_utc();
[INFO] [stdout]     let standard_offset = std::cmp::min(jan_offset, jul_offset);
[INFO] [stdout]     if current_offset > standard_offset {
[INFO] [stdout]         1
[INFO] [stdout]     } else {
[INFO] [stdout]         0
[INFO] [stdout]     }
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] fn py_time_localtime(seconds: Option<f64>) -> __py_time_tuple {
[INFO] [stdout]     let seconds = seconds.unwrap_or_else(py_time_now_seconds);
[INFO] [stdout]     let whole = seconds.floor() as i64;
[INFO] [stdout]     let utc = chrono::DateTime::<chrono::Utc>::from_timestamp(whole, 0)
[INFO] [stdout]         .unwrap_or_else(|| panic!("time.localtime(): timestamp out of range"));
[INFO] [stdout]     let local = utc.with_timezone(&chrono::Local);
[INFO] [stdout]     (
[INFO] [stdout]         i64::from(chrono::Datelike::year(&local)),
[INFO] [stdout]         i64::from(chrono::Datelike::month(&local)),
[INFO] [stdout]         i64::from(chrono::Datelike::day(&local)),
[INFO] [stdout]         i64::from(chrono::Timelike::hour(&local)),
[INFO] [stdout]         i64::from(chrono::Timelike::minute(&local)),
[INFO] [stdout]         i64::from(chrono::Timelike::second(&local)),
[INFO] [stdout]         i64::from(chrono::Datelike::weekday(&local).num_days_from_monday()),
[INFO] [stdout]         i64::from(chrono::Datelike::ordinal(&local)),
[INFO] [stdout]         py_time_is_dst_local(&local),
[INFO] [stdout]     )
[INFO] [stdout] }
[INFO] [stdout] fn py_time_gmtime(seconds: Option<f64>) -> __py_time_tuple {
[INFO] [stdout]     py_time_split_epoch(seconds.unwrap_or_else(py_time_now_seconds))
[INFO] [stdout] }
[INFO] [stdout] fn py_time_strftime(format: &str, tm: &__py_time_tuple) -> String {
[INFO] [stdout]     let (year, month, mday, hour, minute, second, wday, yday, _isdst) = *tm;
[INFO] [stdout]     let weekday_short = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
[INFO] [stdout]     let weekday_long = [
[INFO] [stdout]         "Monday",
[INFO] [stdout]         "Tuesday",
[INFO] [stdout]         "Wednesday",
[INFO] [stdout]         "Thursday",
[INFO] [stdout]         "Friday",
[INFO] [stdout]         "Saturday",
[INFO] [stdout]         "Sunday",
[INFO] [stdout]     ];
[INFO] [stdout]     let month_short = [
[INFO] [stdout]         "Jan",
[INFO] [stdout]         "Feb",
[INFO] [stdout]         "Mar",
[INFO] [stdout]         "Apr",
[INFO] [stdout]         "May",
[INFO] [stdout]         "Jun",
[INFO] [stdout]         "Jul",
[INFO] [stdout]         "Aug",
[INFO] [stdout]         "Sep",
[INFO] [stdout]         "Oct",
[INFO] [stdout]         "Nov",
[INFO] [stdout]         "Dec",
[INFO] [stdout]     ];
[INFO] [stdout]     let month_long = [
[INFO] [stdout]         "January",
[INFO] [stdout]         "February",
[INFO] [stdout]         "March",
[INFO] [stdout]         "April",
[INFO] [stdout]         "May",
[INFO] [stdout]         "June",
[INFO] [stdout]         "July",
[INFO] [stdout]         "August",
[INFO] [stdout]         "September",
[INFO] [stdout]         "October",
[INFO] [stdout]         "November",
[INFO] [stdout]         "December",
[INFO] [stdout]     ];
[INFO] [stdout] 
[INFO] [stdout]     let mut out = String::new();
[INFO] [stdout]     let mut chars = format.chars();
[INFO] [stdout]     while let Some(ch) = chars.next() {
[INFO] [stdout]         if ch != '%' {
[INFO] [stdout]             out.push(ch);
[INFO] [stdout]             continue;
[INFO] [stdout]         }
[INFO] [stdout]         let directive = chars
[INFO] [stdout]             .next()
[INFO] [stdout]             .unwrap_or_else(|| panic!("time.strftime(): trailing '%' in format"));
[INFO] [stdout]         match directive {
[INFO] [stdout]             '%' => out.push('%'),
[INFO] [stdout]             'Y' => out.push_str(&format!("{:04}", year)),
[INFO] [stdout]             'm' => out.push_str(&format!("{:02}", month)),
[INFO] [stdout]             'd' => out.push_str(&format!("{:02}", mday)),
[INFO] [stdout]             'H' => out.push_str(&format!("{:02}", hour)),
[INFO] [stdout]             'M' => out.push_str(&format!("{:02}", minute)),
[INFO] [stdout]             'S' => out.push_str(&format!("{:02}", second)),
[INFO] [stdout]             'j' => out.push_str(&format!("{:03}", yday)),
[INFO] [stdout]             // Python %w is Sunday=0..Saturday=6.
[INFO] [stdout]             'w' => out.push_str(&((wday + 1).rem_euclid(7)).to_string()),
[INFO] [stdout]             'a' => {
[INFO] [stdout]                 let idx = usize::try_from(wday)
[INFO] [stdout]                     .unwrap_or_else(|_| panic!("time.strftime(): invalid weekday {}", wday));
[INFO] [stdout]                 out.push_str(weekday_short.get(idx).unwrap_or_else(|| {
[INFO] [stdout]                     panic!("time.strftime(): invalid weekday {}", wday)
[INFO] [stdout]                 }));
[INFO] [stdout]             }
[INFO] [stdout]             'A' => {
[INFO] [stdout]                 let idx = usize::try_from(wday)
[INFO] [stdout]                     .unwrap_or_else(|_| panic!("time.strftime(): invalid weekday {}", wday));
[INFO] [stdout]                 out.push_str(
[INFO] [stdout]                     weekday_long
[INFO] [stdout]                         .get(idx)
[INFO] [stdout]                         .unwrap_or_else(|| panic!("time.strftime(): invalid weekday {}", wday)),
[INFO] [stdout]                 );
[INFO] [stdout]             }
[INFO] [stdout]             'b' => {
[INFO] [stdout]                 let idx = usize::try_from(month - 1)
[INFO] [stdout]                     .unwrap_or_else(|_| panic!("time.strftime(): invalid month {}", month));
[INFO] [stdout]                 out.push_str(
[INFO] [stdout]                     month_short
[INFO] [stdout]                         .get(idx)
[INFO] [stdout]                         .unwrap_or_else(|| panic!("time.strftime(): invalid month {}", month)),
[INFO] [stdout]                 );
[INFO] [stdout]             }
[INFO] [stdout]             'B' => {
[INFO] [stdout]                 let idx = usize::try_from(month - 1)
[INFO] [stdout]                     .unwrap_or_else(|_| panic!("time.strftime(): invalid month {}", month));
[INFO] [stdout]                 out.push_str(
[INFO] [stdout]                     month_long
[INFO] [stdout]                         .get(idx)
[INFO] [stdout]                         .unwrap_or_else(|| panic!("time.strftime(): invalid month {}", month)),
[INFO] [stdout]                 );
[INFO] [stdout]             }
[INFO] [stdout]             other => {
[INFO] [stdout]                 out.push('%');
[INFO] [stdout]                 out.push(other);
[INFO] [stdout]             }
[INFO] [stdout]         }
[INFO] [stdout]     }
[INFO] [stdout]     out
[INFO] [stdout] }
[INFO] [stdout] fn py_time_strptime(text: &str, format: &str) -> __py_time_tuple {
[INFO] [stdout]     let fmt = format.as_bytes();
[INFO] [stdout]     let txt = text.as_bytes();
[INFO] [stdout]     let mut fi: usize = 0;
[INFO] [stdout]     let mut ti: usize = 0;
[INFO] [stdout] 
[INFO] [stdout]     let mut year: i64 = 1900;
[INFO] [stdout]     let mut month: i64 = 1;
[INFO] [stdout]     let mut mday: i64 = 1;
[INFO] [stdout]     let mut hour: i64 = 0;
[INFO] [stdout]     let mut minute: i64 = 0;
[INFO] [stdout]     let mut second: i64 = 0;
[INFO] [stdout]     let mut wday: i64 = -1;
[INFO] [stdout]     let mut yday: i64 = -1;
[INFO] [stdout] 
[INFO] [stdout]     let mut has_month = false;
[INFO] [stdout]     let mut has_mday = false;
[INFO] [stdout]     let mut has_wday = false;
[INFO] [stdout]     let mut has_yday = false;
[INFO] [stdout] 
[INFO] [stdout]     while fi < fmt.len() {
[INFO] [stdout]         if fmt[fi] != b'%' {
[INFO] [stdout]             if ti >= txt.len() || txt[ti] != fmt[fi] {
[INFO] [stdout]                 panic!("time.strptime(): literal mismatch");
[INFO] [stdout]             }
[INFO] [stdout]             fi += 1;
[INFO] [stdout]             ti += 1;
[INFO] [stdout]             continue;
[INFO] [stdout]         }
[INFO] [stdout]         fi += 1;
[INFO] [stdout]         if fi >= fmt.len() {
[INFO] [stdout]             panic!("time.strptime(): trailing '%' in format");
[INFO] [stdout]         }
[INFO] [stdout]         match fmt[fi] as char {
[INFO] [stdout]             '%' => {
[INFO] [stdout]                 if ti >= txt.len() || txt[ti] != b'%' {
[INFO] [stdout]                     panic!("time.strptime(): expected '%' in input");
[INFO] [stdout]                 }
[INFO] [stdout]                 ti += 1;
[INFO] [stdout]             }
[INFO] [stdout]             'Y' => year = py_time_parse_fixed_digits(txt, &mut ti, 4, "year"),
[INFO] [stdout]             'm' => {
[INFO] [stdout]                 month = py_time_parse_fixed_digits(txt, &mut ti, 2, "month");
[INFO] [stdout]                 has_month = true;
[INFO] [stdout]             }
[INFO] [stdout]             'd' => {
[INFO] [stdout]                 mday = py_time_parse_fixed_digits(txt, &mut ti, 2, "day");
[INFO] [stdout]                 has_mday = true;
[INFO] [stdout]             }
[INFO] [stdout]             'H' => hour = py_time_parse_fixed_digits(txt, &mut ti, 2, "hour"),
[INFO] [stdout]             'M' => minute = py_time_parse_fixed_digits(txt, &mut ti, 2, "minute"),
[INFO] [stdout]             'S' => second = py_time_parse_fixed_digits(txt, &mut ti, 2, "second"),
[INFO] [stdout]             'j' => {
[INFO] [stdout]                 yday = py_time_parse_fixed_digits(txt, &mut ti, 3, "day of year");
[INFO] [stdout]                 has_yday = true;
[INFO] [stdout]             }
[INFO] [stdout]             'w' => {
[INFO] [stdout]                 // %w is Sunday=0..Saturday=6; convert to Monday=0..Sunday=6.
[INFO] [stdout]                 let sunday_wday = py_time_parse_fixed_digits(txt, &mut ti, 1, "weekday");
[INFO] [stdout]                 wday = (sunday_wday + 6).rem_euclid(7);
[INFO] [stdout]                 has_wday = true;
[INFO] [stdout]             }
[INFO] [stdout]             other => panic!("time.strptime(): unsupported format directive %{}", other),
[INFO] [stdout]         }
[INFO] [stdout]         fi += 1;
[INFO] [stdout]     }
[INFO] [stdout] 
[INFO] [stdout]     if ti != txt.len() {
[INFO] [stdout]         panic!("time.strptime(): trailing input");
[INFO] [stdout]     }
[INFO] [stdout] 
[INFO] [stdout]     if has_yday && !(has_month || has_mday) {
[INFO] [stdout]         let mut rem = yday;
[INFO] [stdout]         month = 1;
[INFO] [stdout]         while rem > py_time_days_in_month(year, month) {
[INFO] [stdout]             rem -= py_time_days_in_month(year, month);
[INFO] [stdout]             month += 1;
[INFO] [stdout]         }
[INFO] [stdout]         mday = rem;
[INFO] [stdout]     }
[INFO] [stdout] 
[INFO] [stdout]     if !has_yday {
[INFO] [stdout]         yday = py_time_day_of_year(year, month, mday);
[INFO] [stdout]     }
[INFO] [stdout]     if !has_wday {
[INFO] [stdout]         let days = py_time_days_from_civil(year, month, mday);
[INFO] [stdout]         wday = (days + 3).rem_euclid(7);
[INFO] [stdout]     }
[INFO] [stdout] 
[INFO] [stdout]     (year, month, mday, hour, minute, second, wday, yday, -1)
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] fn main() {
[INFO] [stdout]     let t1: f64 = std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap_or(std::time::Duration::from_secs(0)).as_secs_f64();
[INFO] [stdout]     let t2: f64 = std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap_or(std::time::Duration::from_secs(0)).as_secs_f64();
[INFO] [stdout]     assert!((t2 >= t1), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!((t1 > 0f64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     py_print(&("time() tests passed"));
[INFO] [stdout]     let t_ns1: i64 = std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap_or(std::time::Duration::from_secs(0)).as_nanos() as i64;
[INFO] [stdout]     let t_ns2: i64 = std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap_or(std::time::Duration::from_secs(0)).as_nanos() as i64;
[INFO] [stdout]     assert!((t_ns2 >= t_ns1), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!((t_ns1 > 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     py_print(&("time_ns() tests passed"));
[INFO] [stdout]     let mono1: f64 = py_time_monotonic();
[INFO] [stdout]     py_time_sleep(0.01f64);
[INFO] [stdout]     let mono2: f64 = py_time_monotonic();
[INFO] [stdout]     assert!((mono2 >= mono1), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     py_print(&("monotonic() tests passed"));
[INFO] [stdout]     let mono_ns1: i64 = py_time_monotonic_ns();
[INFO] [stdout]     py_time_sleep(0.005f64);
[INFO] [stdout]     let mono_ns2: i64 = py_time_monotonic_ns();
[INFO] [stdout]     assert!((mono_ns2 >= mono_ns1), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     py_print(&("monotonic_ns() tests passed"));
[INFO] [stdout]     let perf1: f64 = py_time_perf_counter();
[INFO] [stdout]     py_time_sleep(0.005f64);
[INFO] [stdout]     let perf2: f64 = py_time_perf_counter();
[INFO] [stdout]     assert!((perf2 >= perf1), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     py_print(&("perf_counter() tests passed"));
[INFO] [stdout]     let perf_ns1: i64 = py_time_perf_counter_ns();
[INFO] [stdout]     py_time_sleep(0.005f64);
[INFO] [stdout]     let perf_ns2: i64 = py_time_perf_counter_ns();
[INFO] [stdout]     assert!((perf_ns2 >= perf_ns1), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     py_print(&("perf_counter_ns() tests passed"));
[INFO] [stdout]     let proc1: f64 = py_time_process_time();
[INFO] [stdout]     let mut counter: i64 = 0i64;
[INFO] [stdout]     {
[INFO] [stdout]         for i in py_range(20000i64) {
[INFO] [stdout]             counter = (counter + i);
[INFO] [stdout]         }
[INFO] [stdout]     }
[INFO] [stdout]     let proc2: f64 = py_time_process_time();
[INFO] [stdout]     assert!((proc2 >= proc1), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     py_print(&("process_time() tests passed"));
[INFO] [stdout]     let proc_ns1: i64 = py_time_process_time_ns();
[INFO] [stdout]     {
[INFO] [stdout]         for i in py_range(20000i64) {
[INFO] [stdout]             counter = (counter + i);
[INFO] [stdout]         }
[INFO] [stdout]     }
[INFO] [stdout]     let proc_ns2: i64 = py_time_process_time_ns();
[INFO] [stdout]     assert!((proc_ns2 >= proc_ns1), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     py_print(&("process_time_ns() tests passed"));
[INFO] [stdout]     py_time_sleep(0f64);
[INFO] [stdout]     py_time_sleep(0.001f64);
[INFO] [stdout]     py_time_sleep((1i64 as f64));
[INFO] [stdout]     let start_from_import: f64 = py_time_monotonic();
[INFO] [stdout]     py_time_sleep(0.005f64);
[INFO] [stdout]     let end_from_import: f64 = py_time_monotonic();
[INFO] [stdout]     assert!((end_from_import >= start_from_import), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let now_value: f64 = std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH).unwrap_or(std::time::Duration::from_secs(0)).as_secs_f64();
[INFO] [stdout]     assert!((now_value > 0f64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let perf_ns_from_1: i64 = py_time_perf_counter_ns();
[INFO] [stdout]     py_time_sleep(0.001f64);
[INFO] [stdout]     let perf_ns_from_2: i64 = py_time_perf_counter_ns();
[INFO] [stdout]     assert!((perf_ns_from_2 >= perf_ns_from_1), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let proc_ns_from_1: i64 = py_time_process_time_ns();
[INFO] [stdout]     {
[INFO] [stdout]         for i in py_range(10000i64) {
[INFO] [stdout]             counter = (counter + i);
[INFO] [stdout]         }
[INFO] [stdout]     }
[INFO] [stdout]     let proc_ns_from_2: i64 = py_time_process_time_ns();
[INFO] [stdout]     assert!((proc_ns_from_2 >= proc_ns_from_1), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     py_print(&("from-import tests passed"));
[INFO] [stdout]     let epoch_gm = py_time_gmtime(Some(0f64));
[INFO] [stdout]     assert!(((epoch_gm).0 == 1970i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_gm).1 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_gm).2 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_gm).3 == 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_gm).4 == 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_gm).5 == 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_gm).6 == 3i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_gm).7 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_gm).8 == 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let epoch_local = py_time_localtime(Some(0f64));
[INFO] [stdout]     assert!(((epoch_local).0 > 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp0 = 1i64; let _tmp1 = (epoch_local).1; if !((_tmp0 <= _tmp1)) { false } else { let _tmp2 = 12i64; if !((_tmp1 <= _tmp2)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp3 = 1i64; let _tmp4 = (epoch_local).2; if !((_tmp3 <= _tmp4)) { false } else { let _tmp5 = 31i64; if !((_tmp4 <= _tmp5)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp6 = 0i64; let _tmp7 = (epoch_local).3; if !((_tmp6 <= _tmp7)) { false } else { let _tmp8 = 23i64; if !((_tmp7 <= _tmp8)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp9 = 0i64; let _tmp10 = (epoch_local).4; if !((_tmp9 <= _tmp10)) { false } else { let _tmp11 = 59i64; if !((_tmp10 <= _tmp11)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp12 = 0i64; let _tmp13 = (epoch_local).5; if !((_tmp12 <= _tmp13)) { false } else { let _tmp14 = 59i64; if !((_tmp13 <= _tmp14)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp15 = 0i64; let _tmp16 = (epoch_local).6; if !((_tmp15 <= _tmp16)) { false } else { let _tmp17 = 6i64; if !((_tmp16 <= _tmp17)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp18 = 1i64; let _tmp19 = (epoch_local).7; if !((_tmp18 <= _tmp19)) { false } else { let _tmp20 = 366i64; if !((_tmp19 <= _tmp20)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!((((epoch_local).8 == 0i64) || ((epoch_local).8 == 1i64)), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let now_gm = py_time_gmtime(None);
[INFO] [stdout]     let now_local = py_time_localtime(None);
[INFO] [stdout]     assert!(((now_gm).0 > 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((now_local).0 > 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let before_epoch = py_time_gmtime(Some((-1f64)));
[INFO] [stdout]     assert!(((before_epoch).0 == 1969i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((before_epoch).1 == 12i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((before_epoch).2 == 31i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((before_epoch).3 == 23i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((before_epoch).4 == 59i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((before_epoch).5 == 59i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((before_epoch).6 == 2i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((before_epoch).7 == 365i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let plus_one = py_time_gmtime(Some((1i64 as f64)));
[INFO] [stdout]     assert!(((plus_one).0 == 1970i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((plus_one).1 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((plus_one).2 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((plus_one).5 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let before_epoch_local = py_time_localtime(Some((-1f64)));
[INFO] [stdout]     assert!(((before_epoch_local).0 > 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp21 = 1i64; let _tmp22 = (before_epoch_local).1; if !((_tmp21 <= _tmp22)) { false } else { let _tmp23 = 12i64; if !((_tmp22 <= _tmp23)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp24 = 1i64; let _tmp25 = (before_epoch_local).2; if !((_tmp24 <= _tmp25)) { false } else { let _tmp26 = 31i64; if !((_tmp25 <= _tmp26)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp27 = 0i64; let _tmp28 = (before_epoch_local).3; if !((_tmp27 <= _tmp28)) { false } else { let _tmp29 = 23i64; if !((_tmp28 <= _tmp29)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp30 = 0i64; let _tmp31 = (before_epoch_local).4; if !((_tmp30 <= _tmp31)) { false } else { let _tmp32 = 59i64; if !((_tmp31 <= _tmp32)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp33 = 0i64; let _tmp34 = (before_epoch_local).5; if !((_tmp33 <= _tmp34)) { false } else { let _tmp35 = 59i64; if !((_tmp34 <= _tmp35)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp36 = 0i64; let _tmp37 = (before_epoch_local).6; if !((_tmp36 <= _tmp37)) { false } else { let _tmp38 = 6i64; if !((_tmp37 <= _tmp38)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp39 = 1i64; let _tmp40 = (before_epoch_local).7; if !((_tmp39 <= _tmp40)) { false } else { let _tmp41 = 366i64; if !((_tmp40 <= _tmp41)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!((((before_epoch_local).8 == 0i64) || ((before_epoch_local).8 == 1i64)), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     py_print(&("localtime()/gmtime() tests passed"));
[INFO] [stdout]     let sample_tm = (2024i64, 2i64, 29i64, 6i64, 7i64, 8i64, 3i64, 60i64, (-1i64));
[INFO] [stdout]     let formatted = py_time_strftime(&("%Y-%m-%d %H:%M:%S %j %w %% %a %A %b %B".to_string()), &(sample_tm));
[INFO] [stdout]     assert!((formatted == "2024-02-29 06:07:08 060 4 % Thu Thursday Feb February".to_string()), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!((py_time_strftime(&("%Y".to_string()), &(epoch_gm)) == "1970".to_string()), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!((py_time_strftime(&("X%QY".to_string()), &(sample_tm)) == "X%QY".to_string()), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let parsed_full = py_time_strptime(&("2024-02-29 06:07:08".to_string()), &("%Y-%m-%d %H:%M:%S".to_string()));
[INFO] [stdout]     assert!(((parsed_full).0 == 2024i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_full).1 == 2i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_full).2 == 29i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_full).3 == 6i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_full).4 == 7i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_full).5 == 8i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_full).7 == 60i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_full).8 == (-1i64)), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let parsed_yday = py_time_strptime(&("2024-060".to_string()), &("%Y-%j".to_string()));
[INFO] [stdout]     assert!(((parsed_yday).0 == 2024i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_yday).1 == 2i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_yday).2 == 29i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_yday).7 == 60i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let parsed_wday = py_time_strptime(&("2024-02-29 4".to_string()), &("%Y-%m-%d %w".to_string()));
[INFO] [stdout]     assert!(((parsed_wday).6 == 3i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let parsed_percent = py_time_strptime(&("2024%060".to_string()), &("%Y%%%j".to_string()));
[INFO] [stdout]     assert!(((parsed_percent).0 == 2024i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_percent).1 == 2i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_percent).2 == 29i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_percent).7 == 60i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let parsed_defaults = py_time_strptime(&("05:06:07".to_string()), &("%H:%M:%S".to_string()));
[INFO] [stdout]     assert!(((parsed_defaults).0 == 1900i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_defaults).1 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_defaults).2 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_defaults).3 == 5i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_defaults).4 == 6i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_defaults).5 == 7i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_defaults).6 == 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_defaults).7 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((parsed_defaults).8 == (-1i64)), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let epoch_fmt = py_time_strftime(&("%Y-%m-%d %H:%M:%S %w %j".to_string()), &(epoch_gm));
[INFO] [stdout]     assert!((epoch_fmt == "1970-01-01 00:00:00 4 001".to_string()), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let epoch_roundtrip = py_time_strptime(&(epoch_fmt), &("%Y-%m-%d %H:%M:%S %w %j".to_string()));
[INFO] [stdout]     assert!(((epoch_roundtrip).0 == 1970i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_roundtrip).1 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_roundtrip).2 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_roundtrip).3 == 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_roundtrip).4 == 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_roundtrip).5 == 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_roundtrip).6 == 3i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_roundtrip).7 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((epoch_roundtrip).8 == (-1i64)), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     py_print(&("strftime()/strptime() tests passed"));
[INFO] [stdout]     let import_gm = py_time_gmtime(Some(0f64));
[INFO] [stdout]     let import_local = py_time_localtime(Some(0f64));
[INFO] [stdout]     assert!(((import_gm).0 == 1970i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((import_local).0 > 0i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp42 = 1i64; let _tmp43 = (import_local).1; if !((_tmp42 <= _tmp43)) { false } else { let _tmp44 = 12i64; if !((_tmp43 <= _tmp44)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!({ let _tmp45 = 1i64; let _tmp46 = (import_local).2; if !((_tmp45 <= _tmp46)) { false } else { let _tmp47 = 31i64; if !((_tmp46 <= _tmp47)) { false } else { true } } }, "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!((((import_local).8 == 0i64) || ((import_local).8 == 1i64)), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!((py_time_strftime(&("%Y-%m-%d".to_string()), &(import_gm)) == "1970-01-01".to_string()), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     let import_parsed = py_time_strptime(&("1970-01-01".to_string()), &("%Y-%m-%d".to_string()));
[INFO] [stdout]     assert!(((import_parsed).0 == 1970i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((import_parsed).1 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     assert!(((import_parsed).2 == 1i64), "AssertionError: {}", "assertion failed".to_string());
[INFO] [stdout]     py_print(&("from-import tuple/date-format tests passed"));
[INFO] [stdout]     py_print(&("All time module tests passed!"));
[INFO] [stdout] }
[INFO] [stdout] 
[INFO] [stdout] stderr: error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> /tmp/py2rust_test_stdlib_time/main.rs:193:24
[INFO] [stdout]     |
[INFO] [stdout] 193 |     let local_result = chrono::TimeZone::with_ymd_and_hms(&chrono::Local, year, month, mday, 12, 0, 0);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 193 |     let local_result = <dyn chrono::TimeZone>::with_ymd_and_hms(&chrono::Local, year, month, mday, 12, 0, 0);
[INFO] [stdout]     |                        ++++                 +
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `from_timestamp` found for struct `DateTime<Tz>` in the current scope
[INFO] [stdout]    --> /tmp/py2rust_test_stdlib_time/main.rs:221:48
[INFO] [stdout]     |
[INFO] [stdout] 221 |     let utc = chrono::DateTime::<chrono::Utc>::from_timestamp(whole, 0)
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^ function or associated item not found in `DateTime<Utc>`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `DateTime<Utc>` consider using one of the following associated functions:
[INFO] [stdout]       DateTime::<Tz>::from_utc
[INFO] [stdout]       DateTime::<Tz>::from_local
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.22/src/datetime/mod.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn from_utc(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime<Tz> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn from_local(datetime: NaiveDateTime, offset: Tz::Offset) -> DateTime<Tz> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: there is a method `timestamp` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/chrono-0.4.22/src/datetime/mod.rs:197:5
[INFO] [stdout]     |
[INFO] [stdout] 197 |     pub fn timestamp(&self) -> i64 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0599, E0782.
[INFO] [stdout] For more information about an error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x59a315524cfa - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x59a315524cfa - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x59a315524cfa - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x59a315524cfa - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x59a31553ab3a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x59a31553ab3a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x59a3155297f2 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x59a3155297f2 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x59a315501d2f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x59a315501d2f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x59a31551c3f9 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x59a314da106c - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x59a314da106c - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x59a31551c5b2 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x59a31551c5b2 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x59a315501de8 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x59a3154f94c9 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x59a315502afd - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x59a31553b41c - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x59a314d94b09 - runtime::common::run_py::he024a8d7b0586082
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/py2rust/tests/common/mod.rs:30:5
[INFO] [stdout]   20:     0x59a314d94053 - runtime::runtime_stdlib_time_comprehensive::h51eae282ded21261
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/py2rust/tests/runtime.rs:13:13
[INFO] [stdout]   21:     0x59a314d94077 - runtime::runtime_stdlib_time_comprehensive::{{closure}}::hf84de3153e799f89
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/py2rust/tests/runtime.rs:12:24
[INFO] [stdout]   22:     0x59a314d92926 - core::ops::function::FnOnce::call_once::h35d44a137ceb1b89
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x59a314d9514b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x59a314d9514b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x59a314da1b3b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x59a314da1b3b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   27:     0x59a314da1b3b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x59a314da1b3b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x59a314da1b3b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x59a314da1b3b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x59a314da1b3b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x59a314d9d254 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x59a314d9d254 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x59a314da4742 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x59a314da4742 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   36:     0x59a314da4742 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x59a314da4742 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x59a314da4742 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x59a314da4742 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x59a314da4742 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x59a3155240bf - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   42:     0x59a3155240bf - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x77dcb057aaa4 - <unknown>
[INFO] [stdout]   44:     0x77dcb0607a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     runtime_stdlib_json_comprehensive
[INFO] [stdout]     runtime_stdlib_time_comprehensive
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 28 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.53s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test runtime`
[INFO] running `Command { std: "docker" "inspect" "dbc7b3825ea11703f229a763909cb558587e788e149081b5586186bf099e3ac2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dbc7b3825ea11703f229a763909cb558587e788e149081b5586186bf099e3ac2", kill_on_drop: false }`
[INFO] [stdout] dbc7b3825ea11703f229a763909cb558587e788e149081b5586186bf099e3ac2
