本頁面說明如何執行相容性測試套件 (CTS),根據 AOSP 原始碼評估虛擬裝置。
建構 Cuttlefish
執行 CTS 前,請先建構要透過 CTS 測試的虛擬裝置。如果是 AOSP Cuttlefish,請執行下列操作:
source build/envsetup.sh
lunch aosp_cf_x86_64_only_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_only_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 測試會失敗。如要在所有本機代管的 Cuttlefish 裝置上啟用 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
測試計畫執行 CTS,追蹤虛擬平台最新穩定版本,請按照下列操作說明操作。
在建構 Cuttlefish 的同一棵樹狀結構根層級,執行下列指令:
source build/envsetup.sh
lunch aosp_cf_x86_64_only_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_only_phone-userdebug
stop_cvd