什么是 Fuchsia CTF?
请参阅 CTF 概览,了解什么是 CTF。
CTF 发布时间表是怎样的?
CTF 有多个版本,并且有不同的发布频率:
发布 | 时间表 |
---|---|
Canary 版 | 大约 4 小时 |
里程碑 | 大约 6 周 |
Canary 版本会在 Fuchsia 平台的新 Canary 版本创建时创建。同样,当创建 Fuchsia 平台的新里程碑版本时,也会创建里程碑版本。
里程碑分支(例如 release/f7)通常会收到樱桃精选内容。在这种情况下,系统会为该里程碑生成新的 CTF,并自动将其整合到 CI/CQ 中。
CTF 测试何时开始在 CQ 上运行?
最新测试版本将立即开始基于 CI/CQ 运行。此版本的测试无法保证向后兼容性。
当下一个 CTF 版本定型时,它将包含最新测试的快照,该快照会在该 CTF 版本纳入 CI/CQ 时立即开始运行。此版本的测试可保证向后兼容性。
如需了解发布时间表,请参阅上文的此部分。
CTF 在 CQ 中使用什么测试环境?
请访问 go/fuchsia-builder-viz。查找名称以“-cts”结尾的构建器。
所有 CTF 测试至少在 Fuchsia 模拟器中的 core.x64 映像上运行。
如何判断哪个版本的 CTF 测试失败?
CQ 可以同时运行同一 CTF 测试的多个版本:最佳版本、最新的 Canary 版本以及先前的里程碑版本。
CTF 测试软件包以其测试的 Fuchsia API 级别命名:
| 版本 | 软件包名称示例 | |-|-| | 树状图提示 | my_test | | Canary | my_test_apicanary | | API 级别 $N | my_test_api$N |
完整的软件包网址将如下所示:
fuchsia-pkg://fuchsia.com/my_test_api24#meta/my_test.cm
如何在本地重现 CTF 测试失败问题?
# Build the test.
fx set //sdk/ctf/tests/fidl/fuchsia.example:tests
fx build
# Run all versions.
fx test
# Run the version for API level 20.
fx test fuchsia.example_test_api20
如需了解如何运行 Fuchsia 测试,另请参阅此指南。
如果 CTF 测试阻止了我的 CL,该怎么办?
这表示您的 CL 破坏了一部分平台界面区域。请确认下游代码库中没有项目依赖由 CL 修改的 API 和 ABI。如果是这样,您需要进行软转换。一般工作流程如下:
- 提交在变更中引入新行为的 CL,并验证 CTF 测试的树尖版本是否通过。
- 通知所有下游 SDK 用户即将发生的破坏性更改,让他们进行迁移并依赖于新行为。
- 等待下一个 CTF 版本发布到 CI/CQ。
- 提交 CL 以移除旧行为。
有 CTF 测试的示例吗?
请参阅 //sdk/ctf/examples 和 //sdk/ctf/tests。
何时以及为何要编写 CTF 测试?
如果被测软件属于公共或合作伙伴 SDK 类别,则应编写 CTF 测试。
如何移除 CTF 测试?
其他问题
如有其他问题,请联系 fuchsia-ctf-team@google.com,或在 CTF bug 组件中提交 bug。