Проверить состояние системы

Средства проверки состояния системы (SSC) определяются на уровне конфигурации пакета и запускаются между каждым модулем. Они выполняют проверки, чтобы определить, изменился ли модуль и не восстановил ли он какие-либо заданные состояния, например, значение системного свойства.

SSC в основном используются для того, чтобы разработчики модулей не забывали очищать память после выполнения тестов; но если они все же забывают, то предоставляют трассировку для устранения проблемы.

В качестве дополнительного варианта использования можно также восстановить исходное состояние, если это возможно, например, закрыть всплывающее окно, если оно было оставлено открытым.

Определение XML средства проверки состояния системы

<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" />

SSC определяются в теге system_checker в конфигурационном XML-файле Tradefed.

Выполнение

Каждый модуль SSC должен реализовывать интерфейс ISystemStatusChecker , который предоставляет два основных метода: preExecutionCheck и postExecutionCheck , выполняемые до и после выполнения каждого модуля.

Программа проверки может реализовать только один из двух вариантов, или же оба, если необходимо проверить состояние до модуля и сравнить его с состоянием после модуля.

В Tradefed существует несколько примеров реализаций . Рекомендуется, чтобы каждая реализация фокусировалась на одной проверке для повышения повторного использования. Например, SystemServerStatusCheck проверяет, перезапустился ли процесс system_server на устройстве во время выполнения набора тестов. В postExecutionCheck вызывается deviceSoftRestarted , определенный в NativeDevice , для проверки перезапуска процесса system_server .

Каждая операция возвращает StatusCheckerResult , который позволяет системе определить, следует ли собирать дополнительную информацию, например, отчет об ошибке.

Где они определены в CTS?

Средства проверки состояния системы CTS определены в файле /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml .

Как обнаружить ошибки проверки

По умолчанию ошибки проверки системы отображаются только в журналах и в виде отчетов об ошибках, созданных для вызова с именем в формате bugreport-checker-post-module-<module name>.zip .

Это позволит вам узнать, после какого модуля был создан отчет об ошибке.

Можно настроить систему проверки на то, чтобы она сама сообщала о сбое теста, установив параметр --report-system-checkers в значение true . В результате тестовый запуск будет отображаться как неудачный, а причиной сбоя будет конкретная проверка состояния системы.