create_test_sourcelist

创建一个测试驱动程序,将许多小型测试链接到一个单独的可执行文件中。这在构建带有大型库的静态可执行文件以缩小总所需大小时非常有用。

create_test_sourcelist(<sourceListName> <driverName> <test>... <options>...)

从单个测试源列表生成一个测试驱动源文件,并提供一个可以构建为可执行文件的组合源列表。

选项包括

<sourceListName>

用于存储构建测试驱动程序所需的源文件列表的变量名称。该列表将包含 <test>... 源和生成的 <driverName> 源。

在 3.29 版本中变更: 测试驱动程序源以绝对路径列在构建树中。 之前仅列为 <driverName>

<driverName>

要生成到构建树中的测试驱动源文件的名称。源文件将包含一个 main() 程序入口点,该入口点分派到命令行上命名的任何测试。

<test>...

要添加到驱动程序二进制文件的测试源文件。每个测试源文件都必须有一个函数,该函数名称与删除扩展名的文件名相同。例如,foo.cxx 测试源可能包含

int foo(int argc, char** argv)
EXTRA_INCLUDE <header>

指定要在生成的测试驱动程序源中 #include 的头文件。

FUNCTION <function>

指定要使用指向 argcargv 的指针调用的函数。该函数可以在 EXTRA_INCLUDE 头文件中提供

void function(int* pargc, char*** pargv)

这可以用于向每个测试添加额外的命令行处理。

此外,一些 CMake 变量会影响测试驱动程序的生成

CMAKE_TESTDRIVER_BEFORE_TESTMAIN

在调用每个测试的函数之前直接放置的代码。

CMAKE_TESTDRIVER_AFTER_TESTMAIN

在调用每个测试的函数之后直接放置的代码。