Sistem durumunu kontrol edin

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 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ün yürütülmesinden önce ve sonra çalışan preExecutionCheck ve postExecutionCheck adlı iki ana yöntemi sağlayan ISystemStatusChecker arayüzünü uygulamalıdır.

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

--report-system-checkers seçeneği true olarak ayarlanarak sistem denetleyici raporunu test hatası olarak oluşturabilirsiniz. Bu, hatanın nedeni durum denetleyicisi olan belirli bir kontrol olmak üzere test çalıştırmasının başarısız olarak gösterilmesine neden olur.