在我们的 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/