CMake使用库预加载每个测试

时间:2018-01-11 08:59:56

标签: linux cmake ctest

在我们的Linux应用程序中,我们使用预装了LD_PRELOAD的库。

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

我是否可以告诉CMake它应该为每个执行的测试添加LD_PRELOAD

使用make test执行测试。

1 个答案:

答案 0 :(得分:2)

假设您使用add_test注册单个测试,最有效的方法是使用test propertiesENVIRONMENT 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的平台。