Los verificadores de estado del sistema (SSC) se definen en la configuración a nivel del paquete y se ejecutan entre cada módulo. Realizan verificaciones para determinar si el módulo cambió y no restableció algunos estados determinados, por ejemplo, si cambió el valor de una propiedad del sistema.
Los SSC se usan principalmente para garantizar que los escritores de módulos no se olviden de limpiar después de las pruebas. Si lo hacen, proporcionan un registro para que se pueda abordar.
Un uso secundario también es restablecer el estado original cuando sea posible, por ejemplo, descartar el bloqueo del teclado si se dejó abierto.
Definición XML del comprobador de estado 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" />
Los SSC se definen en la etiqueta system_checker
del archivo XML de configuración de Tradefed.
Implementación
Cada SSC debe implementar la interfaz ISystemStatusChecker
, que proporciona los dos métodos principales preExecutionCheck
y postExecutionCheck
que se ejecutan antes y después de la ejecución de cada módulo.
Es posible que un verificador implemente solo uno de los dos o ambos si es necesario verificar el estado antes del módulo y compararlo con el estado después del módulo.
Existen varias implementaciones de ejemplo en Tradefed. Se recomienda que cada implementación se enfoque en una sola verificación para mejorar la reutilización. Por ejemplo, SystemServerStatusCheck
verifica si el proceso system_server
se reinició en el dispositivo durante la ejecución del paquete de pruebas. En postExecutionCheck
, llama a deviceSoftRestarted
, que se define en NativeDevice
para verificar si se reinició el proceso system_server
.
Cada operación muestra StatusCheckerResult
, que permite que el harness decida si se debe capturar información adicional, como un informe de errores.
¿Dónde se definen en el CTS?
Los verificadores de estado del sistema del CTS se definen en /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml.
Cómo encontrar fallas del verificador
De forma predeterminada, las fallas del verificador del sistema se muestran solo en los registros y como informes de errores capturados para la invocación con el nombre que sigue el formato bugreport-checker-post-module-<module name>.zip
.
Esto te permite averiguar después de qué módulo se generó el informe de errores.
Es posible que el verificador del sistema informe como una prueba fallida si configuras la opción --report-system-checkers
como true
. Esto da como resultado una ejecución de prueba que muestra un error, y el motivo es la verificación particular del verificador de estado.