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ışı:
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ışı:
Tedarikçi firma manifestini bulma
VTS, aşağıdaki konumda tedarikçi firma manifest.xml
dosyasını kontrol eder
yerler şu sırada:
/vendor/etc/vintf/manifest.xml
+ ODM manifesti (aynı HAL ise her iki yerde de tanımlandığından, ODM manifesti/vendor/etc/vintf/manifest.xml
)/vendor/etc/vintf/manifest.xml
- ODM
manifest.xml
dosyası, şu dosyalardan yüklendi: şu sırada:/odm/etc/vintf/manifest_$(ro.boot.product.hardware.sku).xml
/odm/etc/vintf/manifest.xml
/odm/etc/manifest_$(ro.boot.product.hardware.sku).xml
/odm/etc/manifest.xml
/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.