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 |
|
Métodos públicos | |
|---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
Adiciona um comando ao programador. |
void
|
addCommandFile(String cmdFilePath,
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 |
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 |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Executa o comando diretamente no dispositivo já alocado. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
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 |
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 |
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,
|
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 |
void
|
start()
Inicia o programador, incluindo a configuração de geração de registros, inicialização de |
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. |
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 staticcreateReleaseMap (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 |
|
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 |
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 |