常見問題

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