Sistem durumu denetleyicileri (SSC'ler), paket düzeyindeki yapılandırmada tanımlanır ve her modül arasında çalıştırılır. Modülün değişip değişmediğini ve bazı belirli durumları geri yüklemediğini (örneğin bir sistem özellik değerini değiştirip değiştirmediğini) belirlemek için kontroller gerçekleştirirler.
SSC'ler esas olarak modül yazarlarının testlerinden sonra ortalığı temizlemeyi unutmamalarını sağlamak için kullanılır; ancak bunu yaparlarsa, ele alınabilmesi için izini sağlayın.
İkincil bir kullanım da mümkün olduğunda orijinal durumu geri yüklemektir; örneğin, açık bırakıldığında tuş kilidinin kapatılması.
Sistem durumu denetleyicisi XML tanımı
<system_checker class="com.android.tradefed.suite.checker.KeyguardStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.LeakedThreadStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.SystemServerStatusChecker" />
SSC'ler, Tradefed yapılandırma XML'inde system_checker
etiketi altında tanımlanır.
Uygulama
Her SSC, her modülün yürütülmesinden önce ve sonra çalışan iki ana preExecutionCheck
ve postExecutionCheck
yöntemini sağlayan ISystemStatusChecker
arayüzünü uygulamalıdır.
Bir denetleyicinin ikisinden yalnızca birini uygulaması veya modülden önceki durumu kontrol etmeye ve bunu modülden sonraki durumla karşılaştırmaya ihtiyaç varsa her ikisini de uygulaması mümkündür.
Tradefed'de çeşitli örnek uygulamalar mevcuttur. Yeniden kullanılabilirliği artırmak için her uygulamanın tek bir kontrole odaklanması önerilir. Örneğin, SystemServerStatusCheck
test paketinin yürütülmesi sırasında cihazda system_server
işleminin yeniden başlatılıp başlatılmadığını kontrol eder. postExecutionCheck
, system_server
işleminin yeniden başlatılıp başlatılmadığını kontrol etmek için NativeDevice
tanımlanan deviceSoftRestarted
çağırır.
Her işlem, hata raporu gibi ek bilgilerin yakalanması gerekip gerekmediğine karar vermesini sağlayan StatusCheckerResult
değerini döndürür.
CTS'de nerede tanımlanırlar?
CTS sistem durumu denetleyicileri /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml dosyasında tanımlanır.
Denetleyici hataları nasıl bulunur?
Varsayılan olarak, sistem denetleyicisi hataları yalnızca günlüklerde ve bugreport-checker-post-module-<module name>.zip
biçimini takip eden adla çağrı için yakalanan hata raporları olarak gösterilir.
Bu, hata raporunun hangi modülden sonra oluşturulduğunu öğrenmenizi sağlar.
--report-system-checkers
seçeneğini true
olarak ayarlayarak sistem denetleyicisinin bir test hatası olarak rapor etmesini sağlamak mümkündür. Bu, bir test çalıştırmasının başarısız olduğunu göstermesiyle sonuçlanır ve başarısızlığın nedeni durum denetleyicisine özel kontroldür.