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

Metody publiczne

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

Dodaje polecenie do harmonogramu.

void addCommandFile(String cmdFilePath, extraArgs)

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

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

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

Wykonywanie polecenia bezpośrednio na już przypisanym urządzeniu.

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

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

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

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, extraArgs)
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 shutdown(), ale z tym, że przed zakończeniem zaczeka na wykonanie wszystkich poleceń.

void start()

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

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.

Chronione metody

void cleanUp()

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

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

Określa, czy dane polecenie jest testem.

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

Metoda fabryczna służąca do uzyskiwania odwołania do obiektu IConfigurationFactory

DeviceManagementGrpcServer getDeviceManagementServer()
IDeviceManager getDeviceManager()

Metoda fabryczna służąca do uzyskiwania odwołania do obiektu IDeviceManager

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

Pobiera wartość IKeyStoreClient za pomocą IKeyStoreFactory zadeklarowanego w IGlobalConfiguration lub null, jeśli nie ma żadnej definicji.

TestInvocationManagementServer getTestInvocationManagementServer()
void initLogging()

Inicjowanie dziennika ddmlib.

boolean isShutdown()
void processReadyCommands(IDeviceManager manager)

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

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

getFeatureServer

protected TradefedFeatureServer getFeatureServer ()

Zwroty
TradefedFeatureServer

getHostOptions

protected IHostOptions getHostOptions ()

Zwroty
IHostOptions

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