Harmonogram poleceń
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.Obiekt | |
↳ | com.android.tradefed.command.CommandScheduler |
Harmonogram do uruchamiania poleceń TradeFederation na wszystkich dostępnych urządzeniach.
Podejmie próbę nadania priorytetu poleceniom do wykonania na podstawie całkowitego czasu ich wykonania. np. rzadkie lub szybko uruchamiane polecenia będą miały wyższy priorytet niż długo działające polecenia.
Działa wiecznie w tle, aż do wyłączenia.
Streszczenie
Konstruktory publiczne | |
---|---|
CommandScheduler () Tworzy |
Metody publiczne | |
---|---|
Pair <Boolean, Integer> | addCommand (String[] args) Dodaje polecenie do harmonogramu. |
void | addCommandFile (String cmdFilePath, extraArgs) addCommandFile (String cmdFilePath, extraArgs) Dodaje wszystkie polecenia z podanego pliku do harmonogramu |
void | await () Czeka na uruchomienie programu planującego, w tym oczekiwanie na zakończenie przekazywania ze starego TF, jeśli ma to zastosowanie. |
static TradefedDelegator | checkDelegation (String[] args) Utwórz delegatora na podstawie wiersza poleceń, aby sprawdzić, czy musimy delegować uruchomienie. |
static | createReleaseMap ( IInvocationContext context, Throwable e) Utwórz mapę stanu urządzeń, aby można je było odpowiednio zwolnić. |
ISandbox | createSandbox () Utwórz |
void | displayCommandQueue (PrintWriter printWriter) Wygeneruj szczegółowe informacje debugowania dotyczące stanu kolejki wykonywania poleceń. |
void | displayCommandsInfo (PrintWriter printWriter, String regex) Wygeneruj listę bieżących poleceń. |
void | displayInvocationsInfo (PrintWriter printWriter) Wyświetla listę bieżących wywołań. |
void | dumpCommandsXml (PrintWriter printWriter, String regex) Zrzuć rozszerzony plik xml dla polecenia ze wszystkimi wartościami |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) Bezpośrednio wykonaj polecenie na już przydzielonych urządzeniach. |
long | execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args) Bezpośrednio przydziela urządzenie i wykonuje polecenie bez dodawania go do kolejki poleceń przy użyciu już istniejącego |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args) Bezpośrednio przydziela urządzenie i wykonuje polecenie bez dodawania go do kolejki poleceń. |
CommandFileWatcher | getCommandFileWatcher () Uzyskaj odpowiedni CommandFileWatcher dla tego harmonogramu |
int | getExecutingCommandCount () Zwraca liczbę poleceń w stanie wykonywania. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Zwróć informacje na bu wywołania, określając identyfikator wywołania. |
CommandRunner.ExitCode | getLastInvocationExitCode () Zwróć kod błędu ostatniego uruchomionego wywołania. |
Throwable | getLastInvocationThrowable () Zwróć |
int | getReadyCommandCount () Zwraca liczbę poleceń w stanie gotowości w kolejce. |
long | getShutdownTimeout () |
boolean | isDeviceInInvocationThread ( ITestDevice device) Zwraca wartość true, jeśli urządzenie jest używane przez aktywny wątek wywołania. |
boolean | isShuttingDown () |
void | notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () Usuń wszystkie polecenia z harmonogramu |
void | run () Główny blok wykonawczy tego wątku. |
void | setClearcutClient (ClearcutClient client) Ustaw klienta, aby raportował dane wiązki przewodów |
boolean | shouldShutdownOnCmdfileError () Zwróć wartość true, jeśli musimy zamknąć program planujący w przypadku błędów polecenia |
void | shutdown (boolean notifyStop) Próba płynnego zamknięcia programu planującego polecenia. |
void | shutdownHard (boolean killAdb) Spróbuj wymusić zamknięcie harmonogramu poleceń. |
void | shutdownHard () Spróbuj wymusić zamknięcie harmonogramu poleceń. |
void | shutdownOnEmpty () Podobny do |
void | start () Uruchamia program planujący, w tym konfigurowanie rejestrowania, inicjowanie |
boolean | stopInvocation ( ITestInvocation invocation) Zatrzymaj uruchomioną inwokację. |
boolean | stopInvocation (int invocationId, String cause) Zatrzymaj uruchomione wywołanie, określając jego identyfikator. |
Konstruktory publiczne
Harmonogram poleceń
public CommandScheduler ()
Tworzy CommandScheduler
.
Uwaga: start musi zostać wywołany przed użyciem.
Metody publiczne
dodaj polecenie
public Pair<Boolean, Integer> addCommand (String[] args)
Dodaje polecenie do harmonogramu.
Polecenie to zasadniczo instancja konfiguracji do uruchomienia i związanych z nią argumentów.
Jeśli podano argument „--help”, tekst pomocy dla konfiguracji zostanie wysłany na standardowe wyjście. W przeciwnym razie konfiguracja zostanie dodana do kolejki do uruchomienia.
Parametry | |
---|---|
args | String : argumenty konfiguracji. |
Zwroty | |
---|---|
Pair <Boolean, Integer> | Para wartości, pierwsza wartość to logiczna true , jeśli polecenie zostało pomyślnie dodane. Druga wartość to znany identyfikator śledzenia poleceń (wartość nieujemna), jeśli polecenie zostało dodane pomyślnie, zwróć 0, gdy polecenie zostanie dodane dla wszystkich urządzeń, w przeciwnym razie -1. |
Rzuty | |
---|---|
ConfigurationException |
dodaj plik polecenia
public void addCommandFile (String cmdFilePath,extraArgs)
Dodaje wszystkie polecenia z podanego pliku do harmonogramu
Parametry | |
---|---|
cmdFilePath | String : ścieżka do systemu plików pliku poleceń |
extraArgs | ERROR(/List) argumentów String do dołączenia do każdego polecenia analizowanego z pliku. Może być pusty, ale nie powinien mieć wartości null. |
Rzuty | |
---|---|
ConfigurationException |
czekać na
public void await ()
Czeka na uruchomienie programu planującego, w tym oczekiwanie na zakończenie przekazywania ze starego TF, jeśli ma to zastosowanie.
sprawdź Delegacja
public static TradefedDelegator checkDelegation (String[] args)
Utwórz delegatora na podstawie wiersza poleceń, aby sprawdzić, czy musimy delegować uruchomienie.
Parametry | |
---|---|
args | String |
Zwroty | |
---|---|
TradefedDelegator |
Rzuty | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
utwórz mapę wydania
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Utwórz mapę stanu urządzeń, aby można je było odpowiednio zwolnić.
Parametry | |
---|---|
context | IInvocationContext |
e | Throwable |
Zwroty | |
---|---|
utwórz piaskownicę
public ISandbox createSandbox ()
Utwórz ISandbox
, którego wywołanie będzie używać do uruchamiania.
Zwroty | |
---|---|
ISandbox |
wyświetl kolejkę poleceń
public void displayCommandQueue (PrintWriter printWriter)
Wygeneruj szczegółowe informacje debugowania dotyczące stanu kolejki wykonywania poleceń.
wyświetl poleceniaInformacje
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Wygeneruj listę bieżących poleceń.
Parametry | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) do wyjścia. |
regex | String : wyrażenie regularne, do którego należy dopasować polecenia, aby zostały wydrukowane. Jeśli null, wydrukowane zostaną wszystkie polecenia. |
wyświetl informacje o inwokacjach
public void displayInvocationsInfo (PrintWriter printWriter)
Wyświetla listę bieżących wywołań.
Parametry | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) do wyjścia. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Zrzuć rozszerzony plik xml dla polecenia ze wszystkimi wartościami Option
określonymi dla wszystkich bieżących poleceń.
Parametry | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) do którego ma zostać wysłany status. |
regex | String : wyrażenie regularne, do którego należy dopasować polecenia, aby plik xml został zrzucony. Jeśli null, wszystkie polecenia zostaną zrzucone. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Bezpośrednio wykonaj polecenie na już przydzielonych urządzeniach.
Parametry | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , który ma zostać poinformowany |
reservedDevices | ERROR(/List ) ERROR(/List ) używać |
args | String : argumenty polecenia |
Zwroty | |
---|---|
long | Identyfikator wywołania zaplanowanego polecenia. |
Rzuty | |
---|---|
ConfigurationException |
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Bezpośrednio przydziela urządzenie i wykonuje polecenie bez dodawania go do kolejki poleceń przy użyciu już istniejącego IInvocationContext
.
Parametry | |
---|---|
context | IInvocationContext : istniejący IInvocationContext . |
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , który ma zostać poinformowany |
args | String : argumenty polecenia |
Zwroty | |
---|---|
long |
Rzuty | |
---|---|
ConfigurationException | |
NoDeviceException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Bezpośrednio przydziela urządzenie i wykonuje polecenie bez dodawania go do kolejki poleceń.
Parametry | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , który ma zostać poinformowany |
args | String : argumenty polecenia |
Zwroty | |
---|---|
long | Identyfikator wywołania zaplanowanego polecenia. |
Rzuty | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Uzyskaj odpowiedni CommandFileWatcher dla tego harmonogramu
Zwroty | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Zwraca liczbę poleceń w stanie wykonywania.
Zwroty | |
---|---|
int |
pobierz stan hosta
public CommandScheduler.HostState getHostState ()
Zwroty | |
---|---|
CommandScheduler.HostState |
pobierz informacje o wywołaniu
public String getInvocationInfo (int invocationId)
Zwróć informacje na bu wywołania, określając identyfikator wywołania.
Parametry | |
---|---|
invocationId | int : identyfikator śledzenia wywołania. |
Zwroty | |
---|---|
String | String zawierający informacje o wywołaniu. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Zwróć kod błędu ostatniego uruchomionego wywołania. Zwróć 0 (brak błędu), jeśli żadne wywołanie nie zostało jeszcze uruchomione.
Zwroty | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Zwróć Throwable
z ostatniego uruchomionego wywołania. Zwróć null, jeśli nie ma dostępnego przedmiotu do rzucania.
Zwroty | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Zwraca liczbę poleceń w stanie gotowości w kolejce.
Zwroty | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
Zwroty | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Zwraca wartość true, jeśli urządzenie jest używane przez aktywny wątek wywołania.
Parametry | |
---|---|
device | ITestDevice |
Zwroty | |
---|---|
boolean |
jestZamykany
public boolean isShuttingDown ()
Zwroty | |
---|---|
boolean |
powiadomićZmiana pliku
public void notifyFileChanged (File cmdFile,extraArgs)
Parametry | |
---|---|
cmdFile | File |
extraArgs |
usuń wszystkie polecenia
public void removeAllCommands ()
Usuń wszystkie polecenia z harmonogramu
uruchomić
public void run ()
Główny blok wykonawczy tego wątku.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Ustaw klienta, aby raportował dane wiązki przewodów
Parametry | |
---|---|
client | ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Zwróć true, jeśli musimy zamknąć program planujący w przypadku błędów polecenia
Zwroty | |
---|---|
boolean |
zamknięcie
public void shutdown (boolean notifyStop)
Próba płynnego zamknięcia programu planującego polecenia.
Parametry | |
---|---|
notifyStop | boolean : jeśli true, powiadamia wywołania o zamknięciu TF. |
zamknięcieTwarde
public void shutdownHard (boolean killAdb)
Spróbuj wymusić zamknięcie harmonogramu poleceń.
Podobny do shutdown()
, ale opcjonalnie zabije również połączenie adb, próbując „zainspirować” trwające wywołania do szybszego ukończenia.
Parametry | |
---|---|
killAdb | boolean |
zamknięcieTwarde
public void shutdownHard ()
Spróbuj wymusić zamknięcie harmonogramu poleceń. To samo co shutdownHard(true).
zamknięcie przy pustym
public void shutdownOnEmpty ()
Podobny do shutdown()
, ale zamiast tego czeka na wykonanie wszystkich poleceń przed wyjściem.
początek
public void start ()
Uruchamia program planujący, w tym konfigurowanie rejestrowania, inicjowanie DeviceManager
itp
stopInwokacja
public boolean stopInvocation (ITestInvocation invocation)
Zatrzymaj uruchomioną inwokację.
Parametry | |
---|---|
invocation | ITestInvocation |
Zwroty | |
---|---|
boolean | true, jeśli wywołanie zostało zatrzymane, w przeciwnym razie false |
stopInwokacja
public boolean stopInvocation (int invocationId, String cause)
Zatrzymaj uruchomione wywołanie, określając jego identyfikator.
Parametry | |
---|---|
invocationId | int : identyfikator śledzenia wywołania. |
cause | String : przyczyna zatrzymania wywołania. |
Zwroty | |
---|---|
boolean | true, jeśli wywołanie zostało zatrzymane, w przeciwnym razie false |
Metody chronione
posprzątać
protected void cleanUp ()
Zamyka dzienniki i wykonuje wszelkie inne niezbędne czynności porządkowe przed wyjściem.
Odsłonięte, aby testy jednostkowe mogły kpić.
utwórzKonfiguracja
protected IConfiguration createConfiguration (String[] args)
Parametry | |
---|---|
args | String |
Zwroty | |
---|---|
IConfiguration |
Rzuty | |
---|---|
ConfigurationException |
utwórz kontekst wywołania
protected IInvocationContext createInvocationContext ()
Zwroty | |
---|---|
IInvocationContext |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parametry | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
Zwroty | |
---|---|
long |
Rzuty | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Fabryczna metoda uzyskiwania odwołania do IConfigurationFactory
Zwroty | |
---|---|
IConfigurationFactory | IConfigurationFactory do użycia |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Zwroty | |
---|---|
DeviceManagementGrpcServer |
pobierz menedżera urządzeń
protected IDeviceManager getDeviceManager ()
Fabryczna metoda uzyskiwania odwołania do IDeviceManager
Zwroty | |
---|---|
IDeviceManager | IDeviceManager do użycia |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Pobiera IKeyStoreClient
przy użyciu IKeyStoreFactory
zadeklarowanej w IGlobalConfiguration
lub null, jeśli żadna nie jest zdefiniowana.
Zwroty | |
---|---|
IKeyStoreClient | IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Zwroty | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Inicjuje dziennik ddmlib.
Odsłonięte, aby testy jednostkowe mogły kpić.
jestWyłączenie
protected boolean isShutdown ()
Zwroty | |
---|---|
boolean |
ProcessReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parametry | |
---|---|
manager | IDeviceManager |