cmake - 如何在Chrome原生客户端中运行测试用例?

标签 cmake google-nativeclient ctest

我正在移植一个库以在 Chrome 可移植 native 客户端 (PNaCl) 下工作。我设法编译它并使用它运行一个简单的程序。现在我需要验证它是否正常工作,这意味着运行完整的测试套件。该库使用 CMake 作为构建系统,使用 CTest 作为测试用例,因此每个库都是一个独立的应用程序,运行并从 main() 返回 0 或 1 以显示它是否通过。我如何在 native 客户端下运行它们?

当然,我可以修改每个模块,将其变成适当的模块并创建一个运行它的接口(interface)。但它们有数百个,每一个都必须独立修改。是否有任何机制可以在 native 客户端下运行现有的 CTest 测试套件?

最佳答案

有一个选项;您可以构建一个以 main() 作为入口点(并且不使用任何 Pepper 接口(interface))的 nexe,而不是构建 Pepper 模块,然后可以在 sel_ldr(包含在 SDK 中的一个命令行实用程序)下运行(在pepper_XX/tools目录中)并且可以运行非Pepper neexes。如果您将 -a 标志传递给 sel_ldr,您的 nexe 甚至可以获得本地文件系统访问权限,因此一般来说它对于单元测试之类的事情很有用。

如果您使用 PNaCl 工具链,则可以构建此命令行 pexe,然后使用 SDK 中的 pnacl-translate 工具将其离线转换为 nexe。

更多详细信息可以在 mailing list 上找到。

关于cmake - 如何在Chrome原生客户端中运行测试用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24643225/

相关文章:

cmake - CTest-使用标签进行不同的测试CTestTestfile.cmake

cmake - 使用 cmake 构建我的项目后如何运行 ctest

cmake - 从 `pkg-config` 使用 `cmake` 的正确方法是什么?

c++ - CMake:如何在 CMakeLists.txt 中构建多个库?

cmake - COMPILE_FLAGS 和 COMPILE_OPTIONS 的区别

c++ - 如何在 NaCl 模块中使用移植库?

opencv - 谷歌本地客户端(NaCl、PNaCl)中的英特尔线程构建 block (TBB)

cmake - 如何通过 cmake 包含 libgit2

c++ - 如何在 NaCl 中为 ARM 提供不同的实现

testing - 如何使用 CMake 和 CTest 提供参数?