[INFO] cloning repository https://github.com/Business-Wizard/architecture-tools
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Business-Wizard/architecture-tools" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBusiness-Wizard%2Farchitecture-tools", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBusiness-Wizard%2Farchitecture-tools'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f7f87e298201287656a35f83a18bf7a92de26eae
[INFO] testing Business-Wizard/architecture-tools against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBusiness-Wizard%2Farchitecture-tools" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-5-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/Business-Wizard/architecture-tools
[INFO] finished tweaking git repo https://github.com/Business-Wizard/architecture-tools
[INFO] tweaked toml for git repo https://github.com/Business-Wizard/architecture-tools written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Business-Wizard/architecture-tools on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Business-Wizard/architecture-tools already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8
[INFO] running `Command { std: "docker" "start" "7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling tree-sitter-language v0.1.7
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling bitflags v2.12.1
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling yeslogic-fontconfig-sys v6.0.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling camino v1.2.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling pathfinder_simd v0.5.6
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling dlib v0.5.3
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling streaming-iterator v0.1.9
[INFO] [stderr]    Compiling freetype-sys v0.20.1
[INFO] [stderr]    Compiling tree-sitter-rust v0.24.2
[INFO] [stderr]    Compiling tree-sitter-python v0.23.6
[INFO] [stderr]    Compiling jpeg-decoder v0.3.2
[INFO] [stderr]    Compiling font-kit v0.14.3
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling pathfinder_geometry v0.5.1
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling float-ord v0.3.2
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling image v0.24.9
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling ttf-parser v0.20.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tree-sitter v0.25.10 (/opt/rustwide/workdir/vendor/tree-sitter-0.25.10)
[INFO] [stderr]    Compiling comfy-table v7.2.2
[INFO] [stderr]    Compiling petgraph v0.7.1
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling plotters-bitmap v0.3.7
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling architecture-core v0.1.0 (/opt/rustwide/workdir/crates/architecture-core)
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling lang-core v0.1.0 (/opt/rustwide/workdir/crates/lang-core)
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling py-analyzer v0.1.0 (/opt/rustwide/workdir/crates/py-analyzer)
[INFO] [stderr]    Compiling rs-analyzer v0.1.0 (/opt/rustwide/workdir/crates/rs-analyzer)
[INFO] [stderr]    Compiling awt v0.1.0 (/opt/rustwide/workdir/crates/awt)
[INFO] [stderr] warning: unused dependency `colored`
[INFO] [stderr]   --> crates/awt/Cargo.toml:24:1
[INFO] [stderr]    |
[INFO] [stderr] 24 | colored = "3"
[INFO] [stderr]    | ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `colored`
[INFO] [stderr] warning: unused dependency `comfy-table`
[INFO] [stderr]   --> crates/awt/Cargo.toml:26:1
[INFO] [stderr]    |
[INFO] [stderr] 26 | comfy-table = "7"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `comfy-table`
[INFO] [stderr] warning: unused dependency `tempfile`
[INFO] [stderr]   --> crates/awt/Cargo.toml:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | tempfile = "3"
[INFO] [stderr]    | ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `tempfile`
[INFO] [stderr] warning: unused dependency `toml`
[INFO] [stderr]   --> crates/awt/Cargo.toml:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | toml = "0.8"
[INFO] [stderr]    | ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `toml`
[INFO] [stderr] warning: `awt` (manifest) generated 4 warnings
[INFO] [stderr] warning: unused dependency `camino`
[INFO] [stderr]   --> crates/py-analyzer/Cargo.toml:17:1
[INFO] [stderr]    |
[INFO] [stderr] 17 | camino = { version = "1", features = ["serde1"] }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `camino`
[INFO] [stderr] warning: unused dependency `serde_json`
[INFO] [stderr]   --> crates/py-analyzer/Cargo.toml:13:1
[INFO] [stderr]    |
[INFO] [stderr] 13 | serde_json = "1"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `serde_json`
[INFO] [stderr] warning: `py-analyzer` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 42s
[INFO] running `Command { std: "docker" "inspect" "7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling rs-analyzer v0.1.0 (/opt/rustwide/workdir/crates/rs-analyzer)
[INFO] [stderr]    Compiling py-analyzer v0.1.0 (/opt/rustwide/workdir/crates/py-analyzer)
[INFO] [stderr]    Compiling architecture-core v0.1.0 (/opt/rustwide/workdir/crates/architecture-core)
[INFO] [stderr]    Compiling lang-core v0.1.0 (/opt/rustwide/workdir/crates/lang-core)
[INFO] [stderr]    Compiling awt v0.1.0 (/opt/rustwide/workdir/crates/awt)
[INFO] [stderr] warning: unused dependency `colored`
[INFO] [stderr]   --> crates/awt/Cargo.toml:24:1
[INFO] [stderr]    |
[INFO] [stderr] 24 | colored = "3"
[INFO] [stderr]    | ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `colored`
[INFO] [stderr] warning: unused dependency `comfy-table`
[INFO] [stderr]   --> crates/awt/Cargo.toml:26:1
[INFO] [stderr]    |
[INFO] [stderr] 26 | comfy-table = "7"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `comfy-table`
[INFO] [stderr] warning: unused dependency `toml`
[INFO] [stderr]   --> crates/awt/Cargo.toml:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | toml = "0.8"
[INFO] [stderr]    | ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `toml`
[INFO] [stderr] warning: `awt` (manifest) generated 3 warnings
[INFO] [stderr] warning: unused dependency `camino`
[INFO] [stderr]   --> crates/py-analyzer/Cargo.toml:17:1
[INFO] [stderr]    |
[INFO] [stderr] 17 | camino = { version = "1", features = ["serde1"] }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `camino`
[INFO] [stderr] warning: unused dependency `serde_json`
[INFO] [stderr]   --> crates/py-analyzer/Cargo.toml:13:1
[INFO] [stderr]    |
[INFO] [stderr] 13 | serde_json = "1"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `serde_json`
[INFO] [stderr] warning: `py-analyzer` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 10.80s
[INFO] running `Command { std: "docker" "inspect" "7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused dependency `colored`
[INFO] [stderr]   --> crates/awt/Cargo.toml:24:1
[INFO] [stderr]    |
[INFO] [stderr] 24 | colored = "3"
[INFO] [stderr]    | ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `colored`
[INFO] [stderr] warning: unused dependency `comfy-table`
[INFO] [stderr]   --> crates/awt/Cargo.toml:26:1
[INFO] [stderr]    |
[INFO] [stderr] 26 | comfy-table = "7"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `comfy-table`
[INFO] [stderr] warning: unused dependency `toml`
[INFO] [stderr]   --> crates/awt/Cargo.toml:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | toml = "0.8"
[INFO] [stderr]    | ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `toml`
[INFO] [stderr] warning: `awt` (manifest) generated 3 warnings
[INFO] [stderr] warning: unused dependency `camino`
[INFO] [stderr]   --> crates/py-analyzer/Cargo.toml:17:1
[INFO] [stderr]    |
[INFO] [stderr] 17 | camino = { version = "1", features = ["serde1"] }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `camino`
[INFO] [stderr] warning: unused dependency `serde_json`
[INFO] [stderr]   --> crates/py-analyzer/Cargo.toml:13:1
[INFO] [stderr]    |
[INFO] [stderr] 13 | serde_json = "1"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `serde_json`
[INFO] [stderr] warning: `py-analyzer` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.16s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/architecture-core/ef25ecead2b390fc/out/architecture_core-ef25ecead2b390fc)
[INFO] [stdout] 
[INFO] [stdout] running 33 tests
[INFO] [stdout] test analyzer::tests::test_cycle_break_with_zero_should_use_zero ... ok
[INFO] [stdout] test analyzer::tests::test_intrinsic_abstractness_struct_should_return_zero ... ok
[INFO] [stdout] test analyzer::tests::test_module_instability_cross_module_edges_should_be_counted ... ok
[INFO] [stdout] test analyzer::tests::test_cycle_error_policy_should_return_error ... ok
[INFO] [stdout] test analyzer::tests::test_compositional_abstractness_mixed_deps_and_ops_should_blend_scores ... ok
[INFO] [stdout] test analyzer::tests::test_module_instability_same_module_edges_should_be_ignored ... ok
[INFO] [stdout] test analyzer::tests::test_module_is_test_test_variant_should_return_true ... ok
[INFO] [stdout] test analyzer::tests::test_object_instability_occurrence_should_weight_by_count ... ok
[INFO] [stdout] test analyzer::tests::test_module_is_test_source_variant_should_return_false ... ok
[INFO] [stdout] test analyzer::tests::test_intrinsic_abstractness_trait_like_should_return_one ... ok
[INFO] [stdout] test analyzer::tests::test_external_unknown_strict_policy_should_return_error ... ok
[INFO] [stdout] test analyzer::tests::test_ratio_metric_zero_denominator_should_return_none_score ... ok
[INFO] [stdout] test analyzer::tests::test_score_out_of_range_should_fail ... ok
[INFO] [stdout] test analyzer::tests::test_validate_graph_unknown_dependency_source_should_fail ... ok
[INFO] [stdout] test analyzer::tests::test_validate_graph_unknown_internal_dependency_target_should_fail ... ok
[INFO] [stdout] test object_type::test_abstractness::given_an_enum_object_should_measure_zero ... ok
[INFO] [stdout] test object_type::test_abstractness::given_class_with_mixed_primitive_and_interface_params_should_measure_half ... ok
[INFO] [stdout] test object_type::test_abstractness::given_class_with_no_params_should_measure_zero ... ok
[INFO] [stdout] test object_type::test_abstractness::given_class_with_only_interface_params_should_measure_one ... ok
[INFO] [stdout] test object_type::test_abstractness::given_function_with_mixed_primitive_and_interface_params_should_measure_half ... ok
[INFO] [stdout] test analyzer::tests::test_validate_graph_unknown_object_in_module_should_fail ... ok
[INFO] [stdout] test object_type::test_abstractness::given_class_with_only_primitive_params_should_measure_zero ... ok
[INFO] [stdout] test object_type::test_abstractness::given_a_value_object_should_measure_one ... ok
[INFO] [stdout] test object_type::test_abstractness::given_function_with_no_params_should_measure_zero ... ok
[INFO] [stdout] test analyzer::tests::test_score_valid_values_should_succeed ... ok
[INFO] [stdout] test analyzer::tests::test_unknown_type_ignore_policy_should_exclude_from_score ... ok
[INFO] [stdout] test analyzer::tests::test_validate_graph_unknown_module_reference_should_fail ... ok
[INFO] [stdout] test analyzer::tests::test_object_instability_unique_target_should_count_unique_targets ... ok
[INFO] [stdout] test object_type::test_abstractness::given_function_with_only_interface_params_should_measure_one ... ok
[INFO] [stdout] test object_type::test_abstractness::given_function_with_only_primitive_params_should_measure_zero ... ok
[INFO] [stdout] test analyzer::tests::test_unknown_type_strict_policy_should_return_error ... ok
[INFO] [stdout] test object_type::test_abstractness::given_an_interface_object_should_measure_one ... ok
[INFO] [stdout] test object_type::test_abstractness::given_an_trait_like_object_should_measure_one ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/build/awt/b69d4040efc3c929/out/awt-b69d4040efc3c929)
[INFO] [stdout] 
[INFO] [stdout] running 73 tests
[INFO] [stdout] test graph::metrics::tests::test_node_with_high_efferent_coupling_should_have_instability_one ... ok
[INFO] [stdout] test graph::metrics::tests::test_node_with_high_afferent_coupling_should_have_instability_zero ... ok
[INFO] [stdout] test graph::rules::god_module::tests::test_god_module_above_threshold_should_produce_violation ... ok
[INFO] [stdout] test graph::architecture_graph_builder::tests::test_module_dep_with_known_files_should_create_two_modules ... ok
[INFO] [stdout] test graph::rules::cycle::tests::test_self_loop_should_not_produce_violation ... ok
[INFO] [stdout] test graph::rules::god_module::tests::test_god_module_empty_module_deps_should_produce_no_violations ... ok
[INFO] [stdout] test graph::rules::god_module::tests::test_god_module_below_threshold_should_produce_no_violation ... ok
[INFO] [stdout] test graph::rules::cycle::tests::test_dag_with_no_cycles_should_produce_no_violations ... ok
[INFO] [stdout] test graph::rules::module_hub::tests::test_hub_above_threshold_should_produce_violation ... ok
[INFO] [stdout] test graph::rules::god_module::tests::test_same_module_self_edge_should_not_count_toward_fan_out ... ok
[INFO] [stdout] test graph::architecture_graph_builder::tests::test_internal_base_should_produce_internal_dependency_edge ... ok
[INFO] [stdout] test graph::architecture_graph_builder::tests::test_external_base_should_produce_external_dependency_edge ... ok
[INFO] [stdout] test graph::rules::god_module::tests::test_god_module_duplicate_edges_should_count_unique_imports_only ... ok
[INFO] [stdout] test graph::rules::module_hub::tests::test_multiple_edges_from_same_source_module_should_count_as_one ... ok
[INFO] [stdout] test graph::architecture_graph_builder::tests::test_protocol_base_should_produce_traitlike_kind ... ok
[INFO] [stdout] test graph::rules::module_hub::tests::test_hub_empty_module_deps_should_produce_no_violations ... ok
[INFO] [stdout] test graph::rules::cycle::tests::test_two_modules_with_mutual_dep_should_report_cycle ... ok
[INFO] [stdout] test graph::rules::module_hub::tests::test_same_module_self_edge_should_not_count_toward_fan_in ... ok
[INFO] [stdout] test report::dot::tests::test_cycle_edges_should_get_crimson_color ... ok
[INFO] [stdout] test report::dot::tests::test_penwidth_at_count_four_should_be_three_point_zero ... ok
[INFO] [stdout] test graph::rules::cycle::tests::test_empty_module_deps_should_produce_no_violations ... ok
[INFO] [stdout] test graph::architecture_graph_builder::tests::test_class_def_should_create_code_object_in_module ... ok
[INFO] [stdout] test graph::architecture_graph_builder::tests::test_test_file_path_should_produce_test_module_variant ... ok
[INFO] [stdout] test report::dot::tests::test_penwidth_at_count_one_should_be_two_point_zero ... ok
[INFO] [stdout] test graph::rules::cycle::tests::test_three_module_cycle_should_report_one_violation ... ok
[INFO] [stdout] test report::dot::tests::test_penwidth_at_count_nine_should_be_four_point_zero ... ok
[INFO] [stdout] test graph::rules::god_module::tests::test_multiple_edges_to_same_target_module_should_count_as_one ... ok
[INFO] [stdout] test graph::architecture_graph_builder::tests::test_empty_inputs_should_produce_empty_graph ... ok
[INFO] [stdout] test graph::metrics::tests::test_balanced_node_should_have_instability_half ... ok
[INFO] [stdout] test graph::metrics::tests::test_isolated_node_should_have_instability_one ... ok
[INFO] [stdout] test graph::rules::module_hub::tests::test_hub_below_threshold_should_produce_no_violation ... ok
[INFO] [stdout] test graph::rules::cycle::tests::test_two_disjoint_cycles_should_produce_two_violations ... ok
[INFO] [stdout] test report::dot::tests::test_render_isolated_source_node_should_get_yellow_fill ... ok
[INFO] [stdout] test report::dot::tests::test_non_cycle_edges_should_not_get_crimson_color ... ok
[INFO] [stdout] test report::dot::tests::test_render_mid_node_should_have_instability_zero_point_six_seven ... ok
[INFO] [stdout] test report::dot::tests::test_penwidth_grows_with_count ... ok
[INFO] [stdout] test report::dot::tests::test_render_non_cycle_node_should_not_get_lightcoral_fill ... ok
[INFO] [stdout] test report::dot::tests::test_render_balanced_node_should_have_instability_zero_point_five ... ok
[INFO] [stdout] test report::dot::tests::test_render_should_open_with_digraph_coupling ... ok
[INFO] [stdout] test report::dot::tests::test_render_should_use_box_shape_for_source_nodes ... ok
[INFO] [stdout] test report::dot::tests::test_render_stable_node_should_have_exact_label ... ok
[INFO] [stdout] test report::dot::tests::test_render_unstable_node_should_have_exact_label ... ok
[INFO] [stdout] test report::dot::tests::test_render_cycle_nodes_should_get_lightcoral_fill ... ok
[INFO] [stdout] test report::dot::tests::test_render_should_exclude_test_file_node_from_output ... ok
[INFO] [stdout] test report::dot::tests::test_render_should_exclude_edge_involving_test_file ... ok
[INFO] [stdout] test report::dot::tests::test_render_with_empty_metrics_should_not_panic ... ok
[INFO] [stdout] test report::objects_dot::tests::test_render_cycle_module_node_should_get_lightcoral ... ok
[INFO] [stdout] test report::objects_dot::tests::test_render_inherits_edge_should_be_dashed ... ok
[INFO] [stdout] test report::dot::tests::test_render_edge_should_point_from_importer_to_dependency ... ok
[INFO] [stdout] test report::dot::tests::test_render_edge_should_show_failure_count_as_label ... ok
[INFO] [stdout] test report::objects_dot::tests::test_render_interface_node_should_get_ellipse_lightblue ... ok
[INFO] [stdout] test report::dot::tests::test_render_connected_node_should_not_get_yellow_fill ... ok
[INFO] [stdout] test report::dot::tests::test_render_should_have_rankdir_rl ... ok
[INFO] [stdout] test report::dot::tests::test_render_should_include_exactly_two_source_nodes ... ok
[INFO] [stdout] test report::dot::tests::test_render_empty_graph_should_produce_valid_dot ... ok
[INFO] [stdout] test report::dot::tests::test_render_edge_should_show_penwidth_for_repeated_imports ... ok
[INFO] [stdout] test report::dot::tests::test_render_hub_node_should_have_instability_zero_point_four ... ok
[INFO] [stdout] test report::dot::tests::test_render_edge_should_accumulate_count_for_repeated_imports ... ok
[INFO] [stdout] test report::dot::tests::test_render_edge_should_show_penwidth_for_single_import ... ok
[INFO] [stdout] test report::objects_dot::tests::test_render_isolated_node_should_get_yellow_fill ... ok
[INFO] [stdout] test report::sdp_flow::tests::test_collect_edges_should_exclude_edges_with_missing_metrics ... ok
[INFO] [stdout] test report::sdp_flow::tests::test_collect_edges_should_exclude_test_nodes ... ok
[INFO] [stdout] test report::sdp_flow::tests::test_collect_edges_should_return_one_edge_for_single_dependency ... ok
[INFO] [stdout] test report::sdp_flow::tests::test_sdp_edge_colour_should_be_steep_for_large_healthy_jump ... ok
[INFO] [stdout] test report::sdp_flow::tests::test_sort_edges_by_dependency_then_jump_should_group_by_dependency_instability ... ok
[INFO] [stdout] test report::objects_dot::tests::test_render_uses_edge_should_be_solid ... ok
[INFO] [stdout] test report::sdp_flow::tests::test_sort_edges_by_severity_should_put_violations_first ... ok
[INFO] [stdout] test report::sdp_flow::tests::test_collect_edges_should_have_instability_values_in_unit_range ... ok
[INFO] [stdout] test report::sdp_flow::tests::test_sdp_edge_colour_should_be_green_for_small_healthy_jump ... ok
[INFO] [stdout] test graph::rules::module_hub::tests::test_hub_duplicate_edges_should_count_unique_importers_only ... ok
[INFO] [stdout] test report::sdp_flow::tests::test_write_sdp_flow_with_no_edges_should_produce_valid_empty_chart ... ok
[INFO] [stdout] test report::sdp_flow::tests::test_write_sdp_flow_with_valid_edges_should_produce_png_file ... ok
[INFO] [stdout] test report::sdp_flow::tests::test_write_sdp_flow_with_many_edges_should_cap_at_max_rows ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 73 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/lang-core/70e20dc6682eeca0/out/lang_core-70e20dc6682eeca0)
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/py-analyzer/ced4170613d9ef23/out/py_analyzer-ced4170613d9ef23)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 30 tests
[INFO] [stdout] test python_imports::tests::test_extract_bases_should_return_base_class_names ... ok
[INFO] [stdout] test python_imports::tests::test_collect_module_deps_relative_import_should_resolve_to_sibling_module ... ok
[INFO] [stdout] test python_imports::tests::test_extract_method_names_should_skip_dunders ... ok
[INFO] [stdout] test python_imports::tests::test_extract_module_names_from_import_should_return_module ... ok
[INFO] [stdout] test python_imports::tests::test_collect_module_deps_should_emit_edges ... ok
[INFO] [stdout] test python_imports::tests::test_extract_module_names_single_dot_relative_should_resolve_to_sibling ... ok
[INFO] [stdout] test python_imports::tests::test_extract_self_attributes_should_return_init_assignments ... ok
[INFO] [stdout] test python_imports::tests::test_parse_source_class_definition_should_emit_raw_class ... ok
[INFO] [stdout] test python_imports::tests::test_parse_source_empty_source_should_return_empty_vecs ... ok
[INFO] [stdout] test python_imports::tests::test_extract_empty_directory_should_return_empty_vecs ... ok
[INFO] [stdout] test python_imports::tests::test_extract_stdlib_base_class_not_in_graph_should_produce_no_dep ... ok
[INFO] [stdout] test python_imports::tests::test_extract_cross_module_no_import_ambiguous_should_drop_dep ... ok
[INFO] [stdout] test python_imports::tests::test_extract_multiple_files_should_collect_all_classes ... ok
[INFO] [stdout] test python_imports::tests::test_extract_self_reference_should_be_excluded ... ok
[INFO] [stdout] test python_imports::tests::test_extract_two_classes_same_file_should_produce_qualified_dep ... ok
[INFO] [stdout] test python_imports::tests::test_extract_module_deps_should_reflect_import_statements ... ok
[INFO] [stdout] test python_imports::tests::test_extract_module_names_single_dot_bare_relative_should_resolve_to_package ... ok
[INFO] [stdout] test python_imports::tests::test_extract_module_names_relative_too_many_dots_should_return_empty ... ok
[INFO] [stdout] test python_imports::tests::test_extract_module_names_import_should_return_module ... ok
[INFO] [stdout] test python_imports::tests::test_extract_module_names_double_dot_relative_should_resolve_to_grandparent ... ok
[INFO] [stdout] test python_imports::tests::test_parse_source_import_statement_should_emit_module_dep ... ok
[INFO] [stdout] test python_imports::tests::test_resolve_class_deps_ambiguous_short_name_is_dropped ... ok
[INFO] [stdout] test python_imports::tests::test_resolve_class_deps_imported_dep_stays_qualified ... ok
[INFO] [stdout] test python_imports::tests::test_extract_single_class_file_should_return_one_class_def ... ok
[INFO] [stdout] test python_imports::tests::test_extract_cross_module_dep_via_import_should_be_qualified ... ok
[INFO] [stdout] test python_imports::tests::test_resolve_class_deps_same_module_dep_should_be_qualified ... ok
[INFO] [stdout] test python_imports::tests::test_resolve_class_deps_should_reference_known_classes ... ok
[INFO] [stdout] test tests::test_path_to_module_name_init_file_should_resolve_to_package_name ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/rs-analyzer/9cd18ccbad94f52d/out/rs_analyzer-9cd18ccbad94f52d)
[INFO] [stdout] test tests::test_path_to_module_name_regular_file_should_resolve_to_dotted_path ... ok
[INFO] [stdout] test python_imports::tests::test_resolve_class_deps_self_reference_excluded ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 41 tests
[INFO] [stdout] test rust_imports::tests::test_emit_dep_external_crate_should_not_emit ... ok
[INFO] [stdout] test rust_imports::tests::test_emit_dep_std_import_should_not_emit ... ok
[INFO] [stdout] test rust_imports::tests::test_crate_root_for_with_src_segment_should_return_up_to_src ... ok
[INFO] [stdout] test rust_imports::tests::test_emit_dep_super_path_should_go_up_one_level ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_external_use_should_not_emit_edge ... ok
[INFO] [stdout] test rust_imports::tests::test_build_crate_map_should_find_workspace_member ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_crate_use_should_emit_module_dep_edge ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_bare_path_expr_should_emit_dep_to_workspace_crate ... ok
[INFO] [stdout] test rust_imports::tests::test_build_reexport_map_grouped_pub_use_should_map_all_symbols_to_submodule ... ok
[INFO] [stdout] test rust_imports::tests::test_path_to_module_name_lib_rs_should_resolve_to_src ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_super_use_should_resolve_to_parent_module ... ok
[INFO] [stdout] test rust_objects::tests::test_collect_raw_items_should_find_struct_enum_trait ... ok
[INFO] [stdout] test rust_objects::tests::test_collect_raw_items_should_set_kind_correctly ... ok
[INFO] [stdout] test rust_imports::tests::test_path_to_module_name_regular_file_should_strip_rs_extension ... ok
[INFO] [stdout] test rust_objects::tests::test_crate_prefix_of_with_src_segment_should_return_prefix_up_to_src ... ok
[INFO] [stdout] test rust_objects::tests::test_extract_empty_directory_should_return_empty ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_alias_use_should_emit_original_module_not_alias ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_pub_use_reexport_cross_crate_should_redirect_dep_to_submodule ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_bare_path_expr_repeated_should_emit_single_dep ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_third_party_crate_use_should_not_emit_dep ... ok
[INFO] [stdout] test rust_objects::tests::test_extract_impl_method_signature_types_should_produce_dep_edges ... ok
[INFO] [stdout] test rust_objects::tests::test_extract_impl_trait_should_return_trait_and_type ... ok
[INFO] [stdout] test rust_imports::tests::test_emit_dep_crate_path_should_prepend_crate_root ... ok
[INFO] [stdout] test rust_objects::tests::test_extract_impl_trait_for_struct_should_set_bases ... ok
[INFO] [stdout] test rust_objects::tests::test_extract_impl_no_trait_should_return_none ... ok
[INFO] [stdout] test rust_objects::tests::test_extract_self_reference_in_struct_should_be_excluded ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_mod_inline_block_should_not_emit_dep ... ok
[INFO] [stdout] test rust_objects::tests::test_extract_single_struct_should_return_one_class_def ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_brace_use_group_should_emit_multiple_edges ... ok
[INFO] [stdout] test rust_objects::tests::test_extract_trait_should_have_trait_kind_marker_in_bases ... ok
[INFO] [stdout] test rust_objects::tests::test_item_name_struct_should_return_name ... ok
[INFO] [stdout] test rust_objects::tests::test_extract_struct_using_other_struct_should_produce_qualified_dep ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_mod_declaration_should_emit_dep ... ok
[INFO] [stdout] test rust_objects::tests::test_extract_trait_impl_cross_file_should_produce_qualified_base ... ok
[INFO] [stdout] test rust_objects::tests::test_resolve_deps_same_crate_wins_when_name_exists_in_two_crates_should_produce_edge ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_bare_path_expr_third_party_should_not_emit ... ok
[INFO] [stdout] test rust_objects::tests::test_resolve_deps_cross_crate_ambiguous_with_no_local_winner_should_drop_dep ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_pub_use_reexport_crate_path_should_redirect_dep_to_submodule ... ok
[INFO] [stdout] test rust_objects::tests::test_extract_multiple_files_should_collect_all_items ... ok
[INFO] [stdout] test rust_imports::tests::test_path_to_module_name_main_rs_should_resolve_to_src ... ok
[INFO] [stdout] test rust_imports::tests::test_extract_external_crate_use_should_emit_dep_when_workspace_member ... ok
[INFO] [stderr]    Doc-tests architecture_core
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests lang_core
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests py_analyzer
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rs_analyzer
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8", kill_on_drop: false }`
[INFO] [stdout] 7abeb2606d6a22f6d935ccbb675fa8e55247e52911da424a2224f951859be2c8
