CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
| java.lang.Object | |
| ↳ | com.android.tradefed.command.CommandScheduler |
Es un programador para ejecutar comandos de TradeFederation en todos los dispositivos disponibles.
Intentará priorizar los comandos que se ejecutarán en función de un recuento total del tiempo de ejecución. Por ejemplo, los comandos que se ejecutan con poca frecuencia o rapidez tendrán prioridad sobre los que tardan más en ejecutarse.
Se ejecuta de forma indefinida en segundo plano hasta que se apaga.
Resumen
Constructores públicos | |
|---|---|
CommandScheduler()
Crea un |
|
Métodos públicos | |
|---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
Agrega un comando al programador. |
void
|
addCommandFile(String cmdFilePath,
Agrega todos los comandos del archivo determinado al programador. |
void
|
await()
Espera a que el programador comience a ejecutarse, lo que incluye esperar a que se complete la transferencia del TF anterior, si corresponde. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Crea un delegador basado en la línea de comandos para ver si necesitamos delegar la ejecución. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Crea un mapa del estado de los dispositivos para que se puedan liberar de forma adecuada. |
ISandbox
|
createSandbox()
Crea un |
void
|
displayCommandQueue(PrintWriter printWriter)
Genera información de depuración detallada sobre el estado de la cola de ejecución de comandos. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Genera una lista de los comandos actuales. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Muestra una lista de las invocaciones actuales. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Volca el archivo XML expandido para el comando con todos los valores de |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Ejecuta el comando directamente en el dispositivo ya asignado. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Ejecuta el comando directamente en los dispositivos ya asignados. |
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Asigna directamente un dispositivo y ejecuta un comando sin agregarlo a la cola de comandos con un |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Asigna un dispositivo directamente y ejecuta un comando sin agregarlo a la cola de comandos. |
CommandFileWatcher
|
getCommandFileWatcher()
Obtén el CommandFileWatcher adecuado para este programador |
int
|
getExecutingCommandCount()
Devuelve la cantidad de comandos en estado de ejecución. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Devuelve la información sobre una invocación especificando su ID. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Devuelve el código de error de la última invocación que se ejecutó. |
Throwable
|
getLastInvocationThrowable()
Devuelve el |
int
|
getReadyCommandCount()
Devuelve la cantidad de comandos en estado listo en la cola. |
long
|
getShutdownTimeout()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
Devuelve verdadero si el dispositivo se usa en un subproceso de invocación activo. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Quita todos los comandos del programador |
void
|
run()
Es el bloque de ejecución principal de este subproceso. |
void
|
setClearcutClient(ClearcutClient client)
Configura el cliente para que informe los datos del arnés |
void
|
setMaxPollTime(long polling)
|
void
|
setPrintSchedulingWarning(boolean print)
|
boolean
|
shouldShutdownOnCmdfileError()
Devuelve verdadero si necesitamos detener el programador en caso de errores de comando. |
void
|
shutdown(boolean notifyStop)
Intenta apagar de forma correcta el programador de comandos. |
void
|
shutdownHard(boolean killAdb)
Intenta apagar de forma forzosa el programador de comandos. |
void
|
shutdownHard()
Intenta apagar de forma forzosa el programador de comandos. |
void
|
shutdownOnEmpty()
Es similar a |
void
|
start()
Inicia el programador, lo que incluye la configuración del registro, la inicialización de |
boolean
|
stopInvocation(ITestInvocation invocation)
Detiene una invocación en ejecución. |
boolean
|
stopInvocation(int invocationId, String cause)
Detiene una invocación en ejecución especificando su ID. |
void
|
stopScheduling()
Detiene la programación y la aceptación de pruebas nuevas, pero no detiene Tradefed. |
Constructores públicos
CommandScheduler
public CommandScheduler ()
Crea un CommandScheduler.
Nota: Se debe llamar a start antes de usarlo.
Métodos públicos
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Agrega un comando al programador.
Un comando es, básicamente, una instancia de una configuración para ejecutar y sus argumentos asociados.
Si se especifica el argumento "--help", el texto de ayuda para la configuración se generará en stdout. De lo contrario, la configuración se agregará a la cola para que se ejecute.
| Parámetros | |
|---|---|
args |
String: Son los argumentos de configuración. |
| Muestra | |
|---|---|
Pair<Boolean, Integer> |
Es un par de valores. El primer valor es un true booleano si el comando se agregó correctamente. El segundo valor es el ID de seguimiento del comando conocido(valor no negativo) si el comando se agregó correctamente. De lo contrario, devuelve 0 cuando el comando se agrega para todos los dispositivos o -1. |
| Arroja | |
|---|---|
ConfigurationException |
|
addCommandFile
public void addCommandFile (String cmdFilePath,
extraArgs) Agrega todos los comandos del archivo determinado al programador.
| Parámetros | |
|---|---|
cmdFilePath |
String: Es la ruta de acceso del sistema de archivos del archivo de comandos. |
extraArgs |
: Es un ERROR(/List) de argumentos String que se anexarán a cada comando analizado desde el archivo. Puede estar vacío, pero no debe ser nulo. |
| Arroja | |
|---|---|
ConfigurationException |
|
await
public void await ()
Espera a que el programador comience a ejecutarse, lo que incluye esperar a que se complete la transferencia del TF anterior, si corresponde.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Crea un delegador basado en la línea de comandos para ver si necesitamos delegar la ejecución.
| Parámetros | |
|---|---|
args |
String |
| Muestra | |
|---|---|
TradefedDelegator |
|
| Arroja | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Crea un mapa del estado de los dispositivos para que se puedan liberar de forma adecuada.
| Parámetros | |
|---|---|
context |
IInvocationContext |
e |
Throwable |
| Muestra | |
|---|---|
|
|
createSandbox
public ISandbox createSandbox ()
Crea un ISandbox que la invocación usará para ejecutarse.
| Muestra | |
|---|---|
ISandbox |
|
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Genera información de depuración detallada sobre el estado de la cola de ejecución de comandos.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter,
String regex)Genera una lista de los comandos actuales.
| Parámetros | |
|---|---|
printWriter |
PrintWriter: Es el ERROR(/PrintWriter) en el que se generará el resultado. |
regex |
String: Es la expresión regular con la que se deben hacer coincidir los comandos para que se impriman. Si es nulo, se imprimirán todos los comandos. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Muestra una lista de las invocaciones actuales.
| Parámetros | |
|---|---|
printWriter |
PrintWriter: Es el ERROR(/PrintWriter) en el que se generará el resultado. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter,
String regex)Volca el archivo XML expandido para el comando con todos los valores de Option especificados para todos los comandos actuales.
| Parámetros | |
|---|---|
printWriter |
PrintWriter: Es el objeto ERROR(/PrintWriter) en el que se generará el estado. |
regex |
String: Es la expresión regular con la que se deben hacer coincidir los comandos para que se vuelque el archivo XML. Si es nulo, se volcarán todos los comandos. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Ejecuta el comando directamente en el dispositivo ya asignado.
| Parámetros | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: Es el ICommandScheduler.IScheduledInvocationListener que se informará. |
device |
ITestDevice: El ITestDevice que se usará |
args |
String: Los argumentos del comando |
| Muestra | |
|---|---|
long |
Es el ID de invocación del comando programado. |
| Arroja | |
|---|---|
ConfigurationException |
|
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Ejecuta el comando directamente en los dispositivos ya asignados.
| Parámetros | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: Es el ICommandScheduler.IScheduledInvocationListener que se informará. |
reservedDevices |
: El ERROR(/List que se usará |
args |
String: Los argumentos del comando |
| Muestra | |
|---|---|
long |
Es el ID de invocación del comando programado. |
| Arroja | |
|---|---|
ConfigurationException |
|
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Asigna directamente un dispositivo y ejecuta un comando sin agregarlo a la cola de comandos con un IInvocationContext ya existente.
| Parámetros | |
|---|---|
context |
IInvocationContext: Es un IInvocationContext existente. |
listener |
ICommandScheduler.IScheduledInvocationListener: Es el ICommandScheduler.IScheduledInvocationListener que se informará. |
args |
String: Los argumentos del comando |
| Muestra | |
|---|---|
long |
|
| Arroja | |
|---|---|
ConfigurationException |
|
NoDeviceException |
|
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Asigna un dispositivo directamente y ejecuta un comando sin agregarlo a la cola de comandos.
| Parámetros | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: Es el ICommandScheduler.IScheduledInvocationListener que se informará. |
args |
String: Los argumentos del comando |
| Muestra | |
|---|---|
long |
Es el ID de invocación del comando programado. |
| Arroja | |
|---|---|
ConfigurationException |
|
NoDeviceException |
|
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Obtén el CommandFileWatcher adecuado para este programador
| Muestra | |
|---|---|
CommandFileWatcher |
|
getExecutingCommandCount
public int getExecutingCommandCount ()
Devuelve la cantidad de comandos en estado de ejecución.
| Muestra | |
|---|---|
int |
|
getInvocationInfo
public String getInvocationInfo (int invocationId)
Devuelve la información sobre una invocación especificando su ID.
| Parámetros | |
|---|---|
invocationId |
int: Es el ID de seguimiento de la invocación. |
| Muestra | |
|---|---|
String |
Un String que contiene información sobre la invocación. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Devuelve el código de error de la última invocación que se ejecutó. Devuelve 0 (sin error) si aún no se ejecutó ninguna invocación.
| Muestra | |
|---|---|
CommandRunner.ExitCode |
|
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Devuelve el Throwable de la última invocación que se ejecutó.
Devuelve null si no hay ningún objeto Throwable disponible.
| Muestra | |
|---|---|
Throwable |
|
getReadyCommandCount
public int getReadyCommandCount ()
Devuelve la cantidad de comandos en estado listo en la cola.
| Muestra | |
|---|---|
int |
|
getShutdownTimeout
public long getShutdownTimeout ()
| Muestra | |
|---|---|
long |
|
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Devuelve verdadero si el dispositivo se usa en un subproceso de invocación activo.
| Parámetros | |
|---|---|
device |
ITestDevice |
| Muestra | |
|---|---|
boolean |
|
isShuttingDown
public boolean isShuttingDown ()
| Muestra | |
|---|---|
boolean |
|
notifyFileChanged
public void notifyFileChanged (File cmdFile,
extraArgs) | Parámetros | |
|---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Quita todos los comandos del programador
run
public void run ()
Es el bloque de ejecución principal de este subproceso.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Configura el cliente para que informe los datos del arnés
| 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 ()
Devuelve verdadero si necesitamos detener el programador en caso de errores de comando.
| Muestra | |
|---|---|
boolean |
|
apagado
public void shutdown (boolean notifyStop)
Intenta apagar de forma correcta el programador de comandos.
| Parámetros | |
|---|---|
notifyStop |
boolean: Si es verdadero, notifica las invocaciones del cierre de TF. |
shutdownHard
public void shutdownHard (boolean killAdb)
Intenta apagar de forma forzosa el programador de comandos.
Es similar a shutdown(), pero también puede cerrar la conexión de adb de forma opcional, en un intento de "inspirar" las invocaciones en curso para que se completen más rápido.
| Parámetros | |
|---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Intenta apagar de forma forzosa el programador de comandos. Es igual que shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Es similar a shutdown(), pero esperará a que se ejecuten todos los comandos antes de salir.
Ten en cuenta que, si algún comando está en modo de bucle, el programador nunca saldrá.
start
public void start ()
Inicia el programador, lo que incluye la configuración del registro, la inicialización de DeviceManager, etcétera.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Detiene una invocación en ejecución.
| Parámetros | |
|---|---|
invocation |
ITestInvocation |
| Muestra | |
|---|---|
boolean |
Es verdadero si se detuvo la invocación; de lo contrario, es falso. |
stopInvocation
public boolean stopInvocation (int invocationId,
String cause)Detiene una invocación en ejecución especificando su ID.
| Parámetros | |
|---|---|
invocationId |
int: Es el ID de seguimiento de la invocación. |
cause |
String: Es la causa por la que se detuvo la invocación. |
| Muestra | |
|---|---|
boolean |
Es verdadero si se detuvo la invocación; de lo contrario, es falso. |
stopScheduling
public void stopScheduling ()
Detiene la programación y la aceptación de pruebas nuevas, pero no detiene Tradefed. Esto tiene como objetivo habilitar un cierre de dos pasos en el que primero se agotan todas las pruebas en ejecución y, luego, se finaliza el proceso de Tradefed.
Métodos protegidos
cleanUp
protected void cleanUp ()
Cierra los registros y realiza cualquier otra limpieza necesaria antes de salir.
Se expone para que las pruebas de unidades puedan simular.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
| Parámetros | |
|---|---|
args |
String |
| Muestra | |
|---|---|
IConfiguration |
|
| Arroja | |
|---|---|
ConfigurationException |
|
createInvocationContext
protected IInvocationContext createInvocationContext ()
| Muestra | |
|---|---|
IInvocationContext |
|
dryRunCommandReporting
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Determina si un comando determinado es una ejecución de prueba. Si el comando es una ejecución de prueba, valídalo. Si hay algún problema con la configuración, se arrojará una ConfigurationException.
| Parámetros | |
|---|---|
handler |
ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler) para informar eventos de validación de ejecución de prueba. |
config |
IConfiguration |
| Muestra | |
|---|---|
void |
Es verdadero si el comando es una prueba de validación y falso en caso contrario. |
| Arroja | |
|---|---|
|
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 |
| Muestra | |
|---|---|
long |
|
| Arroja | |
|---|---|
ConfigurationException |
|
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Método de fábrica para obtener una referencia a IConfigurationFactory
| Muestra | |
|---|---|
IConfigurationFactory |
El IConfigurationFactory que se debe usar |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
| Muestra | |
|---|---|
DeviceManagementGrpcServer |
|
getDeviceManager
protected IDeviceManager getDeviceManager ()
Método de fábrica para obtener una referencia a IDeviceManager
| Muestra | |
|---|---|
IDeviceManager |
El IDeviceManager que se debe usar |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Recupera un IKeyStoreClient con el IKeyStoreFactory declarado en IGlobalConfiguration o nulo si no se definió ninguno.
| Muestra | |
|---|---|
IKeyStoreClient |
IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
| Muestra | |
|---|---|
TestInvocationManagementServer |
|
initLogging
protected void initLogging ()
Inicializa el registro de ddmlib.
Se expone para que las pruebas de unidades puedan simular.
isShutdown
protected boolean isShutdown ()
| Muestra | |
|---|---|
boolean |
|
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
| Parámetros | |
|---|---|
manager |
IDeviceManager |