常见问题解答

什么是 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。如果是,您需要进行软过渡。一般工作流程如下:

  1. 提交一个 CL,在您的更改中引入新行为,并验证 CTF 测试的树尖版本是否通过。
  2. 将即将到来的重大变更通知所有下游 SDK 用户,并要求他们迁移并依赖于新行为。
  3. 等待下一个 CTF 版本纳入 CI/CQ。
  4. 提交 CL 以移除旧行为。

有没有 CTF 测试的示例?

请参阅 //sdk/ctf/examples//sdk/ctf/tests

何时以及为何应编写 CTF 测试?

如果被测软件属于公开或合作伙伴 SDK 类别,您应编写 CTF 测试。

如何移除 CTF 测试?

请参阅贡献指南中有关移除测试的部分。

其他问题

如有其他问题,请发送电子邮件至 fuchsia-ctf-team@google.com,或在 CTF bug 组件中提交 bug。