月台表面區域資訊清單

設計文件

提振精神

提供運算平台的平台介面元素完整清單 是 CTF 的表面測試涵蓋範圍。

詞彙解釋

(參照已定義的詞彙項目會是「草寫」類型的型別集)。

平台介面元素。

Fuchsia 公用 APIABI 的命名小型元件。

月台表面區域。

完整的平台介面元素集合。

平台介面片段。

月台表面區域的一部分。

平台途徑區域資訊清單。

包含平台介面片段檔案指標的檔案。

需求條件

  1. 識別並列舉特定 中實用的平台介面元素 平台表面檢視畫面。

  2. 有效率地生成及週遊可能的表面元素 平台表面檢視畫面

  3. 允許在不同平台中重複使用現有的平台介面片段 平台介面的種類

  4. 允許以漸進方式納入平台介面片段 我們負責定義與建構

  5. 配合我們的建構系統。

為何現在發行?

為確保 CTF 測試涵蓋範圍資訊主頁能提供無用資訊, 就會發現平台表面的隱藏部分

  1. 平台介面的報導部分讓我們可以 以及保證基礎平台的正確性和安全保證

  2. 我們運用平台途徑的發現部分,引導出 CTF 測試人員瞭解 的 API 介面部分。

平台表面區域資訊清單補給 (1) 和執行項目 (2)。

相關人員

  • CTF 維護人員
  • CTF 測試作者

設計

月台表面區域展示一組月台表面區域 片段檔案和平台介面資訊清單檔案,而 Fuchsia 建構輸出目錄中所有這類檔案的位置 ($FUCHSIA_DIR/out/default 或類似名稱)。按照慣例,資訊清單檔案 manifest.plasa.json,而片段檔案的名稱符合 檔案路徑模式 *.fragment.plasa.json,如下圖所示。

plasa 檔案的邏輯結構

影響選擇這個軸輻式資訊清單版面配置的原因有很多:

  1. 讓不同子系統進化專屬的自訂平台途徑區域 格式。

  2. 允許同時產生平台表面區域片段。這個 可避免合併大型檔案時發生的平台建構瓶頸。

  3. 允許使用 輕量的中繼資料傳播機制是建構系統固有的機制。

  4. 可視需要輕鬆擴充平台途徑區域中繼資料。

這項工具必須可辨識這個檔案版面配置的檔案配置,並確保所有檔案都能夠辨識 均須妥善處理如果需要單一檔案的工具,建議選擇 撰寫方便合併檔案的指令碼。

資訊清單檔案格式

資訊清單檔案的格式是一系列的 JSON 格式物件。每個物件 包含片段檔案的參照以及 片段預期正常。資訊清單是一系列項目,因為 對建構系統來說特別容易產生 能充分詳細說明內容

  • 序列...

    • kind (列舉):有問題的片段種類。每種不同的種類 能以不同方式解讀撰寫本文時 包括:

    • api_cc:代表有問題的片段遵循 C++ API 片段格式

    • api_fidl:代表有問題的片段符合 FIDL API 摘要格式 (根據 RFC-0076)

    • file (字串):片段的完整標籤。

範例

[
  {
    "file": "//out/workstation_eng.x64/gen/sdk/lib/fdio/fdio.fragment.plasa.json",
    "kind": "api_cc",
  },
  {
    "file": "//out/workstation_eng.x64/gen/sdk/lib/stdcompat/stdcompat.fragment.plasa.json",
    "kind": "api_cc",
  },
  {
    "file": "//out/workstation_eng.x64/gen/sdk/lib/fit/fit.fragment.plasa.json",
    "kind": "api_cc",
  }
]

C++ API 片段檔案格式

片段檔案格式目前是平台元素項目的序列。 格式可能會視需要展開。

  • JSON 物件...

    • items 個 (序列),共...

    • name (字串):平台介面元素的名稱。

    • file (optional[String]):元素所在檔案的路徑 定位。

    • line (選填 [Integer]):元素位置的 file

範例

{
  "items": [
        {
            "name": "fit::deferred_action::deferred_action<T>",
            "file": "gen/sdk/lib/fit/../../../../../../sdk/lib/fit/include/lib/fit/defer.h",
            "line": 81
        },
        {
            "name": "fit::deferred_action::operator bool",
            "file": "gen/sdk/lib/fit/../../../../../../sdk/lib/fit/include/lib/fit/defer.h",
            "line": 43
        }
  ]
}

說明文件與例子

我們可能會更新 CTF 說明文件,加入 平台介面的資訊清單。

回溯相容性

這項新功能沒有相容性基準, 維護。

安全性和隱私權

這個設計在安全性與隱私權方面具有中立性,如下所示:

  1. 凡是公開知識的平台介面片段,都有可能不算是 基於安全性和隱私權的考量, 曝光率。

  2. 您可以在資訊清單中定義任何私人平台介面片段, 「公開」圖示整體平台途徑資訊清單可以是 同時納入私人和可公開存取的片段 視需要彙整成單一資訊清單

日後的工作

日後作業將看到平台介面上的更多元素 平台途徑區域資訊清單:

  1. 代表資訊清單中的指令列公用程式和標記。

  2. 代表資訊清單中的其他 Plasa 元素。