Sistem durumunu kontrol etme

Sistem durumu denetleyicileri (SSC'ler), paket düzeyinde yapılandırılır ve her modül arasında çalıştırılır. 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ştirirler.

SSC'ler temel olarak modül yazarlarının testlerinden sonra temizlemeyi unutmamasını sağlamak için kullanılır. Ancak temizlemeyi unuturlarsa bu durumun giderilebilmesi için bir iz bırakılır.

İ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 ISystemStatusCheckerarayüzünü uygulamalıdır.

Bir kontrolörün iki seçenekten yalnızca birini veya modülden önceki durumu kontrol edip modülden sonraki durumla karşılaştırması gerekiyorsa 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 nerede tanımlanırlar?

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 sayede, hata raporunun hangi modülden sonra oluşturulduğunu öğrenebilirsiniz.

--report-system-checkers seçeneğini true olarak ayarlayarak sistem denetleyicinin test hatası olarak rapor oluşturması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ık nedeni, durum kontrol cihazının belirli bir kontrolüdür.