什么是 Fuchsia CTF?
如需了解 CTF 的含义,请参阅 CTF 概览。
CTF 发布时间表是怎样的?
CTF 有多个版本,每个版本都有不同的发布节奏:
| 版本 | 时间表 |
|---|---|
| Canary 版 | 约 4 小时 |
| 里程碑 | 大约 6 周 |
当创建新的 Fuchsia 平台 Canary 版本时,系统会创建 Canary 版本。同样,当创建 Fuchsia 平台的新里程碑版本时,也会创建里程碑版本。
里程碑分支(例如 releases/f7)通常会接收 cherry pick。发生这种情况时,系统会为相应里程碑生成新的 CTF,并自动将其纳入 CI/CQ。
我的 CTF 测试何时会在 CQ 上开始运行?
测试的树尖版本将立即开始在 CI/CQ 上运行。 此版本的测试无法保证向后兼容性。
当下一个 CTF 版本发布时,它将包含树状结构顶端的测试的快照,该快照将在该 CTF 版本进入 CI/CQ 后立即开始运行。此版本的测试可保证向后兼容性。
如需了解发布时间表,请参阅上文的这一部分。
CTF 在 CQ 中使用什么测试环境?
请参阅 go/fuchsia-builder-viz。查找名称以“-cts”结尾的 buildbot。
至少,所有 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。