CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
java.lang.Object | |
↳ | com.android.tradefed.command.CommandScheduler |
利用可能なすべてのデバイスで TradeFederation コマンドを実行するためのスケジューラ。
実行の合計実行回数に基づいて、実行するコマンドの優先順位付けを試みます あります。例:実行頻度の低いコマンドや高速に実行されるコマンドは、長時間実行されるコマンドよりも優先されます。
シャットダウンするまでバックグラウンドで永続的に動作します。
概要
パブリック コンストラクタ | |
---|---|
CommandScheduler()
|
パブリック メソッド | |
---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
スケジューラにコマンドを追加します。 |
void
|
addCommandFile(String cmdFilePath,
指定されたファイルのすべてのコマンドをスケジューラに追加する |
void
|
await()
古い TF からのハンドオーバーの完了を待つなど、スケジューラの実行開始を待機する 。 |
static
TradefedDelegator
|
checkDelegation(String[] args)
コマンドラインに基づいて委任者を作成し、実行を委任する必要があるかどうかを確認します。 |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
デバイスの状態のマップを作成して、デバイスを適切に解放できるようにします。 |
ISandbox
|
createSandbox()
呼び出しの実行に使用する |
void
|
displayCommandQueue(PrintWriter printWriter)
コマンド実行キューの状態に関する詳細なデバッグ情報を出力します。 |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
現在のコマンドのリストを出力します。 |
void
|
displayInvocationsInfo(PrintWriter printWriter)
現在の呼び出しのリストを表示します。 |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
コマンドの拡張 xml ファイルをダンプする
現在のすべてのコマンドに指定された |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
すでに割り当てられているデバイスでコマンドを直接実行します。 |
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
デバイスを直接割り当て、コマンドキューに追加せずにコマンドを実行する
既存の |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
デバイスを直接割り当てて、コマンドキューに追加せずにコマンドを実行します。 |
CommandFileWatcher
|
getCommandFileWatcher()
このスケジューラに適した CommandFileWatcher を取得する |
int
|
getExecutingCommandCount()
実行状態のコマンドの数を返します。 |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
呼び出し ID を指定して呼び出し bu の情報を返します。 |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
最後に実行された呼び出しのエラーコードを返します。 |
Throwable
|
getLastInvocationThrowable()
最後に実行された呼び出しから |
int
|
getReadyCommandCount()
キュー内の準備完了状態のコマンドの数を返します。 |
long
|
getShutdownTimeout()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
デバイスがアクティブな呼び出しスレッドで使用されている場合は true を返します。 |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
スケジューラからすべてのコマンドを削除 |
void
|
run()
このスレッドのメイン実行ブロック。 |
void
|
setClearcutClient(ClearcutClient client)
ハーネスデータを報告するようにクライアントを設定する |
boolean
|
shouldShutdownOnCmdfileError()
コマンドエラーでスケジューラをシャットダウンする必要がある場合は true を返す |
void
|
shutdown(boolean notifyStop)
コマンド スケジューラを正常にシャットダウンしてみます。 |
void
|
shutdownHard(boolean killAdb)
コマンド スケジューラの強制シャットダウンを試みます。 |
void
|
shutdownHard()
コマンド スケジューラの強制シャットダウンを試みます。 |
void
|
shutdownOnEmpty()
|
void
|
start()
ロギングの設定や |
boolean
|
stopInvocation(ITestInvocation invocation)
実行中の呼び出しを停止します。 |
boolean
|
stopInvocation(int invocationId, String cause)
ID を指定して実行中の呼び出しを停止します。 |
void
|
stopScheduling()
新しいテストのスケジューリングと受け入れを停止しますが、Tradefed は停止しません。 |
パブリック コンストラクタ
パブリック メソッド
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
スケジューラにコマンドを追加します。
コマンドは基本的に、実行する構成とそれに関連付けられた構成のインスタンス 渡します。
「--help」の場合引数を指定すると、構成のヘルプテキストが stdout に出力されます。 それ以外の場合、構成は実行キューに追加されます。
パラメータ | |
---|---|
args |
String : 構成引数。 |
戻り値 | |
---|---|
Pair<Boolean, Integer> |
値のペア。最初の値はブール値 true (コマンドが追加された場合)です。
確認します。2 番目の値は既知のコマンド トラッカー ID(負でない値)で、
コマンドは正常に追加されました。コマンドがすべてのデバイスに追加された場合は 0 を返します。それ以外の場合は 0 を返します。
-1. |
例外 | |
---|---|
ConfigurationException |
addCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
指定されたファイルのすべてのコマンドをスケジューラに追加する
パラメータ | |
---|---|
cmdFilePath |
String : コマンド ファイルのファイル システム パス |
extraArgs |
: 解析された各コマンドに追加する String 引数の ERROR(/List)
おすすめします。空にすることもできますが、null にすることはできません。 |
例外 | |
---|---|
ConfigurationException |
待って
public void await ()
古い TF からのハンドオーバーの完了を待つなど、スケジューラの実行開始を待機する 。
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
コマンドラインに基づいて委任者を作成し、実行を委任する必要があるかどうかを確認します。
パラメータ | |
---|---|
args |
String |
戻り値 | |
---|---|
TradefedDelegator |
例外 | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
デバイスの状態のマップを作成して、デバイスを適切に解放できるようにします。
パラメータ | |
---|---|
context |
IInvocationContext |
e |
Throwable |
戻り値 | |
---|---|
|
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
コマンド実行キューの状態に関する詳細なデバッグ情報を出力します。
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
現在のコマンドのリストを出力します。
パラメータ | |
---|---|
printWriter |
PrintWriter : 出力先の ERROR(/PrintWriter) 。 |
regex |
String : コマンドを照合する正規表現
表示されます。null の場合、すべてのコマンドが出力されます。 |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
現在の呼び出しのリストを表示します。
パラメータ | |
---|---|
printWriter |
PrintWriter : 出力先の ERROR(/PrintWriter) 。 |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
コマンドの拡張 xml ファイルをダンプする
現在のすべてのコマンドに指定された Option
値。
パラメータ | |
---|---|
printWriter |
PrintWriter : ステータスの出力先の ERROR(/PrintWriter) 。 |
regex |
String :
ダンプする xml ファイルを指定します。null の場合、すべてのコマンドがダンプされます。 |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
すでに割り当てられているデバイスでコマンドを直接実行します。
パラメータ | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : 通知対象の ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
: 使用する ERROR(/List |
args |
String : コマンド引数 |
戻り値 | |
---|---|
long |
スケジュールされたコマンドの呼び出し ID。 |
例外 | |
---|---|
ConfigurationException |
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
デバイスを直接割り当て、コマンドキューに追加せずにコマンドを実行する
既存の IInvocationContext
を使用します。
パラメータ | |
---|---|
context |
IInvocationContext : 既存の IInvocationContext 。 |
listener |
ICommandScheduler.IScheduledInvocationListener : 通知対象の ICommandScheduler.IScheduledInvocationListener |
args |
String : コマンド引数 |
戻り値 | |
---|---|
long |
例外 | |
---|---|
ConfigurationException |
|
NoDeviceException |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
デバイスを直接割り当てて、コマンドキューに追加せずにコマンドを実行します。
パラメータ | |
---|---|
listener |
ICommandScheduler.IScheduledInvocationListener : 通知対象の ICommandScheduler.IScheduledInvocationListener |
args |
String : コマンド引数 |
戻り値 | |
---|---|
long |
スケジュールされたコマンドの呼び出し ID。 |
例外 | |
---|---|
ConfigurationException |
|
NoDeviceException |
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
このスケジューラに適した CommandFileWatcher を取得する
戻り値 | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
実行状態のコマンドの数を返します。
戻り値 | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
呼び出し ID を指定して呼び出し bu の情報を返します。
パラメータ | |
---|---|
invocationId |
int : 呼び出しのトラッキング ID。 |
戻り値 | |
---|---|
String |
呼び出しに関する情報を含む String 。 |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
最後に実行された呼び出しのエラーコードを返します。 呼び出しがまだ実行されていない場合は、0(エラーなし)を返します。
戻り値 | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
最後に実行された呼び出しから Throwable
を返します。
スローアブルが利用できない場合は null を返します。
戻り値 | |
---|---|
Throwable |
getReadyCommandCount
public int getReadyCommandCount ()
キュー内の準備完了状態のコマンドの数を返します。
戻り値 | |
---|---|
int |
getShutdownTimeout
public long getShutdownTimeout ()
戻り値 | |
---|---|
long |
isDeviceInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
デバイスがアクティブな呼び出しスレッドで使用されている場合は true を返します。
パラメータ | |
---|---|
device |
ITestDevice |
戻り値 | |
---|---|
boolean |
isShuttingDown
public boolean isShuttingDown ()
戻り値 | |
---|---|
boolean |
notifyFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
パラメータ | |
---|---|
cmdFile |
File |
extraArgs |
|
deleteAllCommands
public void removeAllCommands ()
スケジューラからすべてのコマンドを削除
ホームラン
public void run ()
このスレッドのメイン実行ブロック。
setClearcutClient
public void setClearcutClient (ClearcutClient client)
ハーネスデータを報告するようにクライアントを設定する
パラメータ | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError エラー
public boolean shouldShutdownOnCmdfileError ()
コマンドエラーでスケジューラをシャットダウンする必要がある場合は true を返す
戻り値 | |
---|---|
boolean |
シャットダウン
public void shutdown (boolean notifyStop)
コマンド スケジューラを正常にシャットダウンしてみます。
パラメータ | |
---|---|
notifyStop |
boolean : true の場合、TF シャットダウンの呼び出しを通知します。 |
shutdownHard
public void shutdownHard (boolean killAdb)
コマンド スケジューラの強制シャットダウンを試みます。
shutdown()
に似ていますが、必要に応じて
「インスピレーション」をより迅速に完了できるようになります。
パラメータ | |
---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
コマンド スケジューラの強制シャットダウンを試みます。shutdownHard(true) と同じです。
shutdownOnEmpty
public void shutdownOnEmpty ()
shutdown()
に似ていますが、すべてのコマンドの実行を待機します。
終了です。
いずれかのコマンドがループモードの場合、スケジューラは終了しません。
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
実行中の呼び出しを停止します。
パラメータ | |
---|---|
invocation |
ITestInvocation |
戻り値 | |
---|---|
boolean |
呼び出しが停止した場合は true、それ以外の場合は false |
stopInvocation
public boolean stopInvocation (int invocationId, String cause)
ID を指定して実行中の呼び出しを停止します。
パラメータ | |
---|---|
invocationId |
int : 呼び出しのトラッキング ID。 |
cause |
String : 呼び出しを停止する原因。 |
戻り値 | |
---|---|
boolean |
呼び出しが停止した場合は true、それ以外の場合は false |
スケジュール設定を停止
public void stopScheduling ()
新しいテストのスケジューリングと受け入れを停止しますが、Tradefed は停止しません。これにより、 2 段階のシャットダウン。まず実行中のテストをすべてドレインしてから、Tradefed を終了します。 プロセスです
保護されたメソッド
クリーンアップ
protected void cleanUp ()
ログを閉じて、必要なクリーンアップを行ってから終了します。
単体テストでモックできるように公開されています。
createConfiguration
protected IConfiguration createConfiguration (String[] args)
パラメータ | |
---|---|
args |
String |
戻り値 | |
---|---|
IConfiguration |
例外 | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
戻り値 | |
---|---|
IInvocationContext |
dryRunCommandReporting
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
指定されたコマンドがドライランかどうかを判断します。コマンドがドライランの場合は、検証します。条件 設定に問題がある場合、ConfigurationException がスローされます。
パラメータ | |
---|---|
handler |
ICommandScheduler.IScheduledInvocationListener : ドライラン検証のイベントを報告する ERROR(/InvocationEventHandler) 。 |
config |
IConfiguration |
戻り値 | |
---|---|
void |
コマンドがドライランの場合は true、それ以外の場合は false です。 |
例外 | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
パラメータ | |
---|---|
context |
IInvocationContext |
listener |
ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
|
args |
String |
戻り値 | |
---|---|
long |
例外 | |
---|---|
ConfigurationException |
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
IConfigurationFactory
への参照を取得するためのファクトリ メソッド
戻り値 | |
---|---|
IConfigurationFactory |
使用する IConfigurationFactory |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
戻り値 | |
---|---|
DeviceManagementGrpcServer |
getDeviceManager
protected IDeviceManager getDeviceManager ()
IDeviceManager
への参照を取得するためのファクトリ メソッド
戻り値 | |
---|---|
IDeviceManager |
使用する IDeviceManager |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
IGlobalConfiguration
で宣言された IKeyStoreFactory
を使用して IKeyStoreClient
を取得します。何も定義されていない場合は null を取得します。
戻り値 | |
---|---|
IKeyStoreClient |
IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
戻り値 | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
ddmlib ログを初期化します。
単体テストがモックできるように公開されています。
isShutdown
protected boolean isShutdown ()
戻り値 | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
パラメータ | |
---|---|
manager |
IDeviceManager |