Programador de comandos
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.Objeto | |
↳ | com.android.tradefed.command.CommandScheduler |
Un programador para ejecutar comandos de TradeFederation en todos los dispositivos disponibles.
Intentará priorizar los comandos para ejecutar en función de un recuento total de su tiempo de ejecución. por ejemplo, los comandos de ejecución rápida o poco frecuente tendrán prioridad sobre los comandos de ejecución prolongada.
Se ejecuta siempre 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, extraArgs) addCommandFile (String cmdFilePath, extraArgs) Agrega todos los comandos del archivo dado al programador |
void | await () Espera a que el programador comience a ejecutarse, incluida la espera a que se complete la transferencia del TF anterior, si corresponde. |
static TradefedDelegator | checkDelegation (String[] args) Cree un delegador basado en la línea de comando para ver si necesitamos delegar la ejecución. |
static | createReleaseMap ( IInvocationContext context, Throwable e) Crear un mapa del estado de los dispositivos para que puedan ser liberados adecuadamente. |
ISandbox | createSandbox () Cree 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 comandos actuales. |
void | displayInvocationsInfo (PrintWriter printWriter) Muestra una lista de invocaciones actuales. |
void | dumpCommandsXml (PrintWriter printWriter, String regex) Vuelque el archivo xml expandido para el comando con todos los valores |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) Ejecute comandos directamente en 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 utilizando un |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args) Asigna directamente un dispositivo y ejecuta un comando sin agregarlo a la cola de comandos. |
CommandFileWatcher | getCommandFileWatcher () Obtenga el CommandFileWatcher apropiado para este programador |
int | getExecutingCommandCount () Devuelve el número de comandos en estado de ejecución. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Devuelve la información sobre una invocación bu especificando la identificación de la invocación. |
CommandRunner.ExitCode | getLastInvocationExitCode () Devuelve el código de error de la última invocación que se ejecutó. |
Throwable | getLastInvocationThrowable () Devuelve el |
int | getReadyCommandCount () Devuelve el número de comandos en estado listo en la cola. |
long | getShutdownTimeout () |
boolean | isDeviceInInvocationThread ( ITestDevice device) Devuelve verdadero si el dispositivo es utilizado por un subproceso de invocación activo. |
boolean | isShuttingDown () |
void | notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () Eliminar todos los comandos del programador |
void | run () El bloque de ejecución principal de este hilo. |
void | setClearcutClient (ClearcutClient client) Configurar el cliente para que informe los datos del arnés |
boolean | shouldShutdownOnCmdfileError () Devuelve verdadero si necesitamos apagar el programador debido a un error de comando |
void | shutdown (boolean notifyStop) Intente cerrar correctamente el programador de comandos. |
void | shutdownHard (boolean killAdb) Intente cerrar por la fuerza el programador de comandos. |
void | shutdownHard () Intente cerrar por la fuerza el programador de comandos. |
void | shutdownOnEmpty () Similar a |
void | start () Inicia el programador, incluida la configuración del registro, el inicio de |
boolean | stopInvocation ( ITestInvocation invocation) Detener una invocación en ejecución. |
boolean | stopInvocation (int invocationId, String cause) Detenga una invocación en ejecución especificando su identificación. |
void | stopScheduling () Deja de programar y aceptar nuevas pruebas, pero no detiene Tradefed. |
Constructores públicos
Programador de comandos
public CommandScheduler ()
Crea un CommandScheduler
.
Nota: se debe llamar al inicio antes de su uso.
Métodos públicos
agregarcomando
public Pair<Boolean, Integer> addCommand (String[] args)
Agrega un comando al programador.
Un comando es esencialmente una instancia de una configuración a ejecutar y sus argumentos asociados.
Si se especifica el argumento "--help", el texto de ayuda para la configuración se enviará a la salida estándar. De lo contrario, la configuración se agregará a la cola para ejecutar.
Parámetros | |
---|---|
args | String : los argumentos de configuración. |
Devoluciones | |
---|---|
Pair <Boolean, Integer> | Un par de valores, el primer valor es un valor booleano true si el comando se agregó correctamente. El segundo valor es la identificación del rastreador de comandos conocido (valor no negativo). Si el comando se agregó correctamente, devuelve 0 cuando se agrega el comando para todos los dispositivos; de lo contrario, -1. |
Lanza | |
---|---|
ConfigurationException |
agregar archivo de comando
public void addCommandFile (String cmdFilePath,extraArgs)
Agrega todos los comandos del archivo dado al programador
Parámetros | |
---|---|
cmdFilePath | String : la ruta del sistema de archivos del archivo de comando |
extraArgs | ERROR(/List) de argumentos String para agregar a cada comando analizado desde el archivo. Puede estar vacío pero no debe ser nulo. |
Lanza | |
---|---|
ConfigurationException |
esperar
public void await ()
Espera a que el programador comience a ejecutarse, incluida la espera a que se complete la transferencia del TF anterior, si corresponde.
checkDelegación
public static TradefedDelegator checkDelegation (String[] args)
Cree un delegador basado en la línea de comando para ver si necesitamos delegar la ejecución.
Parámetros | |
---|---|
args | String |
Devoluciones | |
---|---|
TradefedDelegator |
Lanza | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
crearReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Crear un mapa del estado de los dispositivos para que puedan ser liberados adecuadamente.
Parámetros | |
---|---|
context | IInvocationContext |
e | Throwable |
Devoluciones | |
---|---|
crearSandbox
public ISandbox createSandbox ()
Cree un ISandbox
que utilizará la invocación para ejecutarse.
Devoluciones | |
---|---|
ISandbox |
mostrarCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Genera información de depuración detallada sobre el estado de la cola de ejecución de comandos.
mostrarComandosInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Genera una lista de comandos actuales.
Parámetros | |
---|---|
printWriter | PrintWriter : el ERROR(/PrintWriter) al que enviar. |
regex | String : la expresión regular con la que se deben hacer coincidir los comandos para poder imprimirlos. Si es nulo, se imprimirán todos los comandos. |
mostrarInvocacionesInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Muestra una lista de invocaciones actuales.
Parámetros | |
---|---|
printWriter | PrintWriter : el ERROR(/PrintWriter) al que enviar. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Vuelque el archivo xml expandido para el comando con todos los valores Option
especificados para todos los comandos actuales.
Parámetros | |
---|---|
printWriter | PrintWriter : el ERROR(/PrintWriter) al que enviar el estado. |
regex | String : la expresión regular con la que se deben hacer coincidir los comandos para que se volque el archivo xml. Si es nulo, se volcarán todos los comandos. |
comando ejecutivo
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Ejecute comandos directamente en dispositivos ya asignados.
Parámetros | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : el ICommandScheduler.IScheduledInvocationListener que debe ser informado |
reservedDevices | ERROR(/List ) ERROR(/List ) usar |
args | String : los argumentos del comando. |
Devoluciones | |
---|---|
long | El ID de invocación del comando programado. |
Lanza | |
---|---|
ConfigurationException |
comando ejecutivo
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 utilizando un IInvocationContext
ya existente.
Parámetros | |
---|---|
context | IInvocationContext : un IInvocationContext existente. |
listener | ICommandScheduler.IScheduledInvocationListener : el ICommandScheduler.IScheduledInvocationListener que debe ser informado |
args | String : los argumentos del comando. |
Devoluciones | |
---|---|
long |
Lanza | |
---|---|
ConfigurationException | |
NoDeviceException |
comando ejecutivo
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Asigna directamente un dispositivo y ejecuta un comando sin agregarlo a la cola de comandos.
Parámetros | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : el ICommandScheduler.IScheduledInvocationListener que debe ser informado |
args | String : los argumentos del comando. |
Devoluciones | |
---|---|
long | El ID de invocación del comando programado. |
Lanza | |
---|---|
ConfigurationException | |
NoDeviceException |
obtenerCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Obtenga el CommandFileWatcher apropiado para este programador
Devoluciones | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Devuelve el número de comandos en estado de ejecución.
Devoluciones | |
---|---|
int |
getHostState
public CommandScheduler.HostState getHostState ()
Devoluciones | |
---|---|
CommandScheduler.HostState |
obtener información de invocación
public String getInvocationInfo (int invocationId)
Devuelve la información sobre una invocación bu especificando la identificación de la invocación.
Parámetros | |
---|---|
invocationId | int : la identificación de seguimiento de la invocación. |
Devoluciones | |
---|---|
String | Una String que contiene información sobre la invocación. |
obtenerÚltimoCódigo de Salida de Invocación
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 ha ejecutado ninguna invocación.
Devoluciones | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Devuelve el Throwable
de la última invocación que se ejecutó. Devuelve nulo, si no hay ningún elemento arrojable disponible.
Devoluciones | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Devuelve el número de comandos en estado listo en la cola.
Devoluciones | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Devoluciones | |
---|---|
long |
esDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Devuelve verdadero si el dispositivo es utilizado por un subproceso de invocación activo.
Parámetros | |
---|---|
device | ITestDevice |
Devoluciones | |
---|---|
boolean |
se está cerrando
public boolean isShuttingDown ()
Devoluciones | |
---|---|
boolean |
notificar archivo cambiado
public void notifyFileChanged (File cmdFile,extraArgs)
Parámetros | |
---|---|
cmdFile | File |
extraArgs |
eliminar todos los comandos
public void removeAllCommands ()
Eliminar todos los comandos del programador
correr
public void run ()
El bloque de ejecución principal de este hilo.
setClearcutCliente
public void setClearcutClient (ClearcutClient client)
Configurar el cliente para que informe los datos del arnés
Parámetros | |
---|---|
client | ClearcutClient |
deberíaShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Devuelve verdadero si necesitamos apagar el programador debido a un error de comando
Devoluciones | |
---|---|
boolean |
cerrar
public void shutdown (boolean notifyStop)
Intente cerrar correctamente el programador de comandos.
Parámetros | |
---|---|
notifyStop | boolean : si es verdadero, notifica las invocaciones de cierre de TF. |
apagadoDifícil
public void shutdownHard (boolean killAdb)
Intente cerrar por la fuerza el programador de comandos.
Similar a shutdown()
, pero opcionalmente también cancelará la conexión adb, en un intento de "inspirar" las invocaciones en progreso para que se completen más rápido.
Parámetros | |
---|---|
killAdb | boolean |
apagadoDifícil
public void shutdownHard ()
Intente cerrar por la fuerza el programador de comandos. Igual que ShutdownHard (verdadero).
apagadoOnEmpty
public void shutdownOnEmpty ()
Similar a shutdown()
, pero esperará a que se ejecuten todos los comandos antes de salir.
comenzar
public void start ()
Inicia el programador, incluida la configuración del registro, el inicio de DeviceManager
, etc.
detenerInvocación
public boolean stopInvocation (ITestInvocation invocation)
Detener una invocación en ejecución.
Parámetros | |
---|---|
invocation | ITestInvocation |
Devoluciones | |
---|---|
boolean | Verdadero si la invocación se detuvo, falso en caso contrario. |
detenerInvocación
public boolean stopInvocation (int invocationId, String cause)
Detenga una invocación en ejecución especificando su identificación.
Parámetros | |
---|---|
invocationId | int : la identificación de seguimiento de la invocación. |
cause | String : la causa por la que se detuvo la invocación. |
Devoluciones | |
---|---|
boolean | Verdadero si la invocación se detuvo, falso en caso contrario. |
detener la programación
public void stopScheduling ()
Deja de programar y aceptar nuevas pruebas, pero no detiene Tradefed. Esto está destinado a permitir un cierre de dos pasos donde primero drenamos todas las pruebas en ejecución y luego finalizamos el proceso Tradefed.
Métodos protegidos
limpiar
protected void cleanUp ()
Cierra los registros y realiza cualquier otra limpieza necesaria antes de salir.
Expuesto para que las pruebas unitarias puedan burlarse.
crear configuración
protected IConfiguration createConfiguration (String[] args)
Parámetros | |
---|---|
args | String |
Devoluciones | |
---|---|
IConfiguration |
Lanza | |
---|---|
ConfigurationException |
crear contexto de invocación
protected IInvocationContext createInvocationContext ()
Devoluciones | |
---|---|
IInvocationContext |
dryRunCommandReporting
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Determina si un comando determinado es un ensayo. Si el comando es un ensayo, valídelo. Si hay algún problema de configuración, se generará una excepción de configuración.
Parámetros | |
---|---|
handler | ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) para informar eventos para la validación de prueba. |
config | IConfiguration |
Devoluciones | |
---|---|
void | Es verdadero si el comando es un ensayo; en caso contrario, es falso. |
Lanza | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
comando ejecutivo
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parámetros | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
Devoluciones | |
---|---|
long |
Lanza | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Método de fábrica para obtener una referencia a IConfigurationFactory
Devoluciones | |
---|---|
IConfigurationFactory | el IConfigurationFactory a utilizar |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Devoluciones | |
---|---|
DeviceManagementGrpcServer |
obtenerAdministrador de dispositivos
protected IDeviceManager getDeviceManager ()
Método de fábrica para obtener una referencia al IDeviceManager
Devoluciones | |
---|---|
IDeviceManager | el IDeviceManager a utilizar |
obtener servidor de funciones
protected TradefedFeatureServer getFeatureServer ()
Devoluciones | |
---|---|
TradefedFeatureServer |
getKeyStoreCliente
protected IKeyStoreClient getKeyStoreClient ()
Obtiene un IKeyStoreClient
utilizando IKeyStoreFactory
declarado en IGlobalConfiguration
o nulo si no hay ninguno definido.
Devoluciones | |
---|---|
IKeyStoreClient | Cliente IKeyStore |
getTestInvocationManagementServidor
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Devoluciones | |
---|---|
TestInvocationManagementServer |
inicio de sesión
protected void initLogging ()
Inicializa el registro ddmlib.
Expuesto para que las pruebas unitarias puedan burlarse.
está apagado
protected boolean isShutdown ()
Devoluciones | |
---|---|
boolean |
procesoReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parámetros | |
---|---|
manager | IDeviceManager |