Cuttlefish:运行稳定版 CTS

本页介绍了如何运行兼容性测试套件 (CTS),以便根据 AOSP 源代码评估虚拟设备。

构建 Cuttlefish

在运行 CTS 之前,请先构建要使用 CTS 测试的虚拟设备。对于 AOSP Cuttlefish,请执行以下操作:

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 测试会失败。如需在本地托管的所有 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 稳定版子集

并非在 Cuttlefish 上进行的所有 CTS 都会通过,因为某些测试更多是针对实体设备量身定制的。如需使用 cts-virtual-device-stable 测试计划(用于跟踪在虚拟平台上运行稳定的最新功能)运行 CTS,请按照以下说明操作。

从构建 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