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 CommandScheduler .

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 ISandbox , którego wywołanie będzie używać do uruchamiania.

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 Option określonymi dla wszystkich bieżących poleceń.

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 IInvocationContext .

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óć Throwable z ostatniego uruchomionego wywołania.

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 shutdown() , ale zamiast tego czeka na wykonanie wszystkich poleceń przed wyjściem.

void start ()

Uruchamia program planujący, w tym konfigurowanie rejestrowania, inicjowanie DeviceManager itp

boolean stopInvocation ( ITestInvocation invocation)

Zatrzymaj uruchomioną inwokację.

boolean stopInvocation (int invocationId, String cause)

Zatrzymaj uruchomione wywołanie, określając jego identyfikator.

Metody chronione

void cleanUp ()

Zamyka dzienniki i wykonuje wszelkie inne niezbędne czynności porządkowe przed wyjściem.

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
long execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args)
IConfigurationFactory getConfigFactory ()

Fabryczna metoda uzyskiwania odwołania do IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

Fabryczna metoda uzyskiwania odwołania do IDeviceManager

TradefedFeatureServer getFeatureServer ()
IHostOptions getHostOptions ()
IKeyStoreClient getKeyStoreClient ()

Pobiera IKeyStoreClient przy użyciu IKeyStoreFactory zadeklarowanej w IGlobalConfiguration lub null, jeśli żadna nie jest zdefiniowana.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Inicjuje dziennik ddmlib.

boolean isShutdown ()
void processReadyCommands ( IDeviceManager manager)

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 static  createReleaseMap (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.

Zauważ, że jeśli jakiekolwiek polecenia są w trybie pętli, harmonogram nigdy się nie zakończy.

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

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Zwroty
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Zwroty
IHostOptions

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