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.