Sistem durumunu kontrol etme

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.