Harmonogram poleceń

public class CommandScheduler
extends Object implements ICommandScheduler

java.lang.Object
com.android.tradefed.command.CommandScheduler


Harmonogram do uruchamiania poleceń TradeFederation na wszystkich dostępnych urządzeniach.

Podejmie próbę ustalenia priorytetów poleceń do uruchomienia na podstawie łącznego czasu ich wykonania. np. rzadkie lub szybko działające polecenia będą miały pierwszeństwo przed długimi poleceniami.

Działa na zawsze w tle, aż do wyłączenia.

Streszczenie

Klasy zagnieżdżone

enum CommandScheduler.HostState

Wyliczenia o różnym statusie hosta

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

Oczekuje na rozpoczęcie działania harmonogramu, w tym czeka 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ć przebieg.

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żywane do uruchomienia.

void displayCommandQueue (PrintWriter printWriter)

Wyświetla szczegółowe informacje debugowania dotyczące stanu kolejki wykonywania poleceń.

void displayCommandsInfo (PrintWriter printWriter, String regex)

Wypisz 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 ( 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ń.

long execCommand ( ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)

Bezpośrednio wykonaj polecenie na już przydzielonym urządzeniu.

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 bu określając identyfikator wywołania.

CommandRunner.ExitCode getLastInvocationExitCode ()

Zwróć kod błędu ostatniego uruchomionego wywołania.

Throwable getLastInvocationThrowable ()

Zwróć przedmiot Throwable z ostatniego wywołania.

int getReadyCommandCount ()

Zwraca liczbę poleceń w stanie gotowości w kolejce.

long getShutdownTimeout ()
boolean isDeviceInInvocationThread ( ITestDevice device)

Zwraca true, jeśli urządzenie jest używane przez aktywny wątek wywołania.

void notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs)
void removeAllCommands ()

Usuń wszystkie polecenia z harmonogramu

void run ()

Główny blok wykonania tego wątku.

void setClearcutClient (ClearcutClient client)

Ustaw klienta, aby raportował dane wiązki

boolean shouldShutdownOnCmdfileError ()

Zwróć true, jeśli musimy wyłączyć harmonogram po błędach poleceń

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 będzie czekał na wykonanie wszystkich poleceń przed zakończeniem.

void start ()

Uruchamia harmonogram, w tym konfigurację logowania, inicjowanie DeviceManager urządzeń itp.

boolean stopInvocation (int invocationId, String cause)

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

boolean stopInvocation ( ITestInvocation invocation)

Zatrzymaj uruchomioną inwokację.

Metody chronione

void cleanUp ()

Zamyka dzienniki i wykonuje wszelkie inne niezbędne porządki przed zamknięciem.

IConfiguration createConfiguration (String[] args)
IInvocationContext createInvocationContext ()
IConfigurationFactory getConfigFactory ()

Fabryczna metoda uzyskiwania odniesienia do IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer ()
IDeviceManager getDeviceManager ()

Fabryczna metoda uzyskiwania odniesienia do IDeviceManager

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

IKeyStoreClient przy użyciu IKeyStoreFactory zadeklarowanego w IGlobalConfiguration lub null, jeśli żaden nie jest zdefiniowany.

TestInvocationManagementServer getTestInvocationManagementServer ()
void initLogging ()

Inicjuje dziennik ddmlib.

boolean isShutdown ()
boolean isShuttingDown ()
void processReadyCommands ( IDeviceManager manager)

Konstruktorzy publiczni

Harmonogram poleceń

public CommandScheduler ()

Tworzy CommandScheduler .

Uwaga: start należy wywołać przed użyciem.

Metody publiczne

addCommand

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 wyprowadzony 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 true logiczna, 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

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Dodaje wszystkie polecenia z podanego pliku do harmonogramu

Parametry
cmdFilePath String : ścieżka systemu plików do 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 być pusty.

Rzuty
ConfigurationException

czekać na

public void await ()

Oczekuje na rozpoczęcie działania harmonogramu, w tym czeka na zakończenie przekazania ze starego TF, jeśli ma to zastosowanie.

checkDelegacja

public static TradefedDelegator checkDelegation (String[] args)

Utwórz delegatora na podstawie wiersza poleceń, aby sprawdzić, czy musimy delegować przebieg.

Parametry
args String

Zwroty
TradefedDelegator

Rzuty
ConfigurationException

utwórzReleaseMap

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żywane do uruchomienia.

Zwroty
ISandbox

wyświetlKolejkęPoleceń

public void displayCommandQueue (PrintWriter printWriter)

Wyświetla szczegółowe informacje debugowania dotyczące stanu kolejki wykonywania poleceń.

displayInformacje o poleceniach

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Wypisz listę bieżących poleceń.

Parametry
printWriter PrintWriter : ERROR(/PrintWriter) , do którego ma zostać wydrukowany.

regex String : wyrażenie regularne, do którego należy dopasować polecenia, aby zostały wydrukowane. Jeśli null, to zostaną wypisane wszystkie polecenia.

wyświetlInformacje o wywołaniach

public void displayInvocationsInfo (PrintWriter printWriter)

Wyświetla listę bieżących wywołań.

Parametry
printWriter PrintWriter : ERROR(/PrintWriter) , do którego ma zostać wydrukowany.

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 (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 być informowany

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 być informowany

args String : argumenty polecenia

Zwroty
long Identyfikator wywołania zaplanowanego polecenia.

Rzuty
ConfigurationException
NoDeviceException

execCommand

public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, 
                ITestDevice device, 
                String[] args)

Bezpośrednio wykonaj polecenie na już przydzielonym urządzeniu.

Parametry
listener ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener , który ma być informowany

device ITestDevice : ITestDevice do użycia

args String : argumenty polecenia

Zwroty
long Identyfikator wywołania zaplanowanego polecenia.

Rzuty
ConfigurationException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Pobierz odpowiedni CommandFileWatcher dla tego harmonogramu

Zwroty
CommandFileWatcher

getExecutingCommandCount

public int getExecutingCommandCount ()

Zwraca liczbę poleceń w stanie wykonywania.

Zwroty
int

getHostState

public CommandScheduler.HostState getHostState ()

Zwroty
CommandScheduler.HostState

getInvocationInfo

public String getInvocationInfo (int invocationId)

Zwróć informacje o wywołaniu bu określając identyfikator wywołania.

Parametry
invocationId int : identyfikator śledzenia wywołania.

Zwroty
String String zawierający informacje o wywołaniu.

pobierzLastInvocationExitCode

public CommandRunner.ExitCode getLastInvocationExitCode ()

Zwróć kod błędu ostatniego uruchomionego wywołania. Zwróć 0 (brak błędu), jeśli nie uruchomiono jeszcze wywołania.

Zwroty
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Zwróć przedmiot Throwable z ostatniego wywołania. Zwróć null, jeśli nie jest dostępny żaden przedmiot 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

isDeviceInwokacjaWątek

public boolean isDeviceInInvocationThread (ITestDevice device)

Zwraca true, jeśli urządzenie jest używane przez aktywny wątek wywołania.

Parametry
device ITestDevice

Zwroty
boolean

notifyFileChanged

public void notifyFileChanged (File cmdFile, 
                 extraArgs)

Parametry
cmdFile File

extraArgs

usuń wszystkie polecenia

public void removeAllCommands ()

Usuń wszystkie polecenia z harmonogramu

biegać

public void run ()

Główny blok wykonania tego wątku.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Ustaw klienta, aby raportował dane wiązki

Parametry
client ClearcutClient

powinienShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Zwróć true, jeśli musimy wyłączyć harmonogram po błędach poleceń

Zwroty
boolean

zamknąć

public void shutdown (boolean notifyStop)

Spróbuj bezpiecznie zamknąć harmonogram poleceń.

Parametry
notifyStop boolean : jeśli true, powiadamia o wywoływaniu zamknięcia TF.

zamknij ciężko

public void shutdownHard (boolean killAdb)

Spróbuj wymusić zamknięcie harmonogramu poleceń.

Podobny do shutdown() , ale opcjonalnie zabije połączenie adb, próbując „zainspirować” trwające wywołania do szybszego zakończenia.

Parametry
killAdb boolean

zamknij ciężko

public void shutdownHard ()

Spróbuj wymusić zamknięcie harmonogramu poleceń. To samo, co shutdownHard(true).

zamknij na pustym

public void shutdownOnEmpty ()

Podobny do shutdown() , ale zamiast tego będzie czekał na wykonanie wszystkich poleceń przed zakończeniem.

Zauważ, że jeśli jakieś polecenia są w trybie pętli, planista nigdy nie wyjdzie.

początek

public void start ()

Uruchamia harmonogram, w tym konfigurację logowania, inicjowanie DeviceManager urządzeń itp.

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 prawda, jeśli wywołanie zostało zatrzymane, w przeciwnym razie fałsz

stopInwokacja

public boolean stopInvocation (ITestInvocation invocation)

Zatrzymaj uruchomioną inwokację.

Parametry
invocation ITestInvocation

Zwroty
boolean prawda, jeśli wywołanie zostało zatrzymane, w przeciwnym razie fałsz

Metody chronione

sprzątać

protected void cleanUp ()

Zamyka dzienniki i wykonuje wszelkie inne niezbędne porządki przed zamknięciem.

Odsłonięte, aby testy jednostkowe mogły być kpiną.

tworzenie konfiguracji

protected IConfiguration createConfiguration (String[] args)

Parametry
args String

Zwroty
IConfiguration

Rzuty
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Zwroty
IInvocationContext

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Fabryczna metoda uzyskiwania odniesienia do IConfigurationFactory

Zwroty
IConfigurationFactory IConfigurationFactory do użycia

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Zwroty
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

Fabryczna metoda uzyskiwania odniesienia do IDeviceManager

Zwroty
IDeviceManager IDeviceManager do użycia

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Zwroty
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Zwroty
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

IKeyStoreClient przy użyciu IKeyStoreFactory zadeklarowanego w IGlobalConfiguration lub null, jeśli żaden nie jest zdefiniowany.

Zwroty
IKeyStoreClient Klient IKeyStore

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Zwroty
TestInvocationManagementServer

initLogging

protected void initLogging ()

Inicjuje dziennik ddmlib.

Odsłonięte, aby testy jednostkowe mogły być kpiną.

jestZamknięcie

protected boolean isShutdown ()

Zwroty
boolean

jest wyłączanie

protected boolean isShuttingDown ()

Zwroty
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parametry
manager IDeviceManager