test-weak-partial 技术文档
路径:
components/crate_interface/test_crates/test-weak-partial类型:二进制 crate(独立测试工作区成员,publish = false) 分层:组件层 /crate_interface多 crate 测试矩阵 / 最终链接验证端 Rust 要求:nightly(依赖#![feature(linkage)]) 文档依据:components/crate_interface/test_crates/test-weak-partial/Cargo.toml、components/crate_interface/test_crates/test-weak-partial/src/main.rs、components/crate_interface/test_crates/Cargo.toml、components/crate_interface/test_crates/run_tests.sh、components/crate_interface/README.md、components/crate_interface/tests/test_weak_default.rs、components/crate_interface/Cargo.toml、Cargo.toml
test-weak-partial 是 crate_interface weak_default 测试矩阵中负责“默认回退路径”的最终链接/验证端。它只链接 define-weak-traits 和 impl-weak-partial,并且刻意不把 impl-weak-traits 带入最终二进制,从而观察当实现侧只补齐必需方法时,弱 符号默认实现是否会在真实程序里接管剩余方法。它不是“功能不完整的运行时组件”,而是专门为链接期默认回退语义准备的终端测试资产。
1. 架构设计分析
1.1 在测试矩阵中的真实定位
test-weak-partial 与 test-weak 共同组成 weak_default 的最终验证矩阵,但两者承担的职责相反:
test-weak:观察“有覆盖时,强符号如何优先”test-weak-partial:观察“无覆盖时,弱符号如何接管”
它同样位于独立测试工作区中,而不是仓库正式产品路径的一部分:
- 仓库顶层
Cargo.toml将components/crate_interface/test_crates排除在主工作区之外 components/crate_interface/Cargo.toml也排除了test_cratescomponents/crate_interface/test_crates/Cargo.toml统一设置为publish = false
这表明它的价值不在于对外提供功能,而在于给 crate_interface 的默认回退语义提供最终证据。