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 bazı belirli durumları geri yüklemezler. Örneğin, bir sistem özelliği değerini değiştirme.
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 izini sağlayarak ele alınmasını sağlar.
İkincil kullanım ise mümkün olduğunda orijinal durumu geri yüklemektir. Örneğin, tuş kilidi açık bırakılmışsa kapatılır.
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" />
SS'ler, Tradefed yapılandırma XML'sindeki system_checker etiketi altında tanımlanır.
Uygulama
Her SSC, her modül yürütülmesinden önce ve sonra çalışan iki ana yöntem preExecutionCheck ve postExecutionCheck'i 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 sürecinin 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ırlar?
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 adla çağrılan işlemler için yakalanan hata raporlarında 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.