Test kurulumu

Test odası

Bir testin VTS'nin parçası olabilmesi için Android.bp aşağıdaki ayara sahip olması gerekir.

test_suites: ["vts"],

Ek olarak, testin general-tests paketine eklenmesi, testin gönderim öncesi kontrollerde kullanılan Test Eşleme paketinin parçası olmasına olanak tanır.

Test yapılandırması

Çoğu durumda Ticaret Federasyonu tarafından VTS testini çalıştırmak için kullanılan bir XML dosyası olan test yapılandırması, oluşturma sırasında otomatik olarak oluşturulur. Ancak test yapılandırmasını özelleştirebilirsiniz.

Özelleştirilmiş bir test yapılandırma dosyası oluşturun

Sıfırdan yeni bir test XML dosyası oluşturmak, test donanımının nasıl çalıştığının yanı sıra her test çalıştırıcısı arasındaki farkın anlaşılmasını gerektirdiğinden karmaşık olabilir. Otomatik oluşturulan test yapılandırma dosyası bu işlemi kolaylaştırmak için tasarlanmıştır.

Test XML dosyasını özelleştirmeniz gerekiyorsa otomatik oluşturulan dosyayı başlangıç ​​noktası olarak kullanabilirsiniz.

Otomatik olarak oluşturulan test yapılandırma dosyasını bulmak için, önce aşağıda gösterildiği gibi yapılandırmayı oluşturmak üzere make komutunu çalıştırın.

$ m VtsHalUsbV1_1TargetTest

Derleme dizininizde, aşağıda gösterildiği gibi modül adına göre yapılandırma dosyasını arayabilirsiniz.

$ find out/ -name VtsHalUsbV1_1TargetTest.config

Dosyanın birden fazla kopyası olabilir ve bunlardan herhangi birini kullanabilirsiniz. .config dosyasını Android.bp dosyasının bulunduğu dizine kopyalayın.

Android.bp dosyasında yalnızca bir test modülü varsa, XML dosyasını AndroidTest.xml olarak yeniden adlandırabilirsiniz ve derleme sistemi bunu otomatik olarak test modülünün yapılandırma dosyası olarak kullanır. Aksi takdirde, aşağıdaki örnekte gösterildiği gibi modüle bir test_config niteliği ekleyin.

test_config: "VtsHalUsbV1_1TargetTest.xml",

Artık üzerinde çalışabileceğiniz ve özelleştirmeyi uygulayabileceğiniz bir test yapılandırma dosyanız var.

Testi adb root ile çalışmaya zorla

Çoğu VTS testinin çalıştırılması için root ayrıcalığı gerekir. Test yapılandırma dosyası otomatik olarak oluşturulmuşsa Android.bp aşağıdaki özniteliği ekleyebilirsiniz.

require_root: true,

Test yapılandırma dosyası özelleştirilmişse test XML dosyasına aşağıdakileri ekleyin.

<target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>

Test sırasında çerçeveyi durdur

Çoğu VTS testinin çalışması için Android çerçevesi gerekmez ve testi çerçeve durdurulmuş halde çalıştırmak, testin cihaz pullarından etkilenmeden kararlı bir şekilde çalışmasına olanak tanır. Test yapılandırma dosyası otomatik olarak oluşturulmuşsa Android.bp aşağıdaki özniteliği ekleyebilirsiniz.

disable_framework: true,

Test yapılandırma dosyası özelleştirilmişse test XML dosyasına aşağıdakileri ekleyin.

<target_preparer class="com.android.tradefed.targetprep.StopServicesSetup"/>

Ek test bağımsız değişkenleri ekleyin

Bazı gtest testlerinin çalışması daha fazla zaman gerektirebilir. Bu gibi durumlarda XML dosyasına test çalıştırıcısı seçeneklerini ekleyebilirsiniz.

Örneğin, aşağıdaki girişteki native-test-timeout ayarı, testin varsayılan 1 dakika yerine 3 dakikalık bir zaman aşımı ile çalıştırılmasına olanak tanır.

   <test class="com.android.tradefed.testtype.GTest" >
       <option name="native-test-device-path" value="/data/local/tmp" />
       <option name="module-name" value="VtsHalNfcV1_0TargetTest" />
       <option name="native-test-timeout" value="180000"/>
   </test>

Minimum API düzeyi gerektir

Bazı VTS testleri yalnızca minimum API düzeyine sahip cihazlarda çalıştırılabilir. Test yapılandırma dosyası otomatik olarak oluşturulmuşsa Android.bp aşağıdaki özniteliği ekleyebilirsiniz.

test_min_api_level: 29,

Test yapılandırma dosyası özelleştirilmişse aşağıdaki komutu test XML dosyasına ekleyin.

   <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MinApiLevelModuleController">
       <option name="min-api-level" value="29" />
   </object>

Android 12, bu cihazlardaki satıcı görsellerinin API düzeyini göstermek için ro.board.first_api_level ve ro.board.api_level özelliklerini tanımlar. Bu özellikleri ro.product.first_api_level ile birleştiren test paketleri, cihazlar için uygun test senaryolarını seçer.

Android 13, ro.product.first_api_level , ro.board.first_api_level ve ro.board.api_level özelliklerini kullanarak gerekli satıcı API düzeyini hesaplayarak otomatik olarak ayarlanan ro.vendor.api_level tanımlar.

ro.board.first_api_level

ro.board.first_api_level özelliği, bir SoC için satıcı görüntüleri bu özellikle birlikte ilk kez yayınlandığındaki API düzeyidir. Bu, cihazın başlatıldığı API düzeyine bağlı değildir; yalnızca SoC'nin bu değeri tanımlayan ilk API düzeyine bağlıdır. Değer, SoC'nin kullanım ömrü boyunca kalıcıdır.

ro.board.first_api_level değerini ayarlamak için cihaz üreticileri, aşağıdaki örnekte gösterildiği gibi kendi device.mk dosyasında BOARD_SHIPPING_API_LEVEL tanımını yapabilir:

  # BOARD_SHIPPING_API_LEVEL sets ro.product.first_api_level to indicate
  # the first api level that the device has been commercially launched on.
  BOARD_SHIPPING_API_LEVEL := 23

Cihazdaki ro.board.first_api_level özelliğini vendor/build.prop olarak otomatik olarak tanımlayacaktır. Özellik satıcı init işlemi tarafından ayarlanır.

ro.board.api_level

ro.board.api_level özelliği, bir SoC için satıcı görüntülerinin geçerli API düzeyidir. ro.board.first_api_level sahip satıcı görüntüsünün API düzeyi güncellendiğinde, SoC'yi kullanan cihazın, ro.board.first_api_level güncellemek yerine, satıcı görüntüsünün geçerli API düzeyiyle ro.board.api_level özelliğini tanımlaması gerekir. . Bu özellik ayarlanmazsa varsayılan olarak ro.board.first_api_level kullanılacaktır.

ro.board.api_level ayarlamak için, device.mk dosyasında BOARD_API_LEVEL istenen değerle tanımlayın.

ro.vendor.api_level

ro.vendor.api_level özelliği, satıcı görüntülerinin desteklemesi gereken API düzeyini göstermek için Android 13'te tanıtıldı. Bu otomatik olarak ro.board.api_level (veya ro.board.first_api_level tanımlanmamışsa ro.board.api_level ) ve ro.product.first_api_level minimum değerine ayarlanır. Satıcı imaj yükseltmesi gerektiren satıcı uygulamasına yönelik testler, bu özelliğe başvurularak SoC için satıcı gereksinimlerinin dışında tutulabilir.

VTS kullanarak parçalama işlemi

Android sürüm 10 veya üzeri için aşağıdaki talimatları izleyerek hem VTS hem de CTS-on-GSI planlarıyla test yaparken birden fazla cihazda parçalama işlemini gerçekleştirebilirsiniz.

run vts --shard-count <number of devices> -s <device serial> ...

Bu komut, VTS planını parçalara böler ve bunları birden fazla cihazda çalıştırır.

run cts-on-gsi --shard-count <number of devices> -s <device serial> -s ...

Bu komut, CTS-on-GSI planını parçalara böler ve bunları birden fazla cihazda çalıştırır.