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.