CommandScheduler

public class CommandScheduler
extends Object implements ICommandScheduler

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


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

Będzie próbować nadawać priorytet poleceniom do uruchomienia na podstawie łącznej liczby wykonanych poleceń. Na przykład polecenia rzadko wykonywane lub szybko działające będą miały wyższy priorytet niż polecenia długo działające.

Działa w tle bezterminowo do momentu wyłączenia.

Podsumowanie

Publiczne konstruktory

CommandScheduler()

Tworzy CommandScheduler.

Metody publiczne

Pair<Boolean, Integer> addCommand(String[] args)

Dodaje polecenie do harmonogramu.

void addCommandFile(String cmdFilePath, extraArgs)

Dodaje do harmonogramu wszystkie polecenia z danego pliku.

void await()

Czeka na rozpoczęcie działania algorytmu szeregowania, w tym na zakończenie przekazywania danych ze starego TF, jeśli ma to zastosowanie.

static TradefedDelegator checkDelegation(String[] args)

Utwórz delegatora w wierszu 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óra będzie używana do uruchamiania wywołania.

void displayCommandQueue(PrintWriter printWriter)

Wyświetla szczegółowe informacje o debugowaniu stanu kolejki wykonywania 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)

Wyeksportuj rozwinięty plik XML polecenia ze wszystkimi wartościami Option określonymi dla wszystkich bieżących poleceń.

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

Bezpośrednie wykonywanie poleceń na urządzeniu, które zostało już przydzielone.

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

Bezpośrednie wykonywanie poleceń na urządzeniach, które zostały już przydzielone.

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 istniejącego już 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 obiekt 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, które zostało uruchomione.

Throwable getLastInvocationThrowable()

Zwraca Throwable z ostatniego wywołania, które zostało uruchomione.

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, extraArgs)
void removeAllCommands()

Usuwanie wszystkich poleceń z harmonogramu

void run()

Główny blok wykonywania tego wątku.

void setClearcutClient(ClearcutClient client)

Konfigurowanie klienta pod kątem raportowania danych uprzęży

void setMaxPollTime(long polling)
void setPrintSchedulingWarning(boolean print)
boolean shouldShutdownOnCmdfileError()

Zwraca wartość „true”, jeśli w przypadku błędów poleceń należy zamknąć harmonogram.

void shutdown(boolean notifyStop)

Spróbuj płynnie wyłączyć harmonogram poleceń.

void shutdownHard(boolean killAdb)

Próba wymuszonego zamknięcia harmonogramu poleceń.

void shutdownHard()

Próba wymuszonego zamknięcia harmonogramu poleceń.

void shutdownOnEmpty()

Podobne do shutdown(), ale przed zakończeniem działania poczeka na wykonanie wszystkich poleceń.

void start()

Uruchamia harmonogram, w tym konfiguruje rejestrowanie, inicjuje DeviceManager itp.

boolean stopInvocation(ITestInvocation invocation)

Zatrzymywanie uruchomionego wywołania

boolean stopInvocation(int invocationId, String cause)

Zatrzymaj trwające wywołanie, podając jego identyfikator.

void stopScheduling()

Zatrzymuje planowanie i akceptowanie nowych testów, ale nie zatrzymuje Tradefed.

Metody chronione

void cleanUp()

Zamyka dzienniki i wykonuje inne niezbędne czynności przed zakończeniem działania.

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

Określa, czy dane polecenie jest testowe.

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

Metoda fabryczna uzyskiwania odwołania do IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

Metoda fabryczna uzyskiwania odwołania do IDeviceManager

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

Pobiera obiekt IKeyStoreClient za pomocą obiektu IKeyStoreFactory zadeklarowanego w IGlobalConfiguration lub wartość null, jeśli nie zdefiniowano żadnego obiektu.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

Inicjuje dziennik ddmlib.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)

Publiczne konstruktory

CommandScheduler

public CommandScheduler ()

Tworzy CommandScheduler.

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

Metody publiczne

addCommand

public Pair<Boolean, Integer> addCommand (String[] args)

Dodaje polecenie do harmonogramu.

Polecenie to w zasadzie instancja konfiguracji do uruchomienia i powiązane z nią argumenty.

Jeśli podany jest argument „--help”, tekst pomocy dotyczący konfiguracji zostanie wyświetlony w standardowym wyjściu. 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 wartość logiczna true, jeśli polecenie zostało dodane. Druga wartość to znany identyfikator śledzenia poleceń(wartość nieujemna), jeśli polecenie zostało dodane, 0, jeśli polecenie zostało dodane na wszystkich urządzeniach, lub -1.

Zgłasza
ConfigurationException

addCommandFile

public void addCommandFile (String cmdFilePath, 
                 extraArgs)

Dodaje do harmonogramu wszystkie polecenia z danego pliku.

Parametry
cmdFilePath String: ścieżka systemu plików do pliku polecenia

extraArgs : ERROR(/List) argumentów String dołącza do każdego polecenia przeanalizowanego z pliku. Może być puste, ale nie może mieć wartości null.

Zgłasza
ConfigurationException

oczekiwać,

public void await ()

Czeka na rozpoczęcie działania algorytmu szeregowania, w tym na zakończenie przekazywania danych ze starego TF, jeśli ma to zastosowanie.

checkDelegation

public static TradefedDelegator checkDelegation (String[] args)

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

Parametry
args String

Zwroty
TradefedDelegator

Zgłasza
com.android.tradefed.config.ConfigurationException
ConfigurationException

createReleaseMap

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

createSandbox

public ISandbox createSandbox ()

Utwórz ISandbox, która będzie używana do uruchamiania wywołania.

Zwroty
ISandbox

displayCommandQueue

public void displayCommandQueue (PrintWriter printWriter)

Wyświetla szczegółowe informacje o debugowaniu stanu kolejki wykonywania poleceń.

displayCommandsInfo

public void displayCommandsInfo (PrintWriter printWriter, 
                String regex)

Wyświetl listę bieżących poleceń.

Parametry
printWriter PrintWriter: ERROR(/PrintWriter), do którego ma być wysyłane wyjście.

regex String: wyrażenie regularne, do którego polecenia powinny być dopasowywane, aby można je było wydrukować. Jeśli wartość to null, zostaną wydrukowane wszystkie polecenia.

displayInvocationsInfo

public void displayInvocationsInfo (PrintWriter printWriter)

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

Parametry
printWriter PrintWriter: ERROR(/PrintWriter), do którego ma być wysyłane wyjście.

dumpCommandsXml

public void dumpCommandsXml (PrintWriter printWriter, 
                String regex)

Wyeksportuj rozwinięty 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ć wysyłany stan.

regex String: wyrażenie regularne, z którym polecenia powinny być zgodne, aby można było zrzucić plik XML. Jeśli wartość to null, zostaną zrzucone wszystkie polecenia.

execCommand

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

Bezpośrednie wykonywanie poleceń na urządzeniu, które zostało już przydzielone.

Parametry
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener, które ma otrzymać powiadomienie

device ITestDevice: ITestDevice, którego chcesz użyć

args String: argumenty polecenia

Zwroty
long Identyfikator wywołania zaplanowanego polecenia.

Zgłasza
ConfigurationException

execCommand

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

Bezpośrednie wykonywanie poleceń na urządzeniach, które zostały już przydzielone.

Parametry
listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener, które ma otrzymać powiadomienie

reservedDevices : ERROR(/List), którego chcesz użyć

args String: argumenty polecenia

Zwroty
long Identyfikator wywołania zaplanowanego polecenia.

Zgłasza
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 istniejącego już IInvocationContext.

Parametry
context IInvocationContext: istniejący IInvocationContext.

listener ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener, które ma otrzymać powiadomienie

args String: argumenty polecenia

Zwroty
long

Zgłasza
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óre ma otrzymać powiadomienie

args String: argumenty polecenia

Zwroty
long Identyfikator wywołania zaplanowanego polecenia.

Zgłasza
ConfigurationException
NoDeviceException

getCommandFileWatcher

public CommandFileWatcher getCommandFileWatcher ()

Pobierz odpowiedni obiekt 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)

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, które zostało uruchomione. Zwraca 0 (brak błędu), jeśli nie uruchomiono jeszcze żadnego wywołania.

Zwroty
CommandRunner.ExitCode

getLastInvocationThrowable

public Throwable getLastInvocationThrowable ()

Zwraca Throwable z ostatniego wywołania, które zostało uruchomione. Zwraca wartość null, jeśli nie ma obiektu throwable.

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

removeAllCommands

public void removeAllCommands ()

Usuwanie wszystkich poleceń z harmonogramu

home run

public void run ()

Główny blok wykonywania tego wątku.

setClearcutClient

public void setClearcutClient (ClearcutClient client)

Konfigurowanie klienta pod kątem raportowania danych uprzęży

Parametry
client ClearcutClient

setMaxPollTime

public void setMaxPollTime (long polling)

Parametry
polling long

setPrintSchedulingWarning

public void setPrintSchedulingWarning (boolean print)

Parametry
print boolean

shouldShutdownOnCmdfileError

public boolean shouldShutdownOnCmdfileError ()

Zwraca wartość „true”, jeśli w przypadku błędów poleceń należy zamknąć harmonogram.

Zwroty
boolean

wyłączenie,

public void shutdown (boolean notifyStop)

Spróbuj płynnie wyłączyć harmonogram poleceń.

Parametry
notifyStop boolean: jeśli ma wartość true, powiadamia o wywołaniach zamknięcia TF.

shutdownHard

public void shutdownHard (boolean killAdb)

Próba wymuszonego zamknięcia harmonogramu poleceń.

Podobne do shutdown(), ale opcjonalnie zamyka też połączenie adb, aby „zachęcić” trwające wywołania do szybszego zakończenia.

Parametry
killAdb boolean

shutdownHard

public void shutdownHard ()

Próba wymuszonego zamknięcia harmonogramu poleceń. Tak samo jak shutdownHard(true).

shutdownOnEmpty

public void shutdownOnEmpty ()

Podobne do shutdown(), ale przed zakończeniem działania poczeka na wykonanie wszystkich poleceń.

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

rozpocznij

public void start ()

Uruchamia harmonogram, w tym konfiguruje rejestrowanie, inicjuje DeviceManager itp.

stopInvocation

public boolean stopInvocation (ITestInvocation invocation)

Zatrzymywanie uruchomionego 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 trwają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ć dwuetapowe wyłączanie, w którym najpierw kończymy wszystkie uruchomione testy, a potem zamykamy proces Tradefed.

Metody chronione

cleanUp

protected void cleanUp ()

Zamyka dzienniki i wykonuje inne niezbędne czynności przed zakończeniem działania.

Udostępniane, aby testy jednostkowe mogły je symulować.

createConfiguration

protected IConfiguration createConfiguration (String[] args)

Parametry
args String

Zwroty
IConfiguration

Zgłasza
ConfigurationException

createInvocationContext

protected IInvocationContext createInvocationContext ()

Zwroty
IInvocationContext

dryRunCommandReporting

protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, 
                IConfiguration config)

Określa, czy dane polecenie jest testowe. Jeśli polecenie jest uruchomieniem próbnym, sprawdź je. Jeśli wystąpią problemy z konfiguracją, zostanie zgłoszony wyjątek ConfigurationException.

Parametry
handler ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler) – do raportowania zdarzeń na potrzeby weryfikacji próbnej.

config IConfiguration

Zwroty
void wartość true, jeśli polecenie jest uruchomieniem próbnym, w przeciwnym razie wartość false.

Zgłasza
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

Zgłasza
ConfigurationException

getConfigFactory

protected IConfigurationFactory getConfigFactory ()

Metoda fabryczna uzyskiwania odwołania do IConfigurationFactory

Zwroty
IConfigurationFactory IConfigurationFactory do korzystania

getDeviceManagementServer

protected DeviceManagementGrpcServer getDeviceManagementServer ()

Zwroty
DeviceManagementGrpcServer

getDeviceManager

protected IDeviceManager getDeviceManager ()

Metoda fabryczna uzyskiwania odwołania do IDeviceManager

Zwroty
IDeviceManager IDeviceManager do korzystania

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Zwroty
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Zwroty
IHostOptions

getKeyStoreClient

protected IKeyStoreClient getKeyStoreClient ()

Pobiera obiekt IKeyStoreClient za pomocą obiektu IKeyStoreFactory zadeklarowanego w IGlobalConfiguration lub wartość null, jeśli nie zdefiniowano żadnego obiektu.

Zwroty
IKeyStoreClient IKeyStoreClient

getTestInvocationManagementServer

protected TestInvocationManagementServer getTestInvocationManagementServer ()

Zwroty
TestInvocationManagementServer

initLogging

protected void initLogging ()

Inicjuje dziennik ddmlib.

Udostępniane, aby testy jednostkowe mogły je symulować.

isShutdown

protected boolean isShutdown ()

Zwroty
boolean

processReadyCommands

protected void processReadyCommands (IDeviceManager manager)

Parametry
manager IDeviceManager