我正在移植一个库以在 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/