CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


Um programador para executar comandos do TradeFederation em todos os dispositivos disponíveis.

Tenta priorizar os comandos a serem executados com base em uma contagem total do tempo de execução. Por exemplo, comandos rápidos ou pouco frequentes têm prioridade sobre comandos de longa duração.

É executado para sempre em segundo plano até o desligamento.

Resumo

Construtores públicos

CommandScheduler()

Cria um CommandScheduler.

Métodos públicos

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

Adiciona um comando ao programador.

void addCommandFile(String cmdFilePath, extraArgs)

Adiciona todos os comandos do arquivo especificado ao programador.

void await()

Aguarde o início da execução do programador, incluindo a espera pela conclusão da transferência do TF antigo, se aplicável.

static TradefedDelegator checkDelegation(String[] args)

Crie um delegador com base na linha de comando para verificar se precisamos delegar a execução.

static createReleaseMap(IInvocationContext context, Throwable e)

Crie um mapa do estado dos dispositivos para que eles possam ser lançados adequadamente.

ISandbox createSandbox()

Crie um ISandbox que a invocação vai usar para executar.

void displayCommandQueue(PrintWriter printWriter)

Gera informações detalhadas de depuração sobre o estado da fila de execução de comandos.

void displayCommandsInfo(PrintWriter printWriter, String regex)

Mostra uma lista dos comandos atuais.

void displayInvocationsInfo(PrintWriter printWriter)

Mostra uma lista das invocações atuais.

void dumpCommandsXml(PrintWriter printWriter, String regex)

Despeje o arquivo XML expandido para o comando com todos os valores Option especificados para todos os comandos atuais.

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

Executa o comando diretamente no dispositivo já alocado.

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

Executar comandos diretamente em dispositivos já alocados.

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

Aloca diretamente um dispositivo e executa um comando sem adicioná-lo à fila de comandos usando um IInvocationContext já existente.

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

Aloca diretamente um dispositivo e executa um comando sem adicioná-lo à fila de comandos.

CommandFileWatcher getCommandFileWatcher()

Receber o CommandFileWatcher adequado para este programador

int getExecutingCommandCount()

Retorna o número de comandos em estado de execução.

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

Retorna as informações de uma invocação especificando o ID dela.

CommandRunner.ExitCode getLastInvocationExitCode()

Retorna o código de erro da última invocação executada.

Throwable getLastInvocationThrowable()

Retorna o Throwable da última invocação executada.

int getReadyCommandCount()

Retorna o número de comandos no estado pronto na fila.

long getShutdownTimeout()
boolean isDeviceInInvocationThread(ITestDevice device)

Retorna true se o dispositivo for usado por uma linha de execução de invocação ativa.

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

Remover todos os comandos do programador

void run()

O bloco de execução principal dessa linha de execução.

void setClearcutClient(ClearcutClient client)

Definir o cliente para informar dados de harness

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

Retorna "true" se for necessário desligar o programador em caso de erros de comando.

void shutdown(boolean notifyStop)

Tente desligar o programador de comandos normalmente.

void shutdownHard(boolean killAdb)

Tente encerrar o programador de comandos à força.

void shutdownHard()

Tente encerrar o programador de comandos à força.

void shutdownOnEmpty()

Semelhante a shutdown(), mas aguarda a execução de todos os comandos antes de sair.

void start()

Inicia o programador, incluindo a configuração de geração de registros, inicialização de DeviceManager etc.

boolean stopInvocation(ITestInvocation invocation)

Interrompe uma invocação em execução.

boolean stopInvocation(int invocationId, String cause)

Interrompa uma invocação em execução especificando o ID dela.

void stopScheduling()

Interrompe o agendamento e a aceitação de novos testes, mas não interrompe o Tradefed.

Métodos protegidos

void cleanUp()

Fecha os registros e faz qualquer outra limpeza necessária antes de sair.

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

Determina se um comando específico é um teste.

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

Método de fábrica para receber uma referência ao IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

Método de fábrica para receber uma referência ao IDeviceManager

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

Busca um IKeyStoreClient usando o IKeyStoreFactory declarado em IGlobalConfiguration ou nulo se nenhum estiver definido.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

Inicializa o registro ddmlib.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)

Construtores públicos

CommandScheduler

public CommandScheduler ()

Cria um CommandScheduler.

Observação: "start" precisa ser chamado antes do uso.

Métodos públicos

addCommand

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

Adiciona um comando ao programador.

Um comando é essencialmente uma instância de uma configuração para execução e os argumentos associados.

Se o argumento "--help" for especificado, o texto de ajuda da configuração será enviado para stdout. Caso contrário, a configuração será adicionada à fila para execução.

Parâmetros
args String: os argumentos de configuração.

Retorna
Pair<Boolean, Integer> Um par de valores. O primeiro é um booleano true se o comando foi adicionado com sucesso. O segundo valor é o ID do rastreador de comandos conhecido(valor não negativo) se o comando foi adicionado com sucesso. Retorna 0 quando o comando é adicionado a todos os dispositivos. Caso contrário, -1.

Gera
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Adiciona todos os comandos do arquivo especificado ao programador.

Parâmetros
cmdFilePath String: o caminho do sistema de arquivos do arquivo de comando

extraArgs : uma ERROR(/List) de argumentos String a serem anexados a cada comando analisado do arquivo. Pode estar vazio, mas não pode ser nulo.

Gera
ConfigurationException

await

public void await ()

Aguarde o início da execução do programador, incluindo a espera pela conclusão da transferência do TF antigo, se aplicável.

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

Crie um delegador com base na linha de comando para verificar se precisamos delegar a execução.

Parâmetros
args String

Retorna
TradefedDelegator

Gera
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

public static  createReleaseMap (IInvocationContext context, 
                Throwable e)

Crie um mapa do estado dos dispositivos para que eles possam ser lançados adequadamente.

Parâmetros
context IInvocationContext

e Throwable

Retorna

createSandbox

public ISandbox createSandbox ()

Crie um ISandbox que a invocação vai usar para executar.

Retorna
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Gera informações detalhadas de depuração sobre o estado da fila de execução de comandos.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Mostra uma lista dos comandos atuais.

Parâmetros
printWriter PrintWriter: o ERROR(/PrintWriter) para saída.

regex String: a expressão regular a que os comandos precisam corresponder para serem impressos. Se for nulo, todos os comandos serão impressos.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

Mostra uma lista das invocações atuais.

Parâmetros
printWriter PrintWriter: o ERROR(/PrintWriter) para saída.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Despeje o arquivo XML expandido para o comando com todos os valores Option especificados para todos os comandos atuais.

Parâmetros
printWriter PrintWriter: o ERROR(/PrintWriter) para gerar o status.

regex String: a expressão regular a que os comandos precisam corresponder para que o arquivo XML seja despejado. Se for nulo, todos os comandos serão despejados.

execCommand

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

Executa o comando diretamente no dispositivo já alocado.

Parâmetros
listener ICommandScheduler.IScheduledInvocationListener: o ICommandScheduler.IScheduledInvocationListener a ser informado

device ITestDevice: o ITestDevice a ser usado

args String: os argumentos do comando

Retorna
long O ID de invocação do comando agendado.

Gera
ConfigurationException

execCommand

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

Executar comandos diretamente em dispositivos já alocados.

Parâmetros
listener ICommandScheduler.IScheduledInvocationListener: o ICommandScheduler.IScheduledInvocationListener a ser informado

reservedDevices : o ERROR(/List) a ser usado

args String: os argumentos do comando

Retorna
long O ID de invocação do comando agendado.

Gera
ConfigurationException

execCommand

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

Aloca diretamente um dispositivo e executa um comando sem adicioná-lo à fila de comandos usando um IInvocationContext já existente.

Parâmetros
context IInvocationContext: um IInvocationContext existente.

listener ICommandScheduler.IScheduledInvocationListener: o ICommandScheduler.IScheduledInvocationListener a ser informado

args String: os argumentos do comando

Retorna
long

Gera
ConfigurationException
NoDeviceException

execCommand

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

Aloca diretamente um dispositivo e executa um comando sem adicioná-lo à fila de comandos.

Parâmetros
listener ICommandScheduler.IScheduledInvocationListener: o ICommandScheduler.IScheduledInvocationListener a ser informado

args String: os argumentos do comando

Retorna
long O ID de invocação do comando agendado.

Gera
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Receber o CommandFileWatcher adequado para este programador

Retorna
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

Retorna o número de comandos em estado de execução.

Retorna
int

getHostState

public CommandScheduler.HostState getHostState ()

Retorna
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Retorna as informações de uma invocação especificando o ID dela.

Parâmetros
invocationId int: o ID de rastreamento da invocação.

Retorna
String Um String que contém informações sobre a invocação.

getLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Retorna o código de erro da última invocação executada. Retorna 0 (sem erro) se nenhuma invocação tiver sido executada ainda.

Retorna
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Retorna o Throwable da última invocação executada. Retorna nulo se nenhum throwable estiver disponível.

Retorna
Throwable

getReadyCommandCount

public int getReadyCommandCount ()

Retorna o número de comandos no estado pronto na fila.

Retorna
int

getShutdownTimeout

public long getShutdownTimeout ()

Retorna
long

isDeviceInInvocationThread

public boolean isDeviceInInvocationThread (ITestDevice device)

Retorna true se o dispositivo for usado por uma linha de execução de invocação ativa.

Parâmetros
device ITestDevice

Retorna
boolean

isShuttingDown

public boolean isShuttingDown ()

Retorna
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Parâmetros
cmdFile File

extraArgs

removeAllCommands

public void removeAllCommands ()

Remover todos os comandos do programador

run

public void run ()

O bloco de execução principal dessa linha de execução.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Definir o cliente para informar dados de harness

Parâmetros
client ClearcutClient

setMaxPollTime

public void setMaxPollTime (long polling)

Parâmetros
polling long

setPrintSchedulingWarning

public void setPrintSchedulingWarning (boolean print)

Parâmetros
print boolean

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Retorna "true" se for necessário desligar o programador em caso de erros de comando.

Retorna
boolean

desligamento

public void shutdown (boolean notifyStop)

Tente desligar o programador de comandos normalmente.

Parâmetros
notifyStop boolean: se for "true", notifica as invocações do desligamento do TF.

shutdownHard

public void shutdownHard (boolean killAdb)

Tente encerrar o programador de comandos à força.

Semelhante a shutdown(), mas também pode encerrar a conexão adb, em uma tentativa de "inspirar" as invocações em andamento a serem concluídas mais rapidamente.

Parâmetros
killAdb boolean

shutdownHard

public void shutdownHard ()

Tente encerrar o programador de comandos à força. Igual a shutdownHard(true).

shutdownOnEmpty

public void shutdownOnEmpty ()

Semelhante a shutdown(), mas aguarda a execução de todos os comandos antes de sair.

Se algum comando estiver no modo de loop, o programador nunca vai sair.

start

public void start ()

Inicia o programador, incluindo a configuração de geração de registros, inicialização de DeviceManager etc.

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Interrompe uma invocação em execução.

Parâmetros
invocation ITestInvocation

Retorna
boolean true se a invocação foi interrompida, false caso contrário

stopInvocation

public boolean stopInvocation (int invocationId, 
                String cause)

Interrompa uma invocação em execução especificando o ID dela.

Parâmetros
invocationId int: o ID de rastreamento da invocação.

cause String: a causa da interrupção da invocação.

Retorna
boolean true se a invocação foi interrompida, false caso contrário

stopScheduling

public void stopScheduling ()

Interrompe o agendamento e a aceitação de novos testes, mas não interrompe o Tradefed. Isso permite um desligamento em duas etapas em que primeiro esgotamos todos os testes em execução e depois encerramos o processo do Tradefed.

Métodos protegidos

cleanUp

protected void cleanUp ()

Fecha os registros e faz qualquer outra limpeza necessária antes de sair.

Exposto para que os testes de unidade possam simular.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Parâmetros
args String

Retorna
IConfiguration

Gera
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Retorna
IInvocationContext

dryRunCommandReporting

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

Determina se um comando específico é um teste. Se o comando for uma simulação, valide-o. Se houver algum problema de configuração, uma ConfigurationException será gerada.

Parâmetros
handler ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler) para informar eventos de validação de simulação.

config IConfiguration

Retorna
void "true" se o comando for uma simulação, "false" caso contrário.

Gera
com.android.tradefed.config.ConfigurationException
ConfigurationException

execCommand

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

Parâmetros
context IInvocationContext

listener ICommandScheduler.IScheduledInvocationListener

reservedDevices

args String

Retorna
long

Gera
ConfigurationException

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Método de fábrica para receber uma referência ao IConfigurationFactory

Retorna
IConfigurationFactory o IConfigurationFactory a ser usado

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Retorna
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

Método de fábrica para receber uma referência ao IDeviceManager

Retorna
IDeviceManager o IDeviceManager a ser usado

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Retorna
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Retorna
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Busca um IKeyStoreClient usando o IKeyStoreFactory declarado em IGlobalConfiguration ou nulo se nenhum for definido.

Retorna
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Retorna
TestInvocationManagementServer

initLogging

protected void initLogging ()

Inicializa o registro ddmlib.

Exposto para que os testes de unidade possam simular.

isShutdown

protected boolean isShutdown ()

Retorna
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parâmetros
manager IDeviceManager