[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