什麼是 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。如果是的話,您必須進行 柔性轉換。一般工作流程如下:
- 請提交會對變更中新行為的 CL 提交,並驗證 CTF 測試通過的樹狀結構版本。
- 通知任何下游 SDK 使用者接收即將到來的破壞性變更,要求對方遷移並依附新行為。
- 請等待下一個 CTF 版本推出至 CI/CQ。
- 提交 CL 即可移除舊行為。
是否有 CTF 測試的例子?
請參閱 //sdk/ctf/examples 和 //sdk/ctf/tests。
撰寫 CTF 測試的時機和原因為何?
如果要測試的軟體屬於公開或合作夥伴 SDK 類別,建議您編寫 CTF 測試。
如何移除 CTF 測試?
其他問題
如有其他問題,請聯絡 fuchsia-ctf-team@google.com,或是在 CTF 錯誤元件中回報錯誤。