什么是 Rust 系统测试?
What is a Rust systest?
我 sometimes see Rust crate 有一个名为 systest
的文件夹。我猜这个名字代表 "system test",但我找不到任何相关文档。
我的问题是:
systest
的目的是什么?只是测试一个 crate 编译是否正常,或者还测试另一个 crate 中的某些代码是否运行正常?
- 写
systest
有什么规律可循?它只是一个名为 systest
的文件夹中的箱子吗?
- 为什么
systest/src
中的 lib.rs
似乎总是包含从 build.rs
生成的文件 all.rs
?
systest
不是 Rust 或 Cargo 中使用的标准名称。但是,它是 ctest 文档建议的名称,它对 FFI 绑定执行自动测试。 build.rs 使用 ctest
生成包含测试的 all.rs 文件,该文件包含在主文件中。
根据文档,生成的测试包括确保所有函数签名、常量值、结构 layout/alignment、类型 size/alignment 等都匹配它们的 C 等价物。
我 sometimes see Rust crate 有一个名为 systest
的文件夹。我猜这个名字代表 "system test",但我找不到任何相关文档。
我的问题是:
systest
的目的是什么?只是测试一个 crate 编译是否正常,或者还测试另一个 crate 中的某些代码是否运行正常?- 写
systest
有什么规律可循?它只是一个名为systest
的文件夹中的箱子吗? - 为什么
systest/src
中的lib.rs
似乎总是包含从build.rs
生成的文件all.rs
?
systest
不是 Rust 或 Cargo 中使用的标准名称。但是,它是 ctest 文档建议的名称,它对 FFI 绑定执行自动测试。 build.rs 使用 ctest
生成包含测试的 all.rs 文件,该文件包含在主文件中。
根据文档,生成的测试包括确保所有函数签名、常量值、结构 layout/alignment、类型 size/alignment 等都匹配它们的 C 等价物。