Cómo consultar el estado del sistema

Los verificadores de estado del sistema (SSC) se definen en la configuración a nivel de la suite y se ejecutan entre cada módulo. Realizan verificaciones para determinar si el módulo cambió y no restableció algunos estados determinados, por ejemplo, cambiar el valor de una propiedad del sistema.

Los SSC se usan principalmente para garantizar que los escritores de módulos no olviden limpiar después de sus pruebas, pero, si lo hacen, proporcionan un registro de ello para que se pueda abordar.

Un uso secundario es restablecer el estado original cuando sea posible, por ejemplo, descartar el bloqueo de teclas si se dejó abierto.

Definición XML del verificador 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 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 del módulo.

Es posible que un verificador implemente solo uno de los dos, o bien ambos si es necesario verificar el estado antes del módulo y compararlo con el estado después del módulo.

En Tradefed, existen varias implementaciones de ejemplo. Se recomienda que cada implementación se centre 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 devuelve StatusCheckerResult, lo que permite que el arnés 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 errores del verificador

De forma predeterminada, los errores 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 informe del verificador del sistema se considere como una falla de prueba estableciendo la opción --report-system-checkers en true. Esto hace que la ejecución de la prueba se muestre como fallida, y el motivo de la falla es la verificación particular del verificador de estado.