Sistem durumu denetleyiciler (SSC'ler), paket düzeyinde yapılandırmada tanımlanır ve her modül arasında çalıştırılır. Bu işlevler, modülün değişip değişmediğini ve belirli durumları (ör. sistem özelliği değerini değiştirme) geri yükleyip yüklemediğini belirlemek için kontroller gerçekleştirir.
SSC'ler genellikle modül yazarlarının testlerden sonra temizlemeyi unutmamalarını sağlamak için kullanılır; ancak bunu yaparlarsa sorunun ele alınabilmesi için bir iz sağlayın.
İkincil bir kullanım da mümkün olduğunda orijinal durumu geri yüklemektir. Örneğin, açık bırakılan kilit ekranını kapatabilirsiniz.
Sistem durumu denetleyici 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 çalıştırmadan önce ve sonra çalıştırılan iki ana yöntem olan preExecutionCheck
ve postExecutionCheck
sağlayan ISystemStatusChecker
arabirimi uygulamalıdır.
Bir denetleyicinin ikisinden yalnızca birini veya modülden önceki durumu kontrol edip modülden sonraki durumla karşılaştırması gerekiyorsa her ikisini de uygulaması mümkündür.
Tradefed'de birkaç örnek uygulama vardır. 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
işlevini çağırır.
Her işlem, StatusCheckerResult
döndürür. Bu, hata raporu gibi ek bilgilerin yakalanıp yakalanmayacağına karar vermeyi koşum takımına bırakır.
CTS'de bu terimler nerede tanımlanır?
CTS sistem durumu kontrolörleri /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml dosyasında 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çimini izleyen bir adla çağrı için yakalanan hata raporları olarak gösterilir.
Bu, hata raporunun hangi modülden sonra oluşturulduğunu öğrenmenize olanak tanır.
--report-system-checkers
seçeneğini true
olarak ayarlayarak sistem denetleyicinin testi başarısız olarak raporlamasını sağlayabilirsiniz. Bu durum, test çalıştırmasının başarısız olarak gösterilmesine neden olur ve başarısızlığın nedeni, durum kontrol cihazının belirli bir kontrolüdür.