Comprobar el estado del sistema

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

Los SSC se utilizan principalmente para garantizar que los escritores de módulos no se olviden de limpiar después de sus pruebas; pero si lo hacen, proporcione un rastro del mismo para que pueda abordarse.

Un uso secundario es restaurar también el estado original cuando sea posible, por ejemplo, descartando el bloqueo de claves 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 bajo la etiqueta system_checker en el 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 implemente 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 centre en una única verificación para mejorar la reutilización. Por ejemplo, SystemServerStatusCheck comprueba si el proceso system_server se reinició en el dispositivo durante la ejecución del conjunto de pruebas. En postExecutionCheck , llama deviceSoftRestarted , que está definido en NativeDevice para verificar si el proceso system_server se reinició.

Cada operación devuelve StatusCheckerResult , lo que permite al arnés decidir si se debe capturar información adicional, como un informe de error.

¿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 en el 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 siguiendo el formato bugreport-checker-post-module-<module name>.zip .

Esto le permite saber después de qué módulo se generó el informe de error.

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