常见问题解答

什么是 Fuchsia CTF?

如需有关什么是 CTF 的说明,请参阅 CTF 概览

CTF 发布时间表是怎样的?

CTF 有多个版本,并且有不同的发布节奏:

发布 时间表
Canary 版 大约 4 小时
里程碑 大约 6 周

当创建 Fuchsia 平台的新 Canary 版本时,系统会创建 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。在这种情况下,您需要进行软转换。常规工作流程如下:

  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。