Средства проверки состояния системы (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
. В результате запуск теста будет отображаться как неудавшийся, а причиной сбоя будет конкретная проверка средства проверки состояния.