CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
Harmonogram wykonywania poleceń TradeFederation na wszystkich dostępnych urządzeniach.
Zostanie podjęta próba nadania priorytetu poleceniom na podstawie łącznej liczby aktywnych poleceń. Na przykład polecenia wykonywane rzadko lub szybko będą miały wyższy priorytet niż polecenia długotrwałe.
Działa w tle bez końca, aż do momentu wyłączenia.
Podsumowanie
Konstruktory publiczne | |
---|---|
CommandScheduler()
Tworzy |
Metody publiczne | |
---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
Dodaje polecenie do algorytmu szeregowania. |
void
|
addCommandFile(String cmdFilePath,
Dodaje do harmonogramu wszystkie polecenia z podanego pliku. |
void
|
await()
Czekam na uruchomienie algorytmu szeregowania, w tym na zakończenie przekazania ze starego pliku TF, jeśli to konieczne. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Utwórz delegującego na podstawie wiersza poleceń, aby sprawdzić, czy trzeba delegować wykonanie. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Utwórz mapę stanu urządzeń, aby można było je odpowiednio uwolnić. |
ISandbox
|
createSandbox()
Utwórz |
void
|
displayCommandQueue(PrintWriter printWriter)
Wyświetla szczegółowe informacje debugowania dotyczące stanu kolejki wykonania poleceń. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Wyświetl listę bieżących poleceń. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Wyświetla listę bieżących wywołań. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Wygeneruj rozszerzony plik XML polecenia ze wszystkimi wartościami |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Wykonaj polecenie bezpośrednio na przydzielonym już urządzeniu. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Wykonaj polecenie bezpośrednio na przydzielonych już urządzeniach. |
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Przydziela urządzenie bezpośrednio i wykonuje polecenie bez dodawania go do kolejki poleceń za pomocą już istniejącego |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Przypisuje urządzenie bezpośrednio i wykonuje polecenie bez dodawania go do kolejki poleceń. |
CommandFileWatcher
|
getCommandFileWatcher()
Pobierz odpowiednie narzędzie CommandFileWatcher dla tego algorytmu szeregowania |
int
|
getExecutingCommandCount()
Zwraca liczbę poleceń w stanie wykonywania. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Zwraca informacje o wywołaniu, podając jego identyfikator. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Zwraca kod błędu ostatniego uruchomionego wywołania. |
Throwable
|
getLastInvocationThrowable()
Zwraca |
int
|
getReadyCommandCount()
Zwraca liczbę poleceń w stanie gotowości w kolejce. |
long
|
getShutdownTimeout()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
Zwraca wartość „prawda”, jeśli urządzenie jest używane przez aktywny wątek wywołania. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Usuń wszystkie polecenia z harmonogramu |
void
|
run()
Główny blok kodu tego wątku. |
void
|
setClearcutClient(ClearcutClient client)
Ustawianie klienta na potrzeby raportowania danych uprzęża |
boolean
|
shouldShutdownOnCmdfileError()
Zwraca wartość Prawda, jeśli musimy wyłączyć harmonogramistę z powodu błędów poleceń. |
void
|
shutdown(boolean notifyStop)
Próba płynnego wyłączenia algorytmu planowania poleceń. |
void
|
shutdownHard(boolean killAdb)
Spróbuj wymusić wyłączenie algorytmu szeregowania poleceń. |
void
|
shutdownHard()
Spróbuj wymusić zamknięcie harmonogramu poleceń. |
void
|
shutdownOnEmpty()
Podobnie jak w przypadku polecenia |
void
|
start()
Uruchamia harmonogram, w tym konfigurację rejestrowania, inicjowanie |
boolean
|
stopInvocation(ITestInvocation invocation)
Zatrzymanie bieżącego wywołania. |
boolean
|
stopInvocation(int invocationId, String cause)
Zatrzymaj bieżące wywołanie, podając jego identyfikator. |
void
|
stopScheduling()
Zatrzymuje planowanie i akceptowanie nowych testów, ale nie zatrzymuje Tradefed. |
Konstruktory publiczne
CommandScheduler
public CommandScheduler ()
Tworzy CommandScheduler
.
Uwaga: przed użyciem należy wywołać metodę start.
Metody publiczne
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Dodaje polecenie do algorytmu szeregowania.
Polecenie to zasadniczo instancja uruchomionej konfiguracji i powiązane z nią argumenty.
Jeśli podano argument „--help”, tekst pomocy dla konfiguracji zostanie wyświetlony na wyjściu do standardowego urządzenia wyjściowego. W przeciwnym razie konfiguracja zostanie dodana do kolejki do uruchomienia.
Parametry | |
---|---|
args |
String : argumenty konfiguracji. |
Zwroty | |
---|---|
Pair<Boolean, Integer> |
Para wartości, z których pierwsza to wartość logiczna true , jeśli polecenie zostało dodane. Druga wartość to znany identyfikator narzędzia do śledzenia poleceń(wartość nieujemna), jeśli polecenie zostało dodane. Zwróć 0, gdy polecenie zostanie dodane dla wszystkich urządzeń. W przeciwnym razie -1. |
Rzuty | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Dodaje do harmonogramu wszystkie polecenia z danego pliku.
Parametry | |
---|---|
cmdFilePath |
String : ścieżka do pliku poleceń w systemie plików |
extraArgs |
: tablica ERROR(/List) argumentów String do dołączenia do każdego polecenia przeanalizowanego z pliku. Może być puste, ale nie może być równe null. |
Rzuty | |
---|---|
ConfigurationException |
await
public void await ()
Czeka na rozpoczęcie działania harmonogramu, w tym na zakończenie przejęcia od starego TF (jeśli to konieczne).
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Utwórz delegującego na podstawie wiersza poleceń, aby sprawdzić, czy trzeba delegować wykonanie.
Parametry | |
---|---|
args |
String |
Zwroty | |
---|---|
TradefedDelegator |
Rzuty | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Utwórz mapę stanu urządzeń, aby móc je odpowiednio udostępniać.
Parametry | |
---|---|
context |
IInvocationContext |
e |
Throwable |
Zwroty | |
---|---|
|
utwórz piaskownicę
public ISandbox createSandbox ()
Utwórz ISandbox
, którego wywołanie będzie używane do wykonywania.
Zwroty | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Wyświetla szczegółowe informacje debugowania dotyczące stanu kolejki wykonania poleceń.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Wyświetl listę bieżących poleceń.
Parametry | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) do wyprowadzenia. |
regex |
String : wyrażenie regularne, do którego muszą pasować polecenia, aby mogły zostać wydrukowane. Jeśli ma wartość null, wszystkie polecenia są drukowane. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Wyświetla listę bieżących wywołań.
Parametry | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) , do którego mają trafiać dane wyjściowe. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Wygeneruj rozszerzony plik XML polecenia ze wszystkimi wartościami Option
określonymi dla wszystkich bieżących poleceń.
Parametry | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) , do którego ma być wyprowadzany stan. |
regex |
String : wyrażenie regularne, z którym powinny być zgodne polecenia, aby można było wyodrębnić plik XML. Jeśli ma wartość null, wszystkie polecenia są kopiowane. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Wykonywanie polecenia bezpośrednio na już przypisanym urządzeniu.
Parametry | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , gdzie będą dostępne informacje |
device |
ITestDevice : ITestDevice do użycia |
args |
String : argumenty polecenia |
Zwroty | |
---|---|
long |
Identyfikator wywołania zaplanowanego polecenia. |
Rzuty | |
---|---|
ConfigurationException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Wykonaj polecenie bezpośrednio na przydzielonych już urządzeniach.
Parametry | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , gdzie będą dostępne informacje |
reservedDevices |
: ERROR(/List do użycia |
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ń, używając już istniejącego IInvocationContext
.
Parametry | |
---|---|
context |
IInvocationContext : istniejący IInvocationContext . |
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , gdzie będą dostępne informacje |
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 , aby poinformować |
args |
String : argumenty polecenia. |
Zwroty | |
---|---|
long |
Identyfikator wywołania zaplanowanego polecenia. |
Rzuty | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Pobierz odpowiedni program CommandFileWatcher dla tego harmonogramu.
Zwroty | |
---|---|
CommandFileWatcher |
getExecutingCommandCount;
public int getExecutingCommandCount ()
Zwraca liczbę poleceń w stanie wykonywania.
Zwroty | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Zwraca informacje o wywołaniu, podając jego identyfikator.
Parametry | |
---|---|
invocationId |
int : identyfikator śledzenia wywołania. |
Zwroty | |
---|---|
String |
String zawierający informacje o wywołaniu. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Zwraca kod błędu ostatniego wywołania. Zwraca wartość 0 (brak błędu), jeśli żadne wywołanie nie zostało jeszcze wykonane.
Zwroty | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Zwraca Throwable
z ostatniego uruchomionego wywołania.
Zwraca wartość null, jeśli nie ma dostępnych obiektów rzucalnych.
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ść „prawda”, jeśli urządzenie jest używane przez aktywny wątek wywołania.
Parametry | |
---|---|
device |
ITestDevice |
Zwroty | |
---|---|
boolean |
isShuttingDown
public boolean isShuttingDown ()
Zwroty | |
---|---|
boolean |
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parametry | |
---|---|
cmdFile |
File |
extraArgs |
|
deleteAllCommands
public void removeAllCommands ()
Usuń wszystkie polecenia z algorytmu szeregowania
home run
public void run ()
Główny blok kodu tego wątku.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Skonfiguruj klienta do raportowania danych o wykorzystywaniu danych
Parametry | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Zwraca wartość true, jeśli w przypadku błędu polecenia trzeba wyłączyć algorytm szeregowania
Zwroty | |
---|---|
boolean |
wyłączenie
public void shutdown (boolean notifyStop)
Próba płynnego wyłączenia algorytmu planowania poleceń.
Parametry | |
---|---|
notifyStop |
boolean : jeśli wartość to prawda, wywołania są powiadamiane o wyłączeniu TF. |
WyłączenieHard
public void shutdownHard (boolean killAdb)
Spróbuj wymusić wyłączenie algorytmu szeregowania poleceń.
Podobnie jak w przypadku shutdown()
, ale w tym przypadku opcjonalnie kończy też połączenie adb, aby w miarę możliwości przyspieszyć proces wywoływania.
Parametry | |
---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Spróbuj wymusić zamknięcie harmonogramu poleceń. Taka sama jak zasadadisableHard(prawda).
shutdownOnEmpty
public void shutdownOnEmpty ()
Podobnie jak w przypadku polecenia shutdown()
, ale z tym, że przed zakończeniem zaczeka na wykonanie wszystkich poleceń.
Pamiętaj, że jeśli jakiekolwiek polecenia są w pętli, harmonogram nigdy się nie zakończy.
rozpocznij
public void start ()
Uruchamia harmonogram, w tym konfigurację rejestrowania, inicjowanie DeviceManager
itp.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Zatrzymanie bieżącego wywołania.
Parametry | |
---|---|
invocation |
ITestInvocation |
Zwroty | |
---|---|
boolean |
wartość true, jeśli wywołanie zostało zatrzymane, a w przeciwnym razie – false |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
Zatrzymaj bieżące wywołanie, podając jego identyfikator.
Parametry | |
---|---|
invocationId |
int : identyfikator śledzenia wywołania. |
cause |
String : przyczyna zatrzymania wywołania. |
Zwroty | |
---|---|
boolean |
wartość true, jeśli wywołanie zostało zatrzymane, a w przeciwnym razie – false |
stopScheduling
public void stopScheduling ()
Zatrzymuje planowanie i akceptowanie nowych testów, ale nie zatrzymuje Tradefed. Ma to umożliwić wyłączenie w 2 etapach: najpierw kończymy wszystkie uruchomione testy, a potem proces Tradefed.
Chronione metody
cleanUp
protected void cleanUp ()
Zamyka dzienniki i wykonuje inne niezbędne czynności porządkujące przed zakończeniem.
Wyeksponowane, aby można było je zasymulować w testach jednostkowych.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
Parametry | |
---|---|
args |
String |
Zwroty | |
---|---|
IConfiguration |
Rzuty | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Zwroty | |
---|---|
IInvocationContext |
Raportowanie polecenia dryRunCommand
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Określa, czy dane polecenie jest testem. Jeśli polecenie jest testem, sprawdź je. Jeśli wystąpi problem z konfiguracją, zostanie rzucony wyjątek ConfigurationException.
Parametry | |
---|---|
handler |
ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) , aby zgłaszać zdarzenia do weryfikacji w trybie suchym. |
config |
IConfiguration |
Zwroty | |
---|---|
void |
Wartość true, jeśli polecenie jest testem, a w przeciwnym razie ma wartość false. |
Rzuty | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
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 ()
Metoda fabryczna polegająca na uzyskiwaniu odwołania do IConfigurationFactory
Zwroty | |
---|---|
IConfigurationFactory |
IConfigurationFactory do użycia |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Zwroty | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metoda fabryczna służąca do uzyskiwania odwołania do obiektu IDeviceManager
Zwroty | |
---|---|
IDeviceManager |
IDeviceManager do użycia |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Pobiera wartość IKeyStoreClient
za pomocą IKeyStoreFactory
zadeklarowanego w IGlobalConfiguration
lub null, jeśli nie ma żadnej definicji.
Zwroty | |
---|---|
IKeyStoreClient |
IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Zwroty | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Inicjowanie dziennika ddmlib.
Wyeksponowane, aby można było je zasymulować w testach jednostkowych.
isShutdown
protected boolean isShutdown ()
Zwroty | |
---|---|
boolean |
ProcesGotowyPolecenia
protected void processReadyCommands (IDeviceManager manager)
Parametry | |
---|---|
manager |
IDeviceManager |