linux - CMake 使用库预加载每个测试

标签 linux cmake ctest

在我们的 Linux 应用程序中,我们使用了一个使用 LD_PRELOAD 预加载的库。

我想为每个测试预加载相同的库。我们使用 CMake 作为构建工具。

我可以告诉 CMake 它应该为执行的每个测试将 LD_PRELOAD 添加到环境中吗?

测试用make test执行。

最佳答案

假设您使用 add_test要注册单个测试,实现此目的的最可靠方法是使用 test properties . ENVIRONMENT property允许您指定为运行测试而设置的任意环境变量:

add_test(NAME some_test COMMAND some_test_target)
add_test(NAME some_other_test COMMAND other_test_target)

set_property(TEST some_test some_other_test
   PROPERTY
   ENVIRONMENT LD_PRELOAD=/path/to/preload.so)

您可能还想使用 generator expression 转义该属性使测试可移植到不支持 LD_PRELOAD 的平台。

关于linux - CMake 使用库预加载每个测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48203112/

相关文章:

linux - 如何使用 vi 查找文件中的某些扩展名?

创建一个程序来求解幂而不使用 pow() 而使用 While 循环 : PROBLEM WITH "UNDEFINED" ANSWRES

windows - 我如何在windows平台下使用gtk和cmake?

Python 将 32 位指针地址传递给 C 函数

python - PyCarl 的 cmake 构建过程失败,并要求使用 -fPIC 重新编译

c - SIGALRM 的处理程序不起作用

c++ - 如何判断当前进程是否已经锁定了一个文件?

unit-testing - CMake:如何对自己的 CMake 脚本宏/功能进行单元测试?

cmake - 如何在cmake中将引用的参数传递给add_test?