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 è stato modificato e non ha ripristinato alcuni stati specifici, ad esempio la modifica del valore di una proprietà di sistema.
Gli SSC vengono utilizzati principalmente per garantire che gli autori dei moduli non dimentichino di liberare spazio 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 è 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'ISystemStatusChecker
interfaccia,
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 metodi 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 acquisire informazioni aggiuntive, ad esempio una segnalazione di bug,
deve essere acquisita.
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 dei controlli
Per impostazione predefinita, gli errori dei controlli del sistema vengono visualizzati solo nei log e come segnalazioni di bug
acquisite per la chiamata con il 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 controllo del sistema venga segnalato come test non riuscito impostando l'opzione --report-system-checkers su true. In questo modo, l'esecuzione del test viene visualizzata come non riuscita e il motivo dell'errore è il controllo specifico dello stato.