Test kurulumu

Test paketi

Bir testin VTS'ye dahil edilebilmesi için Android.bp bölümünde aşağıdaki ayarlara sahip olması gerekir.

test_suites: ["vts"],

Ayrıca, testin general-tests paketine eklenmesi, testin .

Test yapılandırması

Çoğu durumda, Tradera tarafından kullanılan XML dosyası olan test yapılandırması VTS testi çalıştırmak için federasyon, otomatik olarak üretilir. Ancak, resimleri test yapılandırması.

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

Yeni bir test XML dosyasını sıfırdan oluşturmak, çalışmasının nasıl işlediğini ve testin diğer kısımlarıyla her bir teste dahil edilir. Otomatik oluşturulan test yapılandırma dosyası, kolaylaştıracaktır.

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

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

$ m VtsHalUsbV1_1TargetTest

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

$ find out/ -name VtsHalUsbV1_1TargetTest.config

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

Android.bp dosyasında yalnızca bir test modülü varsa XML dosyasını AndroidTest.xml olarak yeniden adlandırdıktan sonra derleme sistemini otomatik olarak bu dosyayı 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 özelliği ekleyin.

test_config: "VtsHalUsbV1_1TargetTest.xml",

Artık özelleştirmeyi uygulayacağınız ve üzerinde çalışacağınız bir test yapılandırma dosyanız var.

Testi adb root ile çalıştırmaya zorlama

Çoğu VTS testinin çalışması için kök ayrıcalığı gerekir. Test yapılandırması dosyası otomatik olarak oluşturulduysa Android.bp öğesine aşağıdaki özelliği ekleyebilirsiniz.

require_root: true,

Test yapılandırma dosyası özelleştirilmişse test XML dosyasının sonuna ekleyin.

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

Test sırasında çerçeveyi durdurma

Birçok VTS testinin çalışması için Android çerçevesi gerekmez ve çerçeve durdurulmuş şekilde test, testin kararlılıkla çalışmasına olanak tanır . Test yapılandırması dosyası otomatik olarak oluşturulduysa Android.bp öğesine aşağıdaki özelliği ekleyebilirsiniz.

disable_framework: true,

Test yapılandırma dosyası özelleştirilmişse test XML dosyasının sonuna ekleyin.

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

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

Bazı gtest testlerinin çalışması daha uzun sürebilir. Bu gibi durumlarda, XML dosyasındaki test çalıştırıcısı seçeneklerini ayarlayın.

Örneğin, aşağıdaki native-test-timeout ayarı girişi, testin varsayılan olarak 1 dakikadı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 zorunluluğu

Bazı VTS testleri yalnızca minimum API düzeyine sahip cihazlarda çalışabilir. Test yapılandırma dosyası otomatik olarak oluşturulduysa aşağıdaki özelliği Android.bp öğesine ekleyebilirsiniz.

min_shipping_api_level: 29,

veya

vsr_min_shipping_api_level: 202404,

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

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

veya

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

API düzeyindeki özellikler

Android 12, ro.board.first_api_level ve Tedarikçi firma görüntülerinin API düzeyini göstermek için ro.board.api_level özellik bu cihazlarda kullanılabilir. Test takımları, bu özellikleri ro.product.first_api_level ile birleştirerek cihazlar için uygun test örneklerini seçer.

Android 13, ro.product.first_api_level, ro.board.first_api_level ve ro.board.api_level mülkleri kullanılarak gerekli tedarikçi API düzeyi hesaplanarak otomatik olarak ayarlanan ro.vendor.api_level değerini tanımlar.

Daha fazla bilgi için Tedarikçi firma API düzeyi başlıklı makaleye bakın.

ro.board.first_api_level

ro.board.first_api_level mülkü, tedarikçi dondurma için uygun olan bir SoC'nin tedarikçi firma resimleri bu mülkle ilk kez yayınlandığında API düzeyidir. Bu, cihazın başlatılan API'sine bağlı değildir düzeyinde değildir, ancak yalnızca SoC'nin bu değeri tanımlayan ilk API düzeyine bağlıdır. İlgili içeriği oluşturmak için kullanılan değeri, SoC'nin ömrü boyunca kalıcıdır.

Cihaz üreticileri, ro.board.first_api_level değerini ayarlamak için aşağıdaki örnekte gösterildiği gibi device.mk dosyalarında BOARD_SHIPPING_API_LEVEL değerini tanımlayabilir:

  # 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

ro.board.first_api_level mülkü otomatik olarak Cihazda vendor/build.prop. Özellik, satıcı init tarafından ayarlanır.

ro.board.api_level

ro.board.api_level özelliği, tedarikçi firmanın geçerli tedarikçi API düzeyidir. Tedarikçi firma API'sinin dondurulduğu YYYYMM biçimine sahip görüntüler. Derleme sistemi tarafından otomatik olarak ayarlanır.

ro.vendor.api_level

ro.vendor.api_level özelliği şurada kullanıma sunuldu: Tedarikçi firma görüntülerinin API düzeyini göstermek için Android 13 ve desteklemek için gereklidir. Bu, otomatik olarak ro.product.first_api_level veya varsa ro.board.api_level ro.board.first_api_level mevcut ve ro.board.api_level olarak ayarlandı ro.product.first_api_level daha erken API düzeyinde. Sürüm, ro.product.first_api_level'ten itibaren 35 veya 35'dan büyük bir sürüme ayarlanmışsa ilgili tedarikçi API düzeyiyle değiştirilir. Testler Tedarikçi firma görüntüsünün yeni sürüme geçirilmesini gerektiren tedarikçi firma uygulaması için hariç tutulabilir SoC için tedarikçi firma şartlarından farklıdır.

VTS kullanarak parçalama işlemi

Android 10 veya sonraki sürümlerde, parçalama işlemini şurada gerçekleştirebilirsiniz: aşağıdaki adımları uygulayarak hem VTS hem de CTS-on-GSI planlarıyla test yaparken birden fazla cihaz lütfen aşağıdaki talimatları uygulayın.

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

Bu komut, VTS planını parçalara ayırır ve 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 ayırır ve birden fazla proje üzerinde çalıştırır cihazlar.