tsuyoshin’s Tech Blog

https://qrunch.net/@tsuyoshin から移転してきました。

Android11 CTS(Compatibility Test Suite)の覚書

Android11のCTSを行うための覚書

セットアップ

  • AOSP のビルドを行っている場合、Android Debug Bridge (adb) と Android Asset Packaging Tool (AAPT) にパスを通す
$ export PATH=$PATH:<AOSP のルートパス>/out/soong/host/linux-x86/bin

※AOSP のビルドを行っていない場合、Android SDK Tools をインストールする

  • OpenJDK11 をインストールする
$ sudo apt install openjdk-11-jre-headless
  • バージョンを確認する
$ java -version
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.18.04)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.18.04, mixed mode, sharing)

テストモジュール

  • 一覧取得
$ cd <CTSのパス>/android-cts/tools/
$ ./cts-tradefed

> list modules
  • list modules の出力結果
    テストモジュールに [instant], [secondary_user] が追加された

  • [instant] を実行したい場合、下記どちらを指定しても同じ

# CtsGraphicsTestCases[instant] を実行したい場合
> run cts --module-parameter INSTANT_APP -m CtsGraphicsTestCases
> run cts --include-filter CtsGraphicsTestCases[instant]

テスト実行

  • 特定のモジュールを実行する
# CtsGraphicsTestCases を実行したい場合
> run cts -m CtsGraphicsTestCases
  • 試験結果を確認→再試験
# 試験結果を確認する
> list results
Session  Pass   Fail  Modules Complete  Result Directory     Test Plan  Device serial(s)  Build ID         Product        
0        10706  622   10 of 12          2021.02.17_16.31.29  cts        [XXXXXXXXX]       RP1A.200720.009  aosp_blueline  

# Session 0 を再試験する
> run retry --retry 0

# 再試験結果を確認する
> list results
Session  Pass   Fail  Modules Complete  Result Directory     Test Plan  Device serial(s)  Build ID         Product        
0        10706  622   10 of 12          2021.02.17_16.31.29  cts        [XXXXXXXXX]       RP1A.200720.009  aosp_blueline  
1        12394  0     12 of 12          2021.02.18_10.39.22  cts        [XXXXXXXXX]       RP1A.200720.009  aosp_blueline  

# 再試験で Fail が 0 になった
  • 試験を複数台の端末にて分散実行する
# 試験を複数台の端末にて分散実行
# --shard-count <端末の台数>
> run cts --shard-count 2

テストサマリー (test_result.html)

  • Assumption Failure
    テストの前提条件の一部が満たされず、テストが中止されたことを示します。

  • Ignored
    テストがまったく実行されず、完全にスキップされたを示します。

  • [Ignored] と [Assumption Failure] は、どちらも合格として扱われます。

source.android.com