Cómo consultar el estado del sistema

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. Sin embargo, si lo hacen, proporcionan un registro para que se pueda abordar.

Un uso secundario es restablecer el estado original cuando sea posible, por ejemplo, cerrar el bloqueo de teclas 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 cada ejecución de 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 arnés decida si se debe capturar información adicional, como un informe de errores.

¿Dónde se definen en CTS?

Los verificadores de estado del sistema 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 solo se muestran 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 saber después de qué módulo se generó el informe de errores.

Es posible hacer que el verificador del sistema informe como una falla de prueba si configuras la opción --report-system-checkers en true. Esto genera una ejecución de prueba que se muestra como fallida, y el motivo de la falla es la verificación particular del comprobador de estado.