在我们的Linux应用程序中,我们使用预装了LD_PRELOAD
的库。
我想为每个测试预加载相同的库。我们使用CMake作为构建工具。
我是否可以告诉CMake它应该为每个执行的测试添加LD_PRELOAD
。
使用make test
执行测试。
答案 0 :(得分:2)
假设您使用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
的平台。