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.