I controlli dello stato del sistema (SSC) vengono definiti a livello di configurazione della suite e vengono eseguiti tra ciascun modulo. Eseguono controlli per determinare se il modulo è cambiato e non ha ripristinato alcuni stati specifici, ad esempio modificando un valore della proprietà di sistema.
I controlli di sicurezza dei moduli 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 utilizzo secondario è ripristinare lo stato originale, se possibile, ad esempio chiudendo la tastiera se è stata lasciata 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" />
I codici SSC sono definiti nel tag system_checker
nel file XML di configurazione di TradeFed.
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.
È possibile che un controllore 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 diversi esempi di implementazioni. Per ogni implementazione è consigliabile concentrarsi su un singolo controllo per migliorare la riusabilità. Ad esempio,
SystemServerStatusCheck
controlla se il processo system_server
è stato riavviato sul dispositivo durante l'esecuzione del
complesso 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 del controllore di sistema vengono visualizzati solo nei log e come segnalazioni di bug acquisite per l'invocazione 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 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.