このページでは、互換性テスト スイート (CTS)を実行して、AOSP ソース コードに基づいて仮想デバイスを評価する方法について説明します。
イカを作る
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 Stable サブセットの実行
一部のテストは物理デバイス向けに調整されているため、すべての CTS が Cuttlefish に合格するわけではありません。仮想プラットフォームで最新の安定版を追跡する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