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.
Spróbuje nadać priorytety poleceniom do wykonania na podstawie łącznej liczby ich uruchomień. Przykładowo rzadko używane lub szybko wykonywane polecenia będą miały wyższy priorytet niż polecenia wymagające długiego czasu wykonania.
Działa w tle do momentu wyłączenia.
Podsumowanie
Konstruktory publiczne | |
---|---|
CommandScheduler()
Tworzy |
Metody publiczne | |
---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
Dodaje polecenie do harmonogramu. |
void
|
addCommandFile(String cmdFilePath,
Dodaje do harmonogramu wszystkie polecenia z podanego pliku. |
void
|
await()
Czeka na rozpoczęcie działania algorytmu szeregowania, w tym na zakończenie przekazania od starego 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 o stanie 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)
Wykonywanie polecenia bezpośrednio na już przypisanym urządzeniu. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Wykonywanie poleceń bezpośrednio na już przypisanych 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 odpowiedni program CommandFileWatcher dla tego harmonogramu. |
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 wywołania. |
Throwable
|
getLastInvocationThrowable()
Zwraca wartość |
int
|
getReadyCommandCount()
Zwraca liczbę poleceń w stanie gotowości w kole. |
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)
Konfigurowanie klienta do raportowania danych z harness |
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ć zamknięcie harmonogramu 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 harmonogramu.
Polecenie to zasadniczo instancja konfiguracji do uruchomienia wraz z powiązanymi argumentami.
Jeśli podano argument „--help”, tekst pomocy dla konfiguracji zostanie wyświetlony na wyjściu standardowym. W przeciwnym razie konfiguracja zostanie dodana do kolejki do uruchomienia.
Parametry | |
---|---|
args |
String : argumenty konfiguracji. |
Zwroty | |
---|---|
Pair<Boolean, Integer> |
Para wartości, z której pierwsza to wartość logiczna true , jeśli polecenie zostało dodane. Druga wartość to znany identyfikator śledzenia polecenia(wartość nieujemna), jeśli polecenie zostało dodane, zwraca 0, gdy polecenie zostało dodane dla wszystkich urządzeń, w przeciwnym razie zwraca –1. |
Rzuty | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Dodaje do harmonogramu wszystkie polecenia z podanego 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 powinno być puste. |
Rzuty | |
---|---|
ConfigurationException |
await
public void await ()
Czeka na rozpoczęcie działania algorytmu szeregowania, w tym na zakończenie przekazania 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 można było je odpowiednio uwolnić.
Parametry | |
---|---|
context |
IInvocationContext |
e |
Throwable |
Zwroty | |
---|---|
|
createSandbox
public ISandbox createSandbox ()
Utwórz ISandbox
, którego wywołanie będzie używane do wykonania.
Zwroty | |
---|---|
ISandbox |
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Wyświetla szczegółowe informacje debugowania o stanie 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 jest to wartość null, zostaną wydrukowane wszystkie polecenia. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Wyświetla listę bieżących wywołań.
Parametry | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) do wyprowadzenia. |
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 zdumpować plik XML. Jeśli jest to wartość null, zostaną wypisane wszystkie polecenia. |
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 , aby poinformować |
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)
Wykonywanie poleceń bezpośrednio na już przypisanych urządzeniach.
Parametry | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , aby poinformować |
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)
Przydziela urządzenie bezpośrednio i wykonuje polecenie bez dodawania go do kolejki poleceń za pomocą już istniejącego IInvocationContext
.
Parametry | |
---|---|
context |
IInvocationContext : istniejący IInvocationContext . |
listener |
ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , aby poinformować |
args |
String : argumenty polecenia |
Zwroty | |
---|---|
long |
Rzuty | |
---|---|
ConfigurationException |
|
NoDeviceException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Przypisuje urządzenie bezpośrednio 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ływaniu. |
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 wartość Throwable
z ostatniego 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 kole.
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 |
|
removeAllCommands
public void removeAllCommands ()
Usuń wszystkie polecenia z harmonogramu
home run
public void run ()
Główny blok kodu tego wątku.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Konfigurowanie klienta do raportowania danych z harness
Parametry | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Zwraca wartość Prawda, jeśli musimy wyłączyć harmonogramistę z powodu błędów poleceń.
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. |
shutdownHard
public void shutdownHard (boolean killAdb)
Spróbuj wymusić zamknięcie harmonogramu 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ń. To samo co shutdownHard(true).
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, w przeciwnym razie wartość 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, w przeciwnym razie wartość 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 skończymy wszystkie uruchomione testy, a potem zakończymy 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 |
dryRunCommandReporting
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, 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 służąca do uzyskiwania odwołania do obiektu 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 |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parametry | |
---|---|
manager |
IDeviceManager |