I controlli dello stato del sistema (SSC) vengono definiti a livello di configurazione della suite e vengono eseguiti tra ciascun modulo. Eseguono controlli per determinare se il modulo è cambiato e non ha ripristinato alcuni stati specifici, ad esempio modificando un valore della proprietà sistema.
Le SSC vengono utilizzate principalmente per garantire che gli autori dei moduli non dimenticano di eseguire la pulizia dopo i test, ma se lo fanno, forniscine una traccia in modo che possa essere gestita.
Un utilizzo secondario è ripristinare lo stato originale, se possibile, ad esempio chiudendo la tastiera se è stata lasciata aperta.
Definizione XML del controllo dello stato del sistema
<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" />
Le SSC sono definite nel tag system_checker
nel file XML della configurazione
Trading.
Implementazione
Ogni modulo di servizio di sicurezza deve implementare l'interfaccia ISystemStatusChecker
, che fornisce i due metodi principali preExecutionCheck
e postExecutionCheck
che vengono eseguiti prima e dopo ogni esecuzione del modulo.
Un controllore può implementare solo uno dei due o entrambi se è necessario controllare lo stato prima del modulo e confrontarlo con lo stato dopo il modulo.
In Tradefed esistono diversi esempi di implementazioni. Per ogni implementazione è consigliabile concentrarsi su un singolo controllo per migliorare la riusabilità. Ad esempio,
SystemServerStatusCheck
controlla se il processo system_server
è stato riavviato sul dispositivo durante l'esecuzione del
complesso di test. In postExecutionCheck
, chiama deviceSoftRestarted
,
che è definito in
NativeDevice
per verificare se il processo system_server
è stato riavviato.
Ogni operazione restituisce
StatusCheckerResult
,
che consente al cablaggio di decidere se acquisire informazioni aggiuntive, come una segnalazione di bug.
Dove sono definiti in CTS?
I controlli dello stato del sistema CTS sono definiti in /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml.
Come individuare gli errori dei controlli
Per impostazione predefinita, gli errori del controllore di sistema vengono visualizzati solo nei log e come segnalazioni di bug acquisite per l'invocazione con nome nel formato bugreport-checker-post-module-<module name>.zip
.
In questo modo puoi scoprire dopo quale modulo è stata generata la segnalazione di bug.
È possibile rendere il report di controllo del sistema come un test non riuscito impostando l'opzione --report-system-checkers
su true
. In questo modo, l'esecuzione di un test risulta non riuscita e il motivo dell'errore è la particolare verifica del controllo dello stato.