HAL test edilebilirlik kontrolü

Android 9 Tedarikçi Test Paketi (VTS), bir hangi VTS testlerinin belirlendiğini belirlemek üzere cihaz yapılandırmasını kullanmanın çalışma zamanı yöntemi o cihaz hedefi için atlanmalıdır.

VTS test esnekliği

Android 8.0'dan itibaren şu sürümle başlatılan tüm cihazlar için VTS testleri gereklidir: Android 8.0 ve sonraki sürümler. Ancak tüm VTS testleri her cihazda geçerli değildir belirler. Örnek:

  • Belirli bir cihaz test HAL'sini (ör. IR) desteklemiyorsa VTS, bu cihaz hedefine karşı söz konusu HAL testi için test çalıştırmanız gerekmez.
  • Birden fazla cihaz aynı çip üzerinde sistem (SoC) ve tedarikçi firma görüntüsünü paylaşıyorsa ancak farklı donanım işlevlerine sahip olduğunda, VTS, bir testin çalıştırılmalı veya atlanmalıdır.

VTS test türleri

VTS, aşağıdaki test türlerini içerir:

  • Uygunluk testleri çerçeve arasında uyumluluğu sağlar bölümleri var. Bu testlerin yürütülmesi (ve bu testlerin geçilmesi) gerekir. Android 8.0 veya sonraki sürümlerle başlatılan cihazlar.
  • Uyumsuzluk testleri, tedarikçilerin ürünü iyileştirmesine yardımcı olur kalite (performans/fuzzing vb.). Bu testler tedarikçi firmalar için isteğe bağlıdır.

Testin uygunluk testi olup olmadığı, hangi plana ait olduğuna bağlıdır . Birlikte çalıştırılan testler VTS planı, uygunluk testi olarak kabul edilir.

Desteklenen HAL'leri belirleyin

VTS, cihaz hedefinin bir belirli HAL:

  • /system/compatibility_matrix.xml HAL örnekleri için hak talebinde bulunur gerektiğini vurgular. Örnek:
    <hal format="hidl" optional="true">
        <name>android.hardware.vibrator</name>
        <version>1.0-1</version>
        <interface>
           <name>IVibrator</name>
           <instance>default</instance>
        </interface>
    </hal>
    
    .
    • optional özelliği, HAL'nin katı olup olmadığını gösterir. gerektiğini vurgular.
    • Dosya aynı HAL için (aynı ada sahip) birden çok giriş içeriyor olabilir farklı sürümü ve arayüzleri var.
    • Dosya, şunun için birden çok version yapılandırması içerebilir: Bu da çerçevenin farklı sürümlerle çalışabileceğini gösterir.
    • version1.0-1, çerçevenin en düşük seviyeyle çalışabileceği anlamına gelir. Sürüm 1.0'dır ve 1.1'den sonraki bir sürümü gerektirmez.
  • Cihaz manifest.xml. tarafından sağlanan HAL örnekleri için hak talebinde bulunur: yardımcı olur. Örnek:
    <hal format="hidl">
        <name>android.hardware.vibrator</name>
        <transport>hwbinder</transport>
        <version>1.2</version>
        <interface>
            <name>IVibrator</name>
           <instance>default</instance>
        </interface>
    </hal>
    
    .
    • Dosya aynı HAL (aynı ada sahip) için birden fazla giriş içeriyor olabilir farklı sürümü ve arayüzleri var.
    • Dosya yalnızca tek bir version yapılandırması içeriyorsa bir giriş için, version1.2 tedarikçi firmanın tüm sürümleri desteklediği anlamına gelir 1.0~1.2 arasındadır.
  • lshal olarak değiştirin. Cihazda şu konuyla ilgili çalışma zamanı bilgilerini gösteren bir araç: hwservicemanager kayıtlı HAL hizmetleri. Örnek:
    android.hardware.vibrator@1.0::IVibrator/default
    
    .
    lshal, geçiş reklamı içeren tüm HAL'leri de gösterir (ör.ilişkili -impl.so dosyasının bulunması gerekir). Örnek:
    android.hardware.nfc@1.0::I*/* (/vendor/lib/hw/)
    android.hardware.nfc@1.0::I*/* (/vendor/lib64/hw/)
    
    .

Uygunluk testleri

VTS, uygunluk testleri için tedarikçi firma manifestine dayanarak (ve testi) cihaz tarafından sağlanan tüm HAL örneklerini. Karar akışı:

Uygunluk için test edilebilirlik kontrolü

Şekil 1. VTS uygunluk testleri için test edilebilirlik kontrolü
ziyaret edin.

Uyumsuzluk testleri

VTS, uyumsuzluk testleri için tedarikçinin manifestine ve Test amaçlı olmayan deneysel HAL'leri belirlemek (ve test etmek) için lshal manifest.xml dosyasında hak talebinde bulunuldu. Karar akışı:

Uygunluk durumu için test edilebilirlik kontrolü

Şekil 2. VTS uyumsuzluğu için test edilebilirlik kontrolü testler
ziyaret edin.

Tedarikçi firma manifestini bulma

VTS, aşağıdaki konumda tedarikçi firma manifest.xml dosyasını kontrol eder yerler şu sırada:

  1. /vendor/etc/vintf/manifest.xml + ODM manifesti (aynı HAL ise her iki yerde de tanımlandığından, ODM manifesti /vendor/etc/vintf/manifest.xml)
  2. /vendor/etc/vintf/manifest.xml
  3. ODM manifest.xml dosyası, şu dosyalardan yüklendi: şu sırada:
    1. /odm/etc/vintf/manifest_$(ro.boot.product.hardware.sku).xml
    2. /odm/etc/vintf/manifest.xml
    3. /odm/etc/manifest_$(ro.boot.product.hardware.sku).xml
    4. /odm/etc/manifest.xml
    5. /vendor/manifest.xml

VTS test edilebilirlik denetleyicisi

İlgili içeriği oluşturmak için kullanılan vts_testibility_checker, VTS ile paketlenmiş ve Belirli bir HAL testinin başarılı olup olmadığını belirlemek için çalışma zamanında VTS test çerçevesi test edilebilir olup olmadığını anlayabilirsiniz. Bu, libvintf. tedarikçi firma manifest dosyasını yükleyip ayrıştırmak ve karar akışını uygulamak reklam öğelerini inceleyin.

vts_testability_check uygulamasını kullanmak için:

  • Uygunluk testi için:
    vts_testability_check -c -b <bitness>  <hal@version>
    
    .
  • Uygunluk testi için:
    vts_testability_check -b <bitness>  <hal@version>
    
    .

vts_testability_check çıkışında aşağıdaki json kullanılır biçim:

{testable: <True/False> Instances: <list of instance names of HAL service>}

Erişilen HAL'leri belirleme

VTS testlerinin hangi HAL'lere eriştiğini belirlemek için her HAL testinin , VtsHalHidlTargetTestEnvBase. testte erişilen HAL'leri kaydetmek için aşağıdaki şablonu kullanın. VTS testi çerçeve, testi önceden işlerken kayıtlı HAL'leri ayıklayabilir.

Uygunluk testleri için de şunları kontrol edebilirsiniz: /system/etc/vintf/manifest.xml Burada bir HAL tanımlanmışsa VTS, test etmelisiniz. (Sistem tarafından sağlanan HAL hizmetleri (ör. graphics.composer/vr), HAL'ler /system/manifest.xml) dokunun.