Планировщик команд

public class CommandScheduler
extends Object implements ICommandScheduler

java.lang.Object
com.android.tradefed.command.CommandScheduler


Планировщик для запуска команд TradeFederation на всех доступных устройствах.

Будет пытаться расставить приоритеты для выполнения команд на основе общего количества времени их выполнения. Например, редко выполняемые или быстро выполняемые команды будут иметь приоритет над долго выполняемыми командами.

Работает в фоновом режиме до момента выключения.

Краткое содержание

Публичные конструкторы

CommandScheduler ()

Создает CommandScheduler .

Публичные методы

Pair <Boolean, Integer> addCommand (String[] args)

Добавляет команду в планировщик.

void addCommandFile (String cmdFilePath, extraArgs)

Добавляет все команды из указанного файла в планировщик

void await ()

Ожидает начала работы планировщика, включая ожидание завершения передачи управления от старого TF, если это применимо.

static TradefedDelegator checkDelegation (String[] args)

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

static createReleaseMap ( IInvocationContext context, Throwable e)

Создайте карту состояний устройств, чтобы можно было своевременно их выпустить.

ISandbox createSandbox ()

Создайте ISandbox , который будет использоваться для запуска вызова.

void displayCommandQueue (PrintWriter printWriter)

Вывести подробную отладочную информацию о состоянии очереди выполнения команд.

void displayCommandsInfo (PrintWriter printWriter, String regex)

Вывести список текущих команд.

void displayInvocationsInfo (PrintWriter printWriter)

Отображает список текущих вызовов.

void dumpCommandsXml (PrintWriter printWriter, String regex)

Вывести расширенный XML-файл для команды со всеми значениями Option , указанными для всех текущих команд.

long execCommand ( ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)

Непосредственно выполнить команду на уже выделенном устройстве.

long execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args)

Непосредственно выполнить команду на уже выделенных устройствах.

long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)

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

long execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args)

Непосредственно выделяет устройство и выполняет команду, не добавляя ее в очередь команд.

CommandFileWatcher getCommandFileWatcher ()

Получите соответствующий CommandFileWatcher для этого планировщика

int getExecutingCommandCount ()

Возвращает количество команд в состоянии выполнения.

CommandScheduler.HostState getHostState ()
String getInvocationInfo (int invocationId)

Возвращает информацию о вызове, указав идентификатор вызова.

CommandRunner.ExitCode getLastInvocationExitCode ()

Верните код ошибки последнего выполненного вызова.

Throwable getLastInvocationThrowable ()

Верните Throwable из последнего выполненного вызова.

int getReadyCommandCount ()

Возвращает количество команд в состоянии готовности в очереди.

long getShutdownTimeout ()
boolean isDeviceInInvocationThread ( ITestDevice device)

Возвращает true, если устройство используется активным потоком вызовов.

boolean isShuttingDown ()
void notifyFileChanged (File cmdFile, extraArgs)
void removeAllCommands ()

Удалить все команды из планировщика

void run ()

Основной блок исполнения этого потока.

void setClearcutClient (ClearcutClient client)

Настройте клиента на отправку данных о жгутах проводов

void setMaxPollTime (long polling)
void setPrintSchedulingWarning (boolean print)
boolean shouldShutdownOnCmdfileError ()

Возвращаем true, если нам нужно остановить планировщик при возникновении ошибок команды.

void shutdown (boolean notifyStop)

Попытайтесь корректно завершить работу планировщика команд.

void shutdownHard (boolean killAdb)

Попытайтесь принудительно завершить работу планировщика команд.

void shutdownHard ()

Попытайтесь принудительно завершить работу планировщика команд.

void shutdownOnEmpty ()

Аналогично shutdown() , но вместо этого ждет выполнения всех команд перед выходом.

void start ()

Запускает планировщик, включая настройку ведения журнала, инициализацию DeviceManager и т. д.

boolean stopInvocation ( ITestInvocation invocation)

Остановить текущий вызов.

boolean stopInvocation (int invocationId, String cause)

Остановите запущенный вызов, указав его идентификатор.

void stopScheduling ()

Останавливает планирование и прием новых тестов, но не останавливает Tradefed.

Защищенные методы

void cleanUp ()

Закрывает журналы и выполняет любую другую необходимую очистку перед выходом.

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
void dryRunCommandReporting ( ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)

Определяет, является ли данная команда пробным запуском.

long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args)
IConfigurationFactory getConfigFactory ()

Фабричный метод для получения ссылки на IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

Фабричный метод получения ссылки на IDeviceManager

TradefedFeatureServer getFeatureServer ()
IHostOptions getHostOptions ()
IKeyStoreClient getKeyStoreClient ()

Извлекает IKeyStoreClient используя IKeyStoreFactory , объявленный в IGlobalConfiguration , или null, если ничего не определено.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Инициализирует журнал ddmlib.

boolean isShutdown ()
void processReadyCommands ( IDeviceManager manager)

Публичные конструкторы

Планировщик команд

public CommandScheduler ()

Создает CommandScheduler .

Примечание: перед использованием необходимо вызвать start.

Публичные методы

addCommand

public Pair<Boolean, Integer> addCommand (String[] args)

Добавляет команду в планировщик.

Команда по сути представляет собой экземпляр конфигурации для запуска и связанных с ней аргументов.

Если указан аргумент "--help", текст справки по конфигурации будет выведен на стандартный вывод. В противном случае конфигурация будет добавлена ​​в очередь на выполнение.

Параметры
args String : аргументы конфигурации.

Возврат
Pair <Boolean, Integer> Пара значений. Первое значение — логическое значение true если команда была добавлена ​​успешно. Второе значение — известный идентификатор трекера команд (неотрицательное значение), если команда была добавлена ​​успешно. Возвращает 0, если команда добавлена ​​для всех устройств, в противном случае — -1.

Броски
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Добавляет все команды из указанного файла в планировщик

Параметры
cmdFilePath String : путь к командному файлу в файловой системе

extraArgs : ERROR(/List) String аргументов для добавления к каждой команде, проанализированной из файла. Может быть пустым, но не должен быть равен NULL.

Броски
ConfigurationException

ждать

public void await ()

Ожидает начала работы планировщика, включая ожидание завершения передачи управления от старого TF, если это применимо.

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

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

Параметры
args String

Возврат
TradefedDelegator

Броски
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

Создайте карту состояний устройств, чтобы можно было своевременно их выпустить.

Параметры
context IInvocationContext

e Throwable

Возврат

createSandbox

public ISandbox createSandbox ()

Создайте ISandbox , который будет использоваться для запуска вызова.

Возврат
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Вывести подробную отладочную информацию о состоянии очереди выполнения команд.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Вывести список текущих команд.

Параметры
printWriter PrintWriter : ERROR(/PrintWriter) для вывода.

regex String : регулярное выражение, которому должны соответствовать команды для вывода. Если равно null, будут выводиться все команды.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Отображает список текущих вызовов.

Параметры
printWriter PrintWriter : ERROR(/PrintWriter) для вывода.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Вывести расширенный XML-файл для команды со всеми значениями Option , указанными для всех текущих команд.

Параметры
printWriter PrintWriter : ERROR(/PrintWriter) для вывода статуса.

regex String : регулярное выражение, которому должны соответствовать команды для выгрузки XML-файла. Если равно null, будут выгружены все команды.

execCommand

public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                ITestDevice device, 
                String[] args)

Непосредственно выполнить команду на уже выделенном устройстве.

Параметры
listener ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , который будет уведомлен

device ITestDevice : используемое ITestDevice

args String : аргументы команды

Возврат
long Идентификатор вызова запланированной команды.

Броски
ConfigurationException

execCommand

public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                 reservedDevices, 
                String[] args)

Непосредственно выполнить команду на уже выделенных устройствах.

Параметры
listener ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , который будет уведомлен

reservedDevices : ERROR(/List ) использовать

args String : аргументы команды

Возврат
long Идентификатор вызова запланированной команды.

Броски
ConfigurationException

execCommand

public long execCommand (IInvocationContext context, 
                ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

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

Параметры
context IInvocationContext : существующий IInvocationContext .

listener ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , который будет уведомлен

args String : аргументы команды

Возврат
long

Броски
ConfigurationException
NoDeviceException

execCommand

public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                String[] args)

Непосредственно выделяет устройство и выполняет команду, не добавляя ее в очередь команд.

Параметры
listener ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , который будет уведомлен

args String : аргументы команды

Возврат
long Идентификатор вызова запланированной команды.

Броски
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Получите соответствующий CommandFileWatcher для этого планировщика

Возврат
CommandFileWatcher

получитьВыполнениеКомандКаунти

public int getExecutingCommandCount ()

Возвращает количество команд в состоянии выполнения.

Возврат
int

получитьHostState

public CommandScheduler.HostState getHostState ()

Возврат
CommandScheduler.HostState

получитьInvocationInfo

public String getInvocationInfo (int invocationId)

Возвращает информацию о вызове, указав идентификатор вызова.

Параметры
invocationId int : идентификатор отслеживания вызова.

Возврат
String String , содержащая информацию о вызове.

получитьLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Верните код ошибки последнего выполненного вызова. Возвращайте 0 (нет ошибки), если вызов ещё не выполнялся.

Возврат
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Возвращает Throwable из последнего выполненного вызова. Возвращает null, если нет доступного Throwable.

Возврат
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Возвращает количество команд в состоянии готовности в очереди.

Возврат
int

getShutdownTimeout

public long getShutdownTimeout ()

Возврат
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Возвращает true, если устройство используется активным потоком вызовов.

Параметры
device ITestDevice

Возврат
boolean

isShuttingDown

public boolean isShuttingDown ()

Возврат
boolean

уведомитьФайлИзменен

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Параметры
cmdFile File

extraArgs

удалитьВсеКоманды

public void removeAllCommands ()

Удалить все команды из планировщика

бегать

public void run ()

Основной блок исполнения этого потока.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Настройте клиента на отправку данных о жгутах проводов

Параметры
client ClearcutClient

setMaxPollTime

public void setMaxPollTime (long polling)

Параметры
polling long

setPrintSchedulingWarning

public void setPrintSchedulingWarning (boolean print)

Параметры
print boolean

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Возвращаем true, если нам нужно остановить планировщик при возникновении ошибок команды.

Возврат
boolean

неисправность

public void shutdown (boolean notifyStop)

Попытайтесь корректно завершить работу планировщика команд.

Параметры
notifyStop boolean : если true, уведомляет о вызовах отключения TF.

shutdownHard

public void shutdownHard (boolean killAdb)

Попытайтесь принудительно завершить работу планировщика команд.

Аналогично shutdown() , но также опционально завершает соединение adb, пытаясь «вдохновить» текущие вызовы на более быстрое завершение.

Параметры
killAdb boolean

shutdownHard

public void shutdownHard ()

Попытка принудительно завершить работу планировщика команд. То же, что и shutdownHard(true).

shutdownOnEmpty

public void shutdownOnEmpty ()

Аналогично shutdown() , но вместо этого ждет выполнения всех команд перед выходом.

Обратите внимание, что если какие-либо команды находятся в циклическом режиме, планировщик никогда не завершит работу.

начинать

public void start ()

Запускает планировщик, включая настройку ведения журнала, инициализацию DeviceManager и т. д.

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Остановить текущий вызов.

Параметры
invocation ITestInvocation

Возврат
boolean true, если вызов был остановлен, false в противном случае

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

Остановите запущенный вызов, указав его идентификатор.

Параметры
invocationId int : идентификатор отслеживания вызова.

cause String : причина остановки вызова.

Возврат
boolean true, если вызов был остановлен, false в противном случае

stopScheduling

public void stopScheduling ()

Останавливает планирование и приём новых тестов, но не останавливает Tradefed. Это сделано для обеспечения двухэтапного завершения работы: сначала мы завершаем все запущенные тесты, а затем завершаем процесс Tradefed.

Защищенные методы

уборка

protected void cleanUp ()

Закрывает журналы и выполняет любую другую необходимую очистку перед выходом.

Открыто, чтобы можно было имитировать модульные тесты.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Параметры
args String

Возврат
IConfiguration

Броски
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Возврат
IInvocationContext

dryRunCommandReporting

protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, 
                IConfiguration config)

Определяет, является ли заданная команда пробным запуском. Если команда является пробным запуском, проверяет её. При наличии проблем с конфигурациями выдаётся исключение ConfigurationException.

Параметры
handler ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) при сообщении событий для пробной проверки.

config IConfiguration

Возврат
void true, если команда выполняется в тестовом режиме, в противном случае false.

Броски
com.android.tradefed.config.ConfigurationException
ConfigurationException

execCommand

protected long execCommand (IInvocationContext context, 
                ICommandScheduler.IScheduledInvocationListener listener, 
                 reservedDevices, 
                String[] args)

Параметры
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices

args String

Возврат
long

Броски
ConfigurationException

получитьConfigFactory

protected IConfigurationFactory getConfigFactory ()

Фабричный метод для получения ссылки на IConfigurationFactory

Возврат
IConfigurationFactory IConfigurationFactory для использования

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Возврат
DeviceManagementGrpcServer

получитьDeviceManager

protected IDeviceManager getDeviceManager ()

Фабричный метод получения ссылки на IDeviceManager

Возврат
IDeviceManager IDeviceManager для использования

получитьFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Возврат
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Возврат
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Извлекает IKeyStoreClient используя IKeyStoreFactory , объявленный в IGlobalConfiguration , или null, если ничего не определено.

Возврат
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Возврат
TestInvocationManagementServer

initLogging

protected void initLogging ()

Инициализирует журнал ddmlib.

Открыто, чтобы можно было имитировать модульные тесты.

isShutdown

protected boolean isShutdown ()

Возврат
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Параметры
manager IDeviceManager