Controllare lo stato del sistema

I controlli dello stato del sistema (SSC) sono definiti a livello di suite tra un modulo e l'altro. 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.

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 per poter risolvere il problema.

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 SSC deve implementare le ISystemStatusChecker a riga di comando, che fornisce i due metodi principali preExecutionCheck e postExecutionCheck che vengono eseguiti prima e dopo l'esecuzione di ogni 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, definito in NativeDevice: per verificare se il processo system_server è stato riavviato.

Ogni operazione restituisce StatusCheckerResult, che permette all'istruttore di decidere se ulteriori informazioni, come una segnalazione di bug, in cui eseguire l'acquisizione.

Dove vengono definiti in CTS?

I controlli dello stato dei sistemi CTS sono definiti /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml.

Come individuare gli errori dei controlli

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 impostare il controllo del sistema come un errore di test Impostando l'opzione --report-system-checkers su true. Ciò determina esecuzione di test risulta non riuscita con il motivo dell'errore indicato nel controllo dello stato un controllo specifico.