CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
ꛭ | com.android.tradefed.command.CommandScheduler |
Uno scheduler per eseguire i comandi TradeFederation su tutti i dispositivi disponibili.
Cercherà di dare la priorità ai comandi da eseguire in base a un conteggio totale del tempo di esecuzione. Ad esempio, i comandi con esecuzione frequente o rapida avranno la priorità sui comandi con esecuzione prolungata.
Viene eseguito in background fino all'arresto.
Riepilogo
Costruttori pubblici | |
---|---|
CommandScheduler()
Crea un |
Metodi pubblici | |
---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
Aggiunge un comando allo scheduler. |
void
|
addCommandFile(String cmdFilePath,
Aggiunge tutti i comandi del file specificato all'organizzatore |
void
|
await()
Attende l'avvio dell'esecuzione del programma, inclusa l'attesa del completamento del trasferimento dall'organizzazione TF precedente, se applicabile. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Crea un delegante basato sulla riga di comando per verificare se è necessario delegare l'esecuzione. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Crea una mappa dello stato dei dispositivi in modo che possano essere rilasciati in modo appropriato. |
ISandbox
|
createSandbox()
Crea un |
void
|
displayCommandQueue(PrintWriter printWriter)
Restituisce informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Stampa un elenco dei comandi correnti. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Visualizza un elenco delle chiamate correnti. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Esegui il dump del file XML espanso per il comando con tutti
|
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Esegui direttamente il comando sul dispositivo già allocato. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Esegui direttamente il comando sui dispositivi già allocati. |
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi utilizzando un |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi. |
CommandFileWatcher
|
getCommandFileWatcher()
Ottieni il CommandFileWatcher appropriato per questo scheduler |
int
|
getExecutingCommandCount()
Restituisce il numero di comandi in stato di esecuzione. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Restituisce le informazioni su un'invocazione specificando l'ID di chiamata. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Restituisce il codice di errore dell'ultima chiamata eseguita. |
Throwable
|
getLastInvocationThrowable()
Restituisce il valore |
int
|
getReadyCommandCount()
Restituisce il numero di comandi in stato di attesa nella coda. |
long
|
getShutdownTimeout()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
Restituisce true se il dispositivo è utilizzato da un thread di chiamata attivo. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Rimuovi tutti i comandi dal programmatore |
void
|
run()
Il blocco di esecuzione principale di questo thread. |
void
|
setClearcutClient(ClearcutClient client)
Impostare il client in modo che registri i dati del cablaggio |
boolean
|
shouldShutdownOnCmdfileError()
Restituisce true se è necessario arrestare il programmatore in caso di errori di comando |
void
|
shutdown(boolean notifyStop)
Prova ad arrestare in modo controllato lo scheduler dei comandi. |
void
|
shutdownHard(boolean killAdb)
Tenta di arrestare forzatamente il programmatore dei comandi. |
void
|
shutdownHard()
Tentativo di chiudere forzatamente lo scheduler dei comandi. |
void
|
shutdownOnEmpty()
È simile a |
void
|
start()
Avvia lo scheduler, inclusa la configurazione del logging, l'init di |
boolean
|
stopInvocation(ITestInvocation invocation)
Interrompi un'invocazione in esecuzione. |
boolean
|
stopInvocation(int invocationId, String cause)
Interrompi un'invocazione in esecuzione specificandone l'ID. |
void
|
stopScheduling()
Interrompe la pianificazione e l'accettazione di nuovi test, ma non interrompe Tradefed. |
Costruttori pubblici
CommandScheduler
public CommandScheduler ()
Crea un CommandScheduler
.
Nota: start deve essere chiamato prima dell'uso.
Metodi pubblici
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Aggiunge un comando allo scheduler.
Un comando è essenzialmente un'istanza di una configurazione da eseguire e i relativi argomenti associati.
Se viene specificato l'argomento "--help", il testo della guida per la configurazione verrà inviato a stdout. In caso contrario, la configurazione verrà aggiunta alla coda per l'esecuzione.
Parametri | |
---|---|
args |
String : gli argomenti della configurazione. |
Ritorni | |
---|---|
Pair<Boolean, Integer> |
Una coppia di valori, il primo è un valore booleano true se il comando è stato aggiunto
correttamente. Il secondo valore è l'ID tracker del comando noto(valore non negativo) se il
comando è stato aggiunto correttamente, restituisce 0 quando il comando viene aggiunto per tutti i dispositivi, altrimenti
-1. |
Lanci | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Aggiunge tutti i comandi di un determinato file allo scheduler
Parametri | |
---|---|
cmdFilePath |
String : il percorso del file system del file comand |
extraArgs |
: un ERROR(/List) di argomenti String da aggiungere a ogni comando analizzato
dal file. Il campo può essere vuoto, ma non può essere null. |
Lanci | |
---|---|
ConfigurationException |
attendere
public void await ()
Attende l'avvio dell'esecuzione del programma, inclusa l'attesa del completamento del trasferimento dall'organizzazione TF precedente, se applicabile.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Crea un delegante in base alla riga di comando per vedere se dobbiamo delegare l'esecuzione.
Parametri | |
---|---|
args |
String |
Ritorni | |
---|---|
TradefedDelegator |
Lanci | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Crea una mappa dello stato dei dispositivi in modo che possano essere rilasciati in modo appropriato.
Parametri | |
---|---|
context |
IInvocationContext |
e |
Throwable |
Ritorni | |
---|---|
|
createSandbox
public ISandbox createSandbox ()
Crea un ISandbox
che verrà utilizzato dall'esecuzione dell'invocazione.
Ritorni | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Mostra informazioni di debug dettagliate sullo stato della coda di esecuzione dei comandi.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Restituisce un elenco dei comandi correnti.
Parametri | |
---|---|
printWriter |
PrintWriter : il ERROR(/PrintWriter) a cui inviare l'output. |
regex |
String : l'espressione regolare a cui devono corrispondere i comandi per poter essere stampati. Se il valore è null, verranno stampati tutti i comandi. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Visualizza un elenco delle chiamate correnti.
Parametri | |
---|---|
printWriter |
PrintWriter : il ERROR(/PrintWriter) in cui eseguire l'output. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Esegui il dump del file XML espanso per il comando con tutti
Option
i valori specificati per tutti i comandi correnti.
Parametri | |
---|---|
printWriter |
PrintWriter : il ERROR(/PrintWriter) a cui stampare lo stato. |
regex |
String : l'espressione regolare a cui devono corrispondere i comandi per eseguire il dump del file XML. Se è null, verranno sottoposti a dump tutti i comandi. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Esegui direttamente il comando sul dispositivo già allocato.
Parametri | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : il ICommandScheduler.IScheduledInvocationListener da informare |
device |
ITestDevice : il ITestDevice da utilizzare |
args |
String : gli argomenti del comando |
Ritorni | |
---|---|
long |
L'ID di chiamata del comando pianificato. |
Lanci | |
---|---|
ConfigurationException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Esegui direttamente il comando sui dispositivi già allocati.
Parametri | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : il ICommandScheduler.IScheduledInvocationListener da informare |
reservedDevices |
: i ERROR(/List da utilizzare |
args |
String : gli argomenti del comando |
Ritorni | |
---|---|
long |
L'ID di chiamata del comando pianificato. |
Lanci | |
---|---|
ConfigurationException |
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi utilizzando un IInvocationContext
già esistente.
Parametri | |
---|---|
context |
IInvocationContext : un IInvocationContext esistente. |
listener |
ICommandScheduler.IScheduledInvocationListener : il ICommandScheduler.IScheduledInvocationListener da informare |
args |
String : gli argomenti del comando |
Ritorni | |
---|---|
long |
Lanci | |
---|---|
ConfigurationException |
|
NoDeviceException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Alloca direttamente un dispositivo ed esegue un comando senza aggiungerlo alla coda dei comandi.
Parametri | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : il ICommandScheduler.IScheduledInvocationListener da informare |
args |
String : gli argomenti del comando |
Ritorni | |
---|---|
long |
L'ID di chiamata del comando pianificato. |
Lanci | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Ottieni il CommandFileWatcher appropriato per questo scheduler
Ritorni | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Restituisce il numero di comandi in stato di esecuzione.
Ritorni | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Restituisce le informazioni su un'invocazione specificando l'ID di chiamata.
Parametri | |
---|---|
invocationId |
int : l'ID monitoraggio dell'invocazione. |
Ritorni | |
---|---|
String |
Un elemento String contenente informazioni sulla chiamata. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Restituisce il codice di errore dell'ultima chiamata eseguita. Restituisce 0 (nessun errore) se non è ancora stata eseguita alcuna chiamata.
Ritorni | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Restituisce il valore Throwable
dell'ultima chiamata eseguita.
Restituisce null se non è disponibile alcun oggetto throwable.
Ritorni | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Restituisce il numero di comandi in stato di attesa nella coda.
Ritorni | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Ritorni | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Restituisce true se il dispositivo è utilizzato da un thread di chiamata attivo.
Parametri | |
---|---|
device |
ITestDevice |
Ritorni | |
---|---|
boolean |
isShuttingDown
public boolean isShuttingDown ()
Ritorni | |
---|---|
boolean |
notificaFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parametri | |
---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Rimuovi tutti i comandi dal programmatore
run
public void run ()
Il blocco di esecuzione principale di questo thread.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Impostare il client in modo che registri i dati del cablaggio
Parametri | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Restituisce true se è necessario arrestare il programmatore in caso di errori di comando
Ritorni | |
---|---|
boolean |
arresto
public void shutdown (boolean notifyStop)
Prova ad arrestare in modo controllato lo scheduler dei comandi.
Parametri | |
---|---|
notifyStop |
boolean : se true, vengono notificate le invocazioni dell'arresto di TF. |
chiusuraDifficile
public void shutdownHard (boolean killAdb)
Tenta di arrestare forzatamente il programmatore dei comandi.
Simile a shutdown()
, ma facoltativamente termina anche la connessione adb, nel tentativo di "incentivare" il completamento più rapido delle chiamate in corso.
Parametri | |
---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Tenta di arrestare forzatamente il programmatore dei comandi. Uguale a shutdownHard(true).
ArrestoOnVuoto
public void shutdownOnEmpty ()
Simile a shutdown()
, ma attenderà l'esecuzione di tutti i comandi prima di uscire.
Tieni presente che se alcuni comandi sono in modalità di loop, lo scheduler non uscirà mai.
partenza
public void start ()
Avvia lo scheduler, inclusa la configurazione del logging, l'init di DeviceManager
e così via
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Interrompi un'invocazione in esecuzione.
Parametri | |
---|---|
invocation |
ITestInvocation |
Ritorni | |
---|---|
boolean |
true se l'invocazione è stata interrotta, false in caso contrario |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Interrompi una chiamata in esecuzione specificando il relativo ID.
Parametri | |
---|---|
invocationId |
int : l'ID di monitoraggio della chiamata. |
cause |
String : la causa dell'interruzione dell'invocazione. |
Ritorni | |
---|---|
boolean |
true se l'invocazione è stata interrotta, false in caso contrario |
interrompi programmazione
public void stopScheduling ()
Interrompe la pianificazione e l'accettazione di nuovi test, ma non interrompe la transazione. Lo scopo è consentire un arresto in due fasi in cui prima vengono interrotti tutti i test in esecuzione e poi viene terminato il processo TradeFed.
Metodi protetti
pulizia
protected void cleanUp ()
Chiude i log ed esegue qualsiasi altra operazione di pulizia necessaria prima di uscire.
Esposto in modo da simulare i test delle unità.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parametri | |
---|---|
args |
String |
Ritorni | |
---|---|
IConfiguration |
Lanci | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Ritorni | |
---|---|
IInvocationContext |
dryRunCommandReporting
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Determina se un determinato comando è una simulazione. Se il comando è una simulazione, convalidalo. Se si verifica un problema di configurazione, verrà generata un'eccezione ConfigurationException.
Parametri | |
---|---|
handler |
ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) per segnalare gli eventi per la convalida del dry run. |
config |
IConfiguration |
Ritorni | |
---|---|
void |
true se il comando è una prova, false negli altri casi. |
Lanci | |
---|---|
|
com.android.tradefed.config.ConfigurationEccezione |
ConfigurationException |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parametri | |
---|---|
context |
IInvocationContext |
listener |
ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
|
args |
String |
Ritorni | |
---|---|
long |
Lanci | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Metodo di fabbrica per ottenere un riferimento a IConfigurationFactory
Ritorni | |
---|---|
IConfigurationFactory |
il IConfigurationFactory da utilizzare |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Ritorni | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metodo di fabbrica per ottenere un riferimento a IDeviceManager
Ritorni | |
---|---|
IDeviceManager |
il IDeviceManager da utilizzare |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Recupera un IKeyStoreClient
utilizzando il IKeyStoreFactory
dichiarato in IGlobalConfiguration
o null se non è definito nessuno.
Ritorni | |
---|---|
IKeyStoreClient |
IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Ritorni | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Inizializza il log ddmlib.
Esposto in modo che i test delle unità possano essere simulati.
isShutdown
protected boolean isShutdown ()
Ritorni | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parametri | |
---|---|
manager |
IDeviceManager |