Cuttlefish:執行穩定的 CTS

本頁面說明如何執行 Compatibility Test Suite (CTS):根據 Android 開放原始碼計畫評估虛擬裝置 Cloud Build 觸發條件 會在您變更原始碼時自動啟動建構作業

製作烏龜魚

執行 CTS 前,請先建構您要透過 CTS 測試的虛擬裝置。適用對象 請執行下列操作:

source build/envsetup.sh
lunch aosp_cf_x86_64_phone-userdebug
make -j

建立 CTS

CTS 與裝置構件分開建構。如要建構 CTS,請按照下列步驟操作: 操作說明。

從建立 Cuttlefish 的同一個樹根執行以下內容 指令:

source build/envsetup.sh
m -j cts WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY=false TARGET_PRODUCT=aosp_x86_64

啟動多用戶群 Cuttlefish 執行個體

從建立 Cuttlefish 的同一個樹根執行以下內容 指令:

source build/envsetup.sh
lunch aosp_cf_x86_64_phone-userdebug
launch_cvd --num_instances=8 --daemon

執行個體啟動後,請確認每個裝置是否都可供 adb 存取。

adb devices

輸出內容應該會與下方示例類似:

List of devices attached
127.0.0.1:6520  device
127.0.0.1:6521  device
127.0.0.1:6522  device
127.0.0.1:6523  device
127.0.0.1:6524  device
127.0.0.1:6525  device
127.0.0.1:6526  device
127.0.0.1:6527  device

啟用 Cuttlefish 執行個體的 Wi-Fi

如未啟用 Wi-Fi,部分 CTS 測試會失敗。為所有使用者提供 Wi-Fi 請按照下列指示操作。

從建立 Cuttlefish 的同一個樹根執行以下內容 指令:

for SERIAL in $(adb devices | grep -E '127.+device$' | cut -f1); do
adb -s ${SERIAL} install -r -g tools/tradefederation/core/res/apks/wifiutil/WifiUtil.apk
adb -s ${SERIAL} shell su root svc wifi enable
adb -s ${SERIAL} shell am instrument -e method "connectToNetwork" -e scan_ssid "false" -e ssid "VirtWifi" -w com.android.tradefed.utils.wifi/.WifiUtil
done

執行 CTS 穩定版子集

並非所有 CTS 都通過 Cuttlefish,因為部分測試 專為實體裝置設計如要使用 cts-virtual-device-stable 測試方案,用於追蹤最新的穩定版 請按照以下說明操作

從建立 Cuttlefish 的同一個樹根執行以下內容 指令:

source build/envsetup.sh
lunch aosp_cf_x86_64_phone-userdebug
cts-tradefed run cts-virtual-device-stable --no-enable-parameterized-modules --max-testcase-run-count 2 --retry-strategy RETRY_ANY_FAILURE --reboot-at-last-retry --shard-count 8

預計執行 20 到 25 分鐘,然後輸出一份類似以下的摘要: 包括:

=============== Summary ===============
Total Run time: 22m 8s
184/184 modules completed
Total Tests       : 92483
PASSED            : 92363
FAILED            : 0
IGNORED           : 71
ASSUMPTION_FAILURE: 49
Shard 0 used: [127.0.0.1:6522]
Shard 1 used: [127.0.0.1:6525]
Shard 2 used: [127.0.0.1:6524]
Shard 3 used: [127.0.0.1:6521]
Shard 4 used: [127.0.0.1:6520]
Shard 5 used: [127.0.0.1:6527]
Shard 6 used: [127.0.0.1:6526]
Shard 7 used: [127.0.0.1:6523]
============== End of Results ==============

清除

測試完成後,請停止虛擬裝置。

從建立 Cuttlefish 的同一個樹根執行以下內容 指令:

source build/envsetup.sh
lunch aosp_cf_x86_64_phone-userdebug
stop_cvd