什麼是 Fuchsia CTF?
如要瞭解 CTF 的定義,請參閱 CTF 總覽。
CTF 發布時間表為何?
CTF 有多個版本,發布頻率各不相同:
| 發布 | 安排時間 |
|---|---|
| Canary 版 | 約 4 小時 |
| Milestone | 約 6 週 |
當 Fuchsia 平台建立新的初期測試版時,系統就會建立初期測試版。同樣地,當 Fuchsia 平台建立新的里程碑版本時,系統也會建立里程碑版本。
里程碑分支 (例如 releases/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 測試:來自樹狀結構頂端的版本、來自最新初期測試版的版本,以及來自先前里程碑版本的版本。
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。如果是,您需要進行軟性轉移。一般工作流程如下:
- 提交 CL,在變更中導入新行為,並確認通過 CTF 測試的樹狀結構頂端版本。
- 通知所有下游 SDK 使用者即將發生的重大變更,並請他們遷移及依附新的行為。
- 等待下一個 CTF 版本推出至 CI/CQ。
- 提交 CL,移除舊行為。
是否有 CTF 測試的範例?
請參閱 //sdk/ctf/examples 和 //sdk/ctf/tests。
何時及為何應編寫 CTF 測試?
如果受測軟體屬於公開或合作夥伴 SDK 類別,您就應編寫 CTF 測試。
如何移除 CTF 測試?
其他問題
如有其他問題,請傳送電子郵件至 fuchsia-ctf-team@google.com,或在 CTF 錯誤元件中回報錯誤。