Fuchsia Platform Surface Area (PlaSA) 的定義是 Fuchsia SDK 公開的 ABI 和 API 組合。請務必維持 Fuchsia Platform 後續版本的相容性,確保現有產品和應用程式能繼續正常運作。
適用於 Fuchsia (CTF) 的相容性測試是強制執行這項相容性的方法之一。如要進一步瞭解運作方式,請參閱 CTF RFC 和 fuchsia.dev 中 CTF 的其他頁面。本文件旨在協助您瞭解 Fuchsia CQ 中 CTF 測試失敗時的處理方式。
瞭解 CL 如何改變 Fuchsia PlaSA
首先,請試著瞭解 PlaSA 的哪些部分發生了變化。如果您已瞭解,請繼續前往下一節。
CTF 測試的目標是 Fuchsia 平台的一小部分。失敗測試的名稱和位置應該可讓您瞭解變更的內容。一般來說 (但並非一律如此),CTF 測試會在 SDK 目錄中鏡像顯示其位置。以下是一些例子:
測試位置 ... | 測試中 ... |
---|---|
//sdk/ctf/fidl/fuchsia.diagnostics | //sdk/fidl/fuchsia.diagnostics |
//sdk/ctf/pkg/memfs | //sdk/lib/memfs |
//sdk/ctf/tools/package_manager | //src/sys/pkg/bin/pm |
如要查看失敗測試的名稱,請按一下 core.x64-debug-cts
建構工具,並切換至 Test Results
分頁。
如果測試名稱並未指出平台介面區域的變更,請搜尋 CTF 目錄。測試程式碼應位於驗證的 PlaSA 區域名稱以命名的目錄中。
如果這些方法都無效,歡迎隨時與 CTF 團隊聯絡。
找到測試程式碼後,您就能用程式碼瞭解 CL 執行失敗的原因。如果是無意間變更,只要更新 CL,直到測試不再失敗為止。不過,如果這是刻意設定,可以採取下列幾種做法:
- 執行軟性轉換到 PlaSA
- 在所有使用中的 CTF 版本 (WIP) 中修補測試
以下各節將詳細說明這些選項。
解決問題
方法 1:執行軟性轉換到 PlaSA
RFC-0002 說明我們如何以回溯相容的方式改進 Fuchsia 平台。對公用介面修改時,請盡可能進行軟性轉換:加入新元素、遷移舊元素的使用者,最後再淘汰舊介面。
這項程序包含多個步驟,可能需要數週才能完成。我們正努力實現這項自動自助服務。如有任何問題,歡迎隨時與 CTF 團隊聯絡。
1) 新增新的 API 和相關的 CTF 測試
- 與 API 委員會合作,確保這個全新 API 已準備就緒。
- 建議您編寫新的 CTF 測試來完整涵蓋新的 API。
- 在未來將會是如此,而且能幫助 Fuchsia Platform 持續有效率地發展。
2) 淘汰舊版 API
- 與 SDK 團隊合作,找出舊版 API 的所有下游客戶。
- 與相關的 SDK 整合商合作,將 SDK 遷移至新版 API。
- 最後,請與 CTF 團隊合作,「暫停」現有的 CTF 測試。
- 系統可能需要幾週的時間,才能從 CQ 中的所有 CTF 版本中移除已暫停的測試 (直到下一個重要的 Fuchsia Platform 版本推出)
3) 移除舊 API 和相關的 CTF 測試
- 將所有接觸舊 API 的 CTF 測試從 CTF 版本中移除後,您就可以在 TOT 中成功刪除 API。
選項 2:在所有使用中的 CTF 版本 (WIP) 中修補測試
如果特定 CTF 測試的測試次數過多 (例如內部實作詳細資料),或其他某些特殊情況需要比 CTF 發布期更頻繁地修改 Fuchsia PlaSA,則就需要修改使用中 CTF 版本中的 CTF 測試。
如需這項資訊,請與 CTF 團隊聯絡。