Sistem durumu denetleyicileri (SSCs), paketin yapılandırma düzeyinde tanımlanır ve her modül arasında çalışır. Modülün değişip değişmediğini belirlemek için kontroller yaparlar ve belirli durumları geri yüklemezler. Örneğin, bir sistem özelliği değerini değiştirmezler.
SSC'ler temel olarak modül yazarlarının testlerinden sonra temizlik yapmayı unutmamalarını sağlamak için kullanılır. Ancak unutulması durumunda, bu durumun ele alınabilmesi için izleme bilgisi sağlanır.
İkincil kullanım ise mümkün olduğunda orijinal durumu geri yüklemektir. Örneğin, açık bırakılmışsa tuş kilidini kapatma.
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'sindeki system_checker
etiketi altında tanımlanır.
Uygulama
Her SSC, her modül yürütülmeden önce ve sonra çalışan iki ana yöntemi (preExecutionCheck
ve postExecutionCheck
) sağlayan ISystemStatusChecker
arayüzünü uygulamalıdır.
Bir denetleyicinin yalnızca ikisinden birini veya modülden önceki durumu kontrol etme ve modülden sonraki durumla karşılaştırma ihtiyacı varsa her ikisini de uygulaması mümkündür.
Tradefed'de çeşitli örnek
uygulamalar
bulunur. Yeniden kullanılabilirliği artırmak için her uygulamanın tek bir kontrole odaklanması önerilir. Örneğin,
SystemServerStatusCheck
test paketi yürütülürken cihazda system_server
işleminin yeniden başlatılıp başlatılmadığını kontrol eder. postExecutionCheck
içinde, system_server
işleminin yeniden başlatılıp başlatılmadığını kontrol etmek için NativeDevice
içinde tanımlanan deviceSoftRestarted
adlı bir işlev çağrılır.
Her işlem, StatusCheckerResult
döndürür. Bu, koşum takımının hata raporu gibi ek bilgilerin yakalanıp yakalanmayacağına karar vermesini sağlar.
CTS'de nerede tanımlanır?
CTS sistem durumu kontrol araçları /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml içinde tanımlanır.
Denetleyici hatalarını bulma
Varsayılan olarak, sistem denetleyicisi hataları yalnızca günlüklerde ve bugreport-checker-post-module-<module name>.zip
biçimindeki ada sahip çağırma için yakalanan hata raporları olarak gösterilir.
Bu sayede, hata raporunun hangi modülden sonra oluşturulduğunu öğrenebilirsiniz.
--report-system-checkers
seçeneğini true
olarak ayarlayarak sistem denetleyicisi raporunu test hatası olarak işaretleyebilirsiniz. Bu durum, test çalıştırmasının başarısız olarak gösterilmesine ve başarısızlık nedeninin durum denetleyicinin belirli bir kontrolü olmasına yol açar.