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 CommandScheduler .

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 ISandbox que utilizará la invocación para ejecutarse.

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 Option especificados para todos los comandos actuales.

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 IInvocationContext ya existente.

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 Throwable de la última invocación que se ejecutó.

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 shutdown() , pero esperará a que se ejecuten todos los comandos antes de salir.

void start ()

Inicia el programador, incluida la configuración del registro, el inicio de DeviceManager , etc.

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.

Métodos protegidos

void cleanUp ()

Cierra los registros y realiza cualquier otra limpieza necesaria antes de salir.

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

Determina si un comando determinado es un ensayo.

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

Método de fábrica para obtener una referencia a IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

Método de fábrica para obtener una referencia al IDeviceManager

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

Obtiene un IKeyStoreClient utilizando IKeyStoreFactory declarado en IGlobalConfiguration o nulo si no hay ninguno definido.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Inicializa el registro ddmlib.

boolean isShutdown ()
void processReadyCommands ( IDeviceManager manager)

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 : un 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 static  createReleaseMap (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 : el 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.

Tenga en cuenta que si algún comando está en modo de bucle, el programador nunca saldrá.

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

getHostOptions

protected IHostOptions getHostOptions ()

Devoluciones
IHostOptions

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