Controllare lo stato del sistema

I controlli dello stato del sistema (SSC) vengono definiti a livello di configurazione della suite e vengono eseguiti tra ciascun modulo. Esegue controlli per determinare se il modulo è cambiato e non ha ripristinato alcuni stati specifici, ad esempio la modifica di una proprietà di sistema valore.

Gli SSC vengono utilizzati principalmente per assicurarsi che gli autori dei moduli non dimentichino di eseguire la pulizia dopo i test; ma se lo fanno, forniscono una traccia in modo che il problema possa essere risolto.

Un uso secondario prevede anche il ripristino dello stato originale, quando possibile, ad esempio consente di ignorare il blocco tastiera se è stato lasciato aperto.

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 nella configurazione Tradefed XML.

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 oppure implementare sia se è necessario controllare lo stato prima del modulo e confrontarlo con lo stato dopo il modulo.

Diversi esempi implementazioni disponibili in Tradefed. Si consiglia ogni implementazione di concentrarsi su un singolo controllo per migliorare la riusabilità. Ad esempio: SystemServerStatusCheck controlla se il processo system_server è stato riavviato sul dispositivo durante dell'esecuzione della suite 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 trovare gli errori del controllo

Per impostazione predefinita, gli errori di controllo del sistema vengono visualizzati solo nei log e come segnalazioni di bug. acquisito per la chiamata con un nome che segue il formato bugreport-checker-post-module-<module name>.zip.

In questo modo puoi scoprire dopo quale modulo è stata generata la segnalazione di bug.

È possibile che lo strumento di controllo del sistema registri un errore di test impostando l'opzione --report-system-checkers su true. Di conseguenza, la corsa di test viene visualizzata come non riuscita e il motivo dell'errore è il controllo dello stato.