10次发布
0.1.9 | 2024年8月3日 |
---|---|
0.1.8 | 2024年7月28日 |
0.1.2 | 2024年6月26日 |
#163 in 测试
479次每月下载
18KB
316 代码行
mockrs Crate文档
概述
《mockrs》crate提供了一个强大的工具,用于在Rust中进行函数模拟和拦截,专门针对x86_64架构。此实用工具特别适用于测试和调试目的,在需要暂时替换函数行为时非常有用。
主要功能
- 函数模拟:用模拟实现替换函数的功能。
- 线程本地存储:跟踪每个线程的模拟。
用法
要使用mockrs
,将其包含在您的Cargo.toml
中,然后在Rust代码中导入。
[dependencies]
mockrs = "0.1.*" # Replace with the actual version number
基本示例
以下是一个使用mockrs
模拟add
函数的简单示例
use mockrs::mock;
fn add(a: i64, b: i64) -> i64 {
a + b
}
fn mock_add(_a: i64, _b: i64) -> i64 {
100
}
fn main() {
assert_eq!(add(1, 2), 3);
let mocker = mock!(add, mock_add);
assert_eq!(add(1, 2), 100);
drop(mocker);
assert_eq!(add(1, 2), 3);
}
API参考
X8664Mocker
X8664Mocker
结构是crate的核心,提供模拟函数的功能。
pub fn mock(old_func: usize, new_func: usize) -> X8664Mocker
:创建一个新的X8664Mocker
实例来模拟指定的函数。
mock!
宏
一个方便的宏,用于创建一个新的X8664Mocker
实例。
mock!($old_func:expr, $new_func:expr)
: 将原始函数$old_func
替换为新函数$new_func
。
安全性和注意事项
mockrs
在低级别运行,操作内存和处理信号。请谨慎使用,并确保原始函数和新函数具有兼容的签名。- 此软件包仅设计用于 x86_64 架构。
贡献
欢迎向 mockrs
软件包贡献!请随时提交拉取请求或创建问题报告来报告错误和功能请求。
许可证
mockrs
软件包采用 MIT 许可证。更多信息请参阅 LICENSE。
此 README 文件是根据提供的源代码自动生成的。有关更详细的文档,请参阅代码中的内联注释。
依赖项
~15MB
~329K SLoC