如何使用`setcap`来增加`cargo test`生成的可执行文件的权限?

问题描述

我正在用 Rust/C 编写一个性能分析工具。

我在 Rust 中使用了对 perf_event_open 的系统调用,并编写了一个测试。 测试是这样的:

#[test]
fn syscall_test() {
    let event = &mut perf_event_attr {
        type_: perf_type_id_PERF_TYPE_HARDWARE,size: std::mem::size_of::<perf_event_attr>() as u32,// something to consider fixing,for now leave it alone.
        config: perf_hw_id_PERF_COUNT_HW_INSTRUCTIONS as u64,..Default::default()
    };
    event.set_disabled(1);
    event.set_exclude_kernel(1);
    event.set_exclude_hv(1);
    let fd: isize = perf_event_open(&event,-1,0);
    assert_ne!(fd,"Testing for failure");
}

如何增加测试可执行文件的权限?如果没有为可执行文件设置 CAP_PERFMON 或 CAP_SYS_ADMIN, perf_event_open 将始终返回 -1。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...