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.