如何构建和测试¶
本节描述了如何独立构建 libpas。在对 libpas 进行更改时,您会经常执行此操作。在任何更大的系统(如 WebKit)中尝试您的更改之前,最好先运行 libpas 的测试,因为 libpas 测试在发现错误方面非常有效。如果 libpas 通过了它自己的测试,那么基本的浏览功能似乎就能正常工作。在生产环境中,libpas 是作为其他项目(如 bmalloc)的一部分构建的,它只是将 libpas 的所有文件拉入该项目的构建系统。
构建和测试
./build_and_test.sh
构建
./build.sh
测试
./test.sh
清理
./clean.sh
在我的 M1 机器上,我通常这样做:
./build_and_test.sh -a arm64e
这避免了构建臃肿的 arm64+arm64e 二进制文件。
libpas 构建默认会构建(如果您使用 build_and_test.sh
或 test.sh
,还会测试)一个测试变体和一个默认变体。测试变体包含仅用于测试的断言。假设您正在进行一些速度测试,并且只想构建默认变体,可以这样做:
./build.sh -v default
默认情况下,libpas 构建的是 Release 版本,但您可以更改它:
./build.sh -c Debug
所有工具(build.sh
、test.sh
、build_and_test.sh
和 clean.sh
)都接受相同的选项(-h
、-c <config>
、-s <sdk>
、-a <arch>
、-v <variant>
、-t <target>
和 -p <port>
)。
Libpas 在编译期间会创建多个二进制文件(test_pas
和 chaos
),这些文件由 test.sh
使用。如果您只想测试或调试一个或少量测试用例,直接调用这些二进制文件可能会更好。
test_pas
允许您筛选要运行的测试用例。以下是一些示例:
./test_pas 'JITHeapTests' # Run all JIT heap tests
./test_pas 'testPGMSingleAlloc()' # Run specific test
./test_pas '(1):' # Run test case 1