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

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 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 ()

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

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

void start ()

Uruchamia harmonogram, w tym konfigurację rejestrowania, inicjowanie DeviceManager itp

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.

Metody chronione

void cleanUp ()

Zamyka dzienniki i wykonuje inne niezbędne czynności porządkowe przed zakończeniem.

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
void dryRunCommandReporting ( ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)

Określa, czy dane polecenie jest próbne.

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

Metoda fabryczna służąca do uzyskiwania odniesienia do IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

Metoda fabryczna uzyskiwania odniesienia 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)

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

Należy pamiętać, że jeśli jakiekolwiek polecenia są w trybie pętli, program planujący nigdy nie zakończy działania.

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

pobierz Opcje Hosta

protected IHostOptions getHostOptions ()

Zwroty
IHostOptions

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