CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Um programador para executar comandos da TradeFederation em todos os dispositivos disponíveis.
Tentará priorizar os comandos a serem executados com base em uma contagem total de execução do tempo de execução. Por exemplo, comandos não frequentes ou de execução rápida terão prioridade em relação aos comandos de longa duração.
É executada para sempre em segundo plano até a desativação.
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 agendador |
void
|
await()
Aguarda a execução do programador, incluindo a espera pela conclusão da transferência da TF antiga, se aplicável. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Crie um delegante com base na linha de comando para saber se precisamos delegar a execução. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Crie um mapa do estado dos dispositivos para que eles possam ser liberados adequadamente. |
ISandbox
|
createSandbox()
Crie um |
void
|
displayCommandQueue(PrintWriter printWriter)
Mostra 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)
Faça o despejo do arquivo XML expandido para o comando com todos
os valores |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Executa o comando diretamente em um dispositivo já alocado. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Executa o comando 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 apropriado para esse programador |
int
|
getExecutingCommandCount()
Retorna o número de comandos no estado de execução. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Retorna as informações de uma invocação ao especificar o ID da invocação. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Retorne o código de erro da última invocação que foi executada. |
Throwable
|
getLastInvocationThrowable()
Retorne o |
int
|
getReadyCommandCount()
Retorna o número de comandos em estado pronto na fila. |
long
|
getShutdownTimeout()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
Retorna verdadeiro 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 desta linha de execução. |
void
|
setClearcutClient(ClearcutClient client)
Configurar o cliente para informar dados do harness |
boolean
|
shouldShutdownOnCmdfileError()
Retorna verdadeiro se precisarmos encerrar o programador em um erro de comando |
void
|
shutdown(boolean notifyStop)
Tente encerrar o programador de comandos de forma suave. |
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)
Interrompa uma invocação em execução. |
boolean
|
stopInvocation(int invocationId, String cause)
Para interromper uma invocação em execução, especifique o ID dela. |
void
|
stopScheduling()
Interrompe a programação 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 a ser executada e os argumentos associados a ela.
Se o argumento "--help" for especificado, o texto de ajuda da configuração será enviado para o 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 valor será um true booleano se o comando tiver sido adicionado
com sucesso. O segundo valor é o ID do rastreador de comandos conhecido(valor não negativo) se o comando tiver sido adicionado. Caso contrário, retorna 0 quando o comando é adicionado para todos os dispositivos. Caso contrário, retorna -1. |
Gera | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Adiciona todos os comandos do arquivo especificado ao agendador
Parâmetros | |
---|---|
cmdFilePath |
String : o caminho do sistema de arquivos do arquivo de comando |
extraArgs |
: um ERROR(/List) de argumentos String para anexar a cada comando analisado
em arquivo. Pode estar vazio, mas não deve ser nulo. |
Gera | |
---|---|
ConfigurationException |
esperam
public void await ()
Aguarda a execução do programador, incluindo a espera pela conclusão da transferência da TF antiga, se aplicável.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Crie um delegante com base na linha de comando para saber 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 liberados adequadamente.
Parâmetros | |
---|---|
context |
IInvocationContext |
e |
Throwable |
Retorna | |
---|---|
|
createSandbox
public ISandbox createSandbox ()
Crie um ISandbox
que será executado pela invocação.
Retorna | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Mostra 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 com que os comandos precisam ser correspondentes 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)
Despeja 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 com que os comandos precisam ser correspondidos para que o
arquivo XML seja armazenado em buffer. Se for nulo, todos os comandos serão descartados. |
"execCommand"
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Executa o comando diretamente em um 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 programado. |
Gera | |
---|---|
ConfigurationException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Executar o comando 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 programado. |
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 um dispositivo diretamente 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 programado. |
Gera | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Receber o CommandFileWatcher apropriado para esse programador
Retorna | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Retorna o número de comandos no estado de execução.
Retorna | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Retorne as informações em uma bu de invocação especificando o ID dela.
Parâmetros | |
---|---|
invocationId |
int : o ID de rastreamento da invocação. |
Retorna | |
---|---|
String |
Um String contendo 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.
Retorna | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Retorna o Throwable
da última invocação executada.
Retorna null, se nenhum throwable estiver disponível.
Retorna | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Retorna o número de comandos em estado pronto na fila.
Retorna | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Retorna | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Retorna verdadeiro 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 desta linha de execução.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Configurar o cliente para informar dados do harness
Parâmetros | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Retornar verdadeiro se for necessário encerrar o programador em um erro de comando
Retorna | |
---|---|
boolean |
encerramento
public void shutdown (boolean notifyStop)
Tente encerrar o programador de comandos de forma suave.
Parâmetros | |
---|---|
notifyStop |
boolean : se verdadeiro, notifica invocações de desligamento do TF. |
shutdownHard
public void shutdownHard (boolean killAdb)
Tentativa de encerrar à força o programador de comando.
Semelhante a shutdown()
, mas também encerra a conexão adb, em uma
tentativa de "inspirar" as invocações em andamento para que sejam concluídas mais rapidamente.
Parâmetros | |
---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Tenta encerrar o programador de comandos à força. O mesmo que closeddownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Semelhante a shutdown()
, mas aguardará que todos os comandos sejam executados
antes de sair.
Se algum comando estiver no modo de loop, o programador nunca será encerrado.
start
public void start ()
Inicia o programador, incluindo a configuração da geração de registros, o init do DeviceManager
etc.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Interrompe uma invocação em execução.
Parâmetros | |
---|---|
invocation |
ITestInvocation |
Retorna | |
---|---|
boolean |
Verdadeiro se a invocação foi interrompida. Caso contrário, é falso. |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Para interromper uma invocação em execução, especifique o ID dela.
Parâmetros | |
---|---|
invocationId |
int : o ID de acompanhamento da invocação. |
cause |
String : a causa da interrupção da invocação. |
Retorna | |
---|---|
boolean |
verdadeiro se a invocação tiver sido interrompida, falso caso contrário |
stopScheduling
public void stopScheduling ()
Interrompe a programação e a aceitação de novos testes, mas não interrompe o Tradefed. O objetivo é ativar um encerramento em duas etapas, em que primeiro drenamos todos os testes em execução e, em seguida, 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 determinado comando é um teste. Se o comando for uma simulação, valide-o. Se houver algum problema de configuração, ele vai gerar uma ConfigurationException.
Parâmetros | |
---|---|
handler |
ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) para informar eventos para a validação de simulação. |
config |
IConfiguration |
Retorna | |
---|---|
void |
verdadeiro se o comando for uma simulação. Caso contrário, falso. |
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 para usar |
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 da ddmlib.
Exposição para que os testes de unidade possam simular.
isShutdown
protected boolean isShutdown ()
Retorna | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parâmetros | |
---|---|
manager |
IDeviceManager |