常見問題

什麼是 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。如果是,您需要進行軟性轉移。一般工作流程如下:

  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 錯誤元件中回報錯誤。