常見問題

什麼是 Fuchsia CTF?

如需瞭解什麼是 CTF,請參閱 CTF 總覽

CTF 發布時間表為何?

CTF 有多個發布頻率各自獨立的版本:

發布 睡眠時間表
Canary 版 約 4 小時
里程碑 ~6 週

建立 Fuchsia 平台的新初期測試版本時,就會建立初期測試版本。同樣地,當 Fuchsia 平台的新里程碑版本建立時,也會建立里程碑版本。

里程碑分支 (例如 版本/f7) 通常會獲得挑選櫻桃。此時,系統會為該里程碑產生新的 CTF,並自動轉換至 CI/CQ 中。

CTF 測試何時開始在 CQ 上執行?

測試的樹狀結構提示版本會立即在 CI/CQ 上執行。這個版本的測試不保證回溯相容性。

下一個 CTF 版本剪下時,將含有樹狀結構提示中的測試快照,並會在 CTF 版本部署至 CI/CQ 時立刻開始執行。這個版本的測試可確保回溯相容性。

如要瞭解發布時間表,請參閱上方的這個部分

CTF 在 CQ 中使用哪一個測試環境?

請參閱 go/fuchsia-builder-viz。找出名稱結尾為「-cts」的建構工具。

至少在 Fuchsia 模擬器中,所有 CTF 測試都會在 core.x64 映像檔上執行。

如何判斷哪個 CTF 測試失敗?

CQ 可一次執行同一 CTF 測試的多個版本,包括樹狀結構提示中的版本、最新初期測試版本,以及先前里程碑版本中的版本。

CTF 測試套件會以其測試的 Fuchsia API 級別命名:

| 版本 | 範例套件名稱 | |-|-| | 樹狀結構的小提示 | my_test | | 初期測試 | 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 錯誤元件中回報錯誤。