常见问题解答

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

  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。