Harmonogram poleceń
public class CommandScheduler
extends Object
implements ICommandScheduler
Obiekt Java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Harmonogram uruchamiania poleceń TradeFederation na wszystkich dostępnych urządzeniach.
Spróbuje nadać priorytet uruchamianym poleceniom na podstawie całkowitego czasu ich wykonania. np. polecenia wykonywane rzadko lub szybko będą miały wyższy priorytet niż polecenia wykonywane długo.
Działa wiecznie w tle, aż do wyłączenia.
Streszczenie
Konstruktorzy publiczni | |
---|---|
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 rozpoczęcie działania programu planującego, łącznie z oczekiwaniem na zakończenie przekazania 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 było je odpowiednio zwolnić. |
ISandbox | createSandbox () Utwórz |
void | displayCommandQueue (PrintWriter printWriter) Wyprowadź szczegółowe informacje debugowania dotyczące stanu kolejki wykonywania poleceń. |
void | displayCommandsInfo (PrintWriter printWriter, String regex) Wyprowadź listę bieżących poleceń. |
void | displayInvocationsInfo (PrintWriter printWriter) Wyświetla listę bieżących wywołań. |
void | dumpCommandsXml (PrintWriter printWriter, String regex) Zrzuć rozwinięty 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 () Pobierz odpowiedni CommandFileWatcher dla tego harmonogramu |
int | getExecutingCommandCount () Zwraca liczbę poleceń w stanie wykonywania. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Zwróć informacje o wywołaniu, podając identyfikator wywołania. |
CommandRunner.ExitCode | getLastInvocationExitCode () Zwróć kod błędu ostatniego uruchomionego wywołania. |
Throwable | getLastInvocationThrowable () Zwróć obiekt |
int | getReadyCommandCount () Zwraca liczbę poleceń znajdujących się w kolejce w stanie gotowości. |
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 tak, 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) Spróbuj bezpiecznie zamknąć harmonogram poleceń. |
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 harmonogram, w tym konfigurację rejestrowania, inicjowanie |
boolean | stopInvocation ( ITestInvocation invocation) Zatrzymaj działające wywołanie. |
boolean | stopInvocation (int invocationId, String cause) Zatrzymaj uruchomione wywołanie, podając jego identyfikator. |
void | stopScheduling () Przestaje planować i akceptować nowe testy, ale nie zatrzymuje Tradefed. |
Konstruktorzy publiczni
Harmonogram poleceń
public CommandScheduler ()
Tworzy CommandScheduler
.
Uwaga: start musi zostać wywołany przed użyciem.
Metody publiczne
dodajpolecenie
public Pair<Boolean, Integer> addCommand (String[] args)
Dodaje polecenie do harmonogramu.
Polecenie jest zasadniczo instancją konfiguracji do uruchomienia i skojarzonymi z nią argumentami.
Jeśli podano argument „--help”, tekst pomocy dla konfiguracji zostanie wypisany na standardowe wyjście. W przeciwnym razie konfiguracja zostanie dodana do kolejki do uruchomienia.
Parametry | |
---|---|
args | String : argumenty konfiguracyjne. |
Zwroty | |
---|---|
Pair <Boolean, Integer> | Para wartości, pierwsza wartość jest wartością logiczną 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. |
Rzuca | |
---|---|
ConfigurationException |
dodaj plik poleceń
public void addCommandFile (String cmdFilePath,extraArgs)
Dodaje wszystkie polecenia z podanego pliku do harmonogramu
Parametry | |
---|---|
cmdFilePath | String : ścieżka systemu plików pliku poleceń |
extraArgs | ERROR(/List) argumentów String do dołączenia do każdego polecenia analizowanego z pliku. Może być pusta, ale nie powinna mieć wartości null. |
Rzuca | |
---|---|
ConfigurationException |
czekać na
public void await ()
Czeka na rozpoczęcie działania programu planującego, łącznie z oczekiwaniem na zakończenie przekazania ze starego TF, jeśli ma to zastosowanie.
sprawdź Delegację
public static TradefedDelegator checkDelegation (String[] args)
Utwórz delegatora na podstawie wiersza poleceń, aby sprawdzić, czy musimy delegować uruchomienie.
Parametry | |
---|---|
args | String |
Zwroty | |
---|---|
TradefedDelegator |
Rzuca | |
---|---|
| 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 było je 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 uruchomienia.
Zwroty | |
---|---|
ISandbox |
wyświetl kolejkę poleceń
public void displayCommandQueue (PrintWriter printWriter)
Wyprowadź szczegółowe informacje debugowania dotyczące stanu kolejki wykonywania poleceń.
wyświetl informacje o poleceniach
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Wyprowadź listę bieżących poleceń.
Parametry | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) do wyprowadzania. |
regex | String : wyrażenie regularne, do którego należy dopasować polecenia, aby zostały wydrukowane. Jeśli ma wartość null, wówczas zostaną wydrukowane wszystkie polecenia. |
wyświetl informacje o wywołaniach
public void displayInvocationsInfo (PrintWriter printWriter)
Wyświetla listę bieżących wywołań.
Parametry | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) do wyprowadzania. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Zrzuć rozwinięty 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 być wysyłany stan. |
regex | String : wyrażenie regularne, do którego należy dopasować polecenia, aby plik xml został zrzucony. Jeśli ma wartość null, wszystkie polecenia zostaną zrzucone. |
polecenie exec
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. |
Rzuca | |
---|---|
ConfigurationException |
polecenie exec
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 |
Rzuca | |
---|---|
ConfigurationException | |
NoDeviceException |
polecenie exec
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. |
Rzuca | |
---|---|
ConfigurationException | |
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Pobierz 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 |
pobierzInfo o Inwokacji
public String getInvocationInfo (int invocationId)
Zwróć informacje o wywołaniu, podają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óć obiekt Throwable
z ostatniego uruchomionego wywołania. Zwróć null, jeśli nie jest dostępny żaden obiekt do rzucania.
Zwroty | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
Zwraca liczbę poleceń znajdujących się w kolejce w stanie gotowości.
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 |
jestZamykanie
public boolean isShuttingDown ()
Zwroty | |
---|---|
boolean |
powiadomić o zmianie pliku
public void notifyFileChanged (File cmdFile,extraArgs)
Parametry | |
---|---|
cmdFile | File |
extraArgs |
usuńWszystkiepolecenia
public void removeAllCommands ()
Usuń wszystkie polecenia z harmonogramu
uruchomić
public void run ()
Główny blok wykonawczy tego wątku.
ustawClearcutClient
public void setClearcutClient (ClearcutClient client)
Ustaw klienta tak, aby raportował dane wiązki przewodów
Parametry | |
---|---|
client | ClearcutClient |
powinienShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Zwróć wartość true, jeśli musimy zamknąć program planujący w przypadku błędów polecenia
Zwroty | |
---|---|
boolean |
zamknięcie
public void shutdown (boolean notifyStop)
Spróbuj bezpiecznie zamknąć harmonogram poleceń.
Parametry | |
---|---|
notifyStop | boolean : jeśli true, powiadamia o wywołaniu zamknięcia TF. |
zamknięcieTwarde
public void shutdownHard (boolean killAdb)
Spróbuj wymusić zamknięcie harmonogramu poleceń.
Podobny do shutdown()
, ale opcjonalnie również zakończy połączenie adb, próbując „zainspirować” trwające wywołania do szybszego zakończenia.
Parametry | |
---|---|
killAdb | boolean |
zamknięcieTwarde
public void shutdownHard ()
Spróbuj wymusić zamknięcie harmonogramu poleceń. To samo co zamknięcieHard(true).
zamknięcieOnEmpty
public void shutdownOnEmpty ()
Podobny do shutdown()
, ale zamiast tego czeka na wykonanie wszystkich poleceń przed wyjściem.
początek
public void start ()
Uruchamia harmonogram, w tym konfigurację rejestrowania, inicjowanie DeviceManager
itp
zatrzymaj Inwokację
public boolean stopInvocation (ITestInvocation invocation)
Zatrzymaj działające wywołanie.
Parametry | |
---|---|
invocation | ITestInvocation |
Zwroty | |
---|---|
boolean | true, jeśli wywołanie zostało zatrzymane, false w przeciwnym razie |
zatrzymaj Inwokację
public boolean stopInvocation (int invocationId, String cause)
Zatrzymaj uruchomione wywołanie, podają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, false w przeciwnym razie |
zatrzymajPlanowanie
public void stopScheduling ()
Przestaje planować i akceptować nowe testy, ale nie zatrzymuje Tradefed. Ma to na celu umożliwienie dwuetapowego zamknięcia, podczas którego najpierw wyczerpujemy wszystkie uruchomione testy, a następnie kończymy proces Tradefed.
Metody chronione
posprzątać
protected void cleanUp ()
Zamyka dzienniki i wykonuje inne niezbędne czynności porządkowe przed zakończeniem.
Ujawnione, aby testy jednostkowe mogły kpić.
utwórz konfigurację
protected IConfiguration createConfiguration (String[] args)
Parametry | |
---|---|
args | String |
Zwroty | |
---|---|
IConfiguration |
Rzuca | |
---|---|
ConfigurationException |
utwórzKontekstInwokacji
protected IInvocationContext createInvocationContext ()
Zwroty | |
---|---|
IInvocationContext |
Raportowanie polecenia dryRunCommand
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Określa, czy dane polecenie jest próbne. Jeśli polecenie jest próbne, sprawdź jego poprawność. Jeśli wystąpią jakiekolwiek problemy z konfiguracją, zostanie zgłoszony wyjątek ConfigurationException.
Parametry | |
---|---|
handler | ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) do raportowania zdarzeń w celu sprawdzenia poprawności próbnej. |
config | IConfiguration |
Zwroty | |
---|---|
void | true, jeśli polecenie jest próbne, false w przeciwnym razie. |
Rzuca | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
polecenie exec
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parametry | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
Zwroty | |
---|---|
long |
Rzuca | |
---|---|
ConfigurationException |
pobierzConfigFactory
protected IConfigurationFactory getConfigFactory ()
Metoda fabryczna służąca do uzyskiwania odniesienia do IConfigurationFactory
Zwroty | |
---|---|
IConfigurationFactory | IConfigurationFactory do użycia |
pobierz serwer zarządzania urządzeniami
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Zwroty | |
---|---|
DeviceManagementGrpcServer |
pobierz Menedżera urządzeń
protected IDeviceManager getDeviceManager ()
Metoda fabryczna uzyskiwania odniesienia do IDeviceManager
Zwroty | |
---|---|
IDeviceManager | IDeviceManager którego chcesz użyć |
pobierz serwer funkcji
protected TradefedFeatureServer getFeatureServer ()
Zwroty | |
---|---|
TradefedFeatureServer |
pobierzKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Pobiera IKeyStoreClient
przy użyciu IKeyStoreFactory
zadeklarowanej w IGlobalConfiguration
lub null, jeśli żadna nie jest zdefiniowana.
Zwroty | |
---|---|
IKeyStoreClient | Klient IKeyStore |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Zwroty | |
---|---|
TestInvocationManagementServer |
initLogowanie
protected void initLogging ()
Inicjuje dziennik ddmlib.
Ujawnione, aby testy jednostkowe mogły kpić.
jestWyłączenie
protected boolean isShutdown ()
Zwroty | |
---|---|
boolean |
ProcessReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parametry | |
---|---|
manager | IDeviceManager |