I controlli dello stato del sistema (SSC) sono definiti nella configurazione a livello di suite e vengono eseguiti tra un modulo e l'altro. Eseguono controlli per determinare se il modulo è cambiato e non ha ripristinato alcuni stati specifici, ad esempio la modifica di un valore della proprietà di sistema.
I controlli di sicurezza vengono utilizzati principalmente per garantire che gli autori dei moduli non dimentichino di eseguire la pulizia dopo i test, ma, in caso contrario, forniscono una traccia in modo che il problema possa essere risolto.
Un utilizzo secondario è anche quello di ripristinare lo stato originale, se possibile, ad esempio chiudendo la schermata di blocco se era rimasta 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" />
Gli SSC sono definiti nel tag system_checker
nel file XML di configurazione di Tradefed.
Implementazione
Ogni SSC deve implementare l'interfaccia ISystemStatusChecker
, che fornisce i due metodi principali preExecutionCheck
e postExecutionCheck
che vengono eseguiti prima e dopo l'esecuzione di ogni modulo.
È possibile che un controllo implementi 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 diverse implementazioni di esempio. Per migliorare la riusabilità, è consigliabile che ogni implementazione si concentri su un singolo controllo. Ad esempio,
SystemServerStatusCheck
verifica se il processo system_server
è stato riavviato sul dispositivo durante l'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 consente all'harness di decidere se devono essere acquisite 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 del controllo del sistema vengono visualizzati solo nei log e nei report sui bug
acquisiti per la chiamata 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 fare in modo che il report del controllo del sistema venga considerato come un errore del test impostando l'opzione --report-system-checkers
su true
. Il risultato è un'esecuzione di test
che viene visualizzata come non riuscita e il motivo del mancato superamento è il controllo specifico
del controllo dello stato.