CommandScheduler
public
class
CommandScheduler
extends Object
implements
ICommandScheduler
| java.lang.Object | |
| ↳ | com.android.tradefed.command.CommandScheduler |
Penjadwal untuk menjalankan perintah TradeFederation di semua perangkat yang tersedia.
Akan mencoba memprioritaskan perintah yang akan dijalankan berdasarkan total jumlah waktu eksekusinya. Misalnya, perintah yang jarang atau cepat dijalankan akan diprioritaskan daripada perintah yang berjalan lama.
Berjalan selamanya di latar belakang hingga dimatikan.
Ringkasan
Konstruktor publik | |
|---|---|
CommandScheduler()
Membuat |
|
Metode publik | |
|---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
Menambahkan perintah ke penjadwal. |
void
|
addCommandFile(String cmdFilePath,
Menambahkan semua perintah dari file tertentu ke penjadwal |
void
|
await()
Menunggu penjadwal mulai berjalan, termasuk menunggu penyerahan dari TF lama selesai jika berlaku. |
static
TradefedDelegator
|
checkDelegation(String[] args)
Buat delegator berdasarkan command line untuk melihat apakah kita perlu mendelegasikan run. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Buat peta status perangkat agar dapat dilepaskan dengan tepat. |
ISandbox
|
createSandbox()
Buat |
void
|
displayCommandQueue(PrintWriter printWriter)
Menampilkan info debug mendetail tentang status antrean eksekusi perintah. |
void
|
displayCommandsInfo(PrintWriter printWriter, String regex)
Menampilkan daftar perintah saat ini. |
void
|
displayInvocationsInfo(PrintWriter printWriter)
Menampilkan daftar pemanggilan saat ini. |
void
|
dumpCommandsXml(PrintWriter printWriter, String regex)
Buat file xml yang diperluas untuk perintah dengan semua nilai |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Menjalankan perintah secara langsung di perangkat yang sudah dialokasikan. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Menjalankan perintah secara langsung di perangkat yang sudah dialokasikan. |
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah
menggunakan |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah. |
CommandFileWatcher
|
getCommandFileWatcher()
Dapatkan CommandFileWatcher yang sesuai untuk penjadwal ini |
int
|
getExecutingCommandCount()
Menampilkan jumlah Perintah dalam status yang sedang dieksekusi. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
Menampilkan informasi tentang pemanggilan dengan menentukan ID pemanggilan. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
Menampilkan kode error dari pemanggilan terakhir yang dijalankan. |
Throwable
|
getLastInvocationThrowable()
Menampilkan |
int
|
getReadyCommandCount()
Menampilkan jumlah Perintah dalam status siap di antrean. |
long
|
getShutdownTimeout()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
Menampilkan nilai benar jika perangkat digunakan oleh thread pemanggilan aktif. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile,
|
void
|
removeAllCommands()
Menghapus semua perintah dari penjadwal |
void
|
run()
Blok eksekusi utama thread ini. |
void
|
setClearcutClient(ClearcutClient client)
Menetapkan klien untuk melaporkan data harness |
void
|
setMaxPollTime(long polling)
|
void
|
setPrintSchedulingWarning(boolean print)
|
boolean
|
shouldShutdownOnCmdfileError()
Menampilkan benar jika kita perlu mematikan penjadwal saat terjadi error perintah |
void
|
shutdown(boolean notifyStop)
Mencoba mematikan penjadwal perintah dengan tuntas. |
void
|
shutdownHard(boolean killAdb)
Mencoba mematikan penjadwal perintah secara paksa. |
void
|
shutdownHard()
Mencoba mematikan penjadwal perintah secara paksa. |
void
|
shutdownOnEmpty()
Mirip dengan |
void
|
start()
Memulai penjadwal, termasuk menyiapkan logging, inisialisasi |
boolean
|
stopInvocation(ITestInvocation invocation)
Menghentikan pemanggilan yang sedang berjalan. |
boolean
|
stopInvocation(int invocationId, String cause)
Hentikan pemanggilan yang sedang berjalan dengan menentukan ID-nya. |
void
|
stopScheduling()
Menghentikan penjadwalan dan penerimaan pengujian baru, tetapi tidak menghentikan Tradefed. |
Konstruktor publik
CommandScheduler
public CommandScheduler ()
Membuat CommandScheduler.
Catatan: start harus dipanggil sebelum digunakan.
Metode publik
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
Menambahkan perintah ke penjadwal.
Perintah pada dasarnya adalah instance konfigurasi yang akan dijalankan dan argumen terkaitnya.
Jika argumen "--help" ditentukan, teks bantuan untuk konfigurasi akan ditampilkan ke stdout. Jika tidak, konfigurasi akan ditambahkan ke antrean untuk dijalankan.
| Parameter | |
|---|---|
args |
String: argumen konfigurasi. |
| Hasil | |
|---|---|
Pair<Boolean, Integer> |
Pasangan nilai, nilai pertama adalah Boolean true jika perintah berhasil ditambahkan. Nilai kedua adalah ID pelacak perintah yang diketahui(nilai non-negatif) jika
perintah berhasil ditambahkan, menampilkan 0 jika perintah ditambahkan untuk semua perangkat, atau
-1. |
| Menampilkan | |
|---|---|
ConfigurationException |
|
addCommandFile
public void addCommandFile (String cmdFilePath,
extraArgs) Menambahkan semua perintah dari file tertentu ke penjadwal
| Parameter | |
|---|---|
cmdFilePath |
String: jalur sistem file file perintah |
extraArgs |
: ERROR(/List) argumen String yang akan ditambahkan ke setiap perintah yang diuraikan
dari file. Boleh kosong, tetapi tidak boleh null. |
| Menampilkan | |
|---|---|
ConfigurationException |
|
menunggu
public void await ()
Menunggu penjadwal mulai berjalan, termasuk menunggu penyerahan dari TF lama selesai jika berlaku.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Buat delegator berdasarkan command line untuk melihat apakah kita perlu mendelegasikan run.
| Parameter | |
|---|---|
args |
String |
| Hasil | |
|---|---|
TradefedDelegator |
|
| Menampilkan | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|
createReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Buat peta status perangkat agar dapat dilepaskan dengan tepat.
| Parameter | |
|---|---|
context |
IInvocationContext |
e |
Throwable |
| Hasil | |
|---|---|
|
|
createSandbox
public ISandbox createSandbox ()
Buat ISandbox yang akan digunakan pemanggilan untuk dijalankan.
| Hasil | |
|---|---|
ISandbox |
|
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Menampilkan info debug mendetail tentang status antrean eksekusi perintah.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter,
String regex)Menampilkan daftar perintah saat ini.
| Parameter | |
|---|---|
printWriter |
PrintWriter: ERROR(/PrintWriter) yang akan ditampilkan. |
regex |
String: ekspresi reguler yang harus dicocokkan dengan perintah agar dapat
dicetak. Jika null, semua perintah akan dicetak. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Menampilkan daftar pemanggilan saat ini.
| Parameter | |
|---|---|
printWriter |
PrintWriter: ERROR(/PrintWriter) yang akan ditampilkan. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter,
String regex)Buat file xml yang diperluas untuk perintah dengan semua nilai Option yang ditentukan untuk semua perintah saat ini.
| Parameter | |
|---|---|
printWriter |
PrintWriter: ERROR(/PrintWriter) untuk menampilkan status. |
regex |
String: ekspresi reguler yang harus dicocokkan dengan perintah agar file XML dapat di-dump. Jika null, semua perintah akan di-dump. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Menjalankan perintah secara langsung di perangkat yang sudah dialokasikan.
| Parameter | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu |
device |
ITestDevice: ITestDevice yang akan digunakan |
args |
String: argumen perintah |
| Hasil | |
|---|---|
long |
ID pemanggilan perintah terjadwal. |
| Menampilkan | |
|---|---|
ConfigurationException |
|
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Menjalankan perintah secara langsung di perangkat yang sudah dialokasikan.
| Parameter | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu |
reservedDevices |
: ERROR(/List yang akan digunakan |
args |
String: argumen perintah |
| Hasil | |
|---|---|
long |
ID pemanggilan perintah terjadwal. |
| Menampilkan | |
|---|---|
ConfigurationException |
|
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah
menggunakan IInvocationContext yang sudah ada.
| Parameter | |
|---|---|
context |
IInvocationContext: IInvocationContext yang ada. |
listener |
ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu |
args |
String: argumen perintah |
| Hasil | |
|---|---|
long |
|
| Menampilkan | |
|---|---|
ConfigurationException |
|
NoDeviceException |
|
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrean perintah.
| Parameter | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener yang akan diberi tahu |
args |
String: argumen perintah |
| Hasil | |
|---|---|
long |
ID pemanggilan perintah terjadwal. |
| Menampilkan | |
|---|---|
ConfigurationException |
|
NoDeviceException |
|
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Dapatkan CommandFileWatcher yang sesuai untuk penjadwal ini
| Hasil | |
|---|---|
CommandFileWatcher |
|
getExecutingCommandCount
public int getExecutingCommandCount ()
Menampilkan jumlah Perintah dalam status yang sedang dieksekusi.
| Hasil | |
|---|---|
int |
|
getInvocationInfo
public String getInvocationInfo (int invocationId)
Menampilkan informasi tentang pemanggilan dengan menentukan ID pemanggilan.
| Parameter | |
|---|---|
invocationId |
int: ID pelacakan pemanggilan. |
| Hasil | |
|---|---|
String |
String yang berisi informasi tentang pemanggilan. |
getLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Menampilkan kode error dari pemanggilan terakhir yang dijalankan. Menampilkan 0 (tanpa error), jika belum ada pemanggilan yang dijalankan.
| Hasil | |
|---|---|
CommandRunner.ExitCode |
|
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Menampilkan Throwable dari pemanggilan terakhir yang dijalankan.
Menampilkan null, jika tidak ada throwable yang tersedia.
| Hasil | |
|---|---|
Throwable |
|
getReadyCommandCount
public int getReadyCommandCount ()
Menampilkan jumlah Perintah dalam status siap di antrean.
| Hasil | |
|---|---|
int |
|
getShutdownTimeout
public long getShutdownTimeout ()
| Hasil | |
|---|---|
long |
|
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Menampilkan nilai benar jika perangkat digunakan oleh thread pemanggilan aktif.
| Parameter | |
|---|---|
device |
ITestDevice |
| Hasil | |
|---|---|
boolean |
|
isShuttingDown
public boolean isShuttingDown ()
| Hasil | |
|---|---|
boolean |
|
notifyFileChanged
public void notifyFileChanged (File cmdFile,
extraArgs) | Parameter | |
|---|---|
cmdFile |
File |
extraArgs |
|
removeAllCommands
public void removeAllCommands ()
Menghapus semua perintah dari penjadwal
lari
public void run ()
Blok eksekusi utama thread ini.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Menetapkan klien untuk melaporkan data harness
| Parameter | |
|---|---|
client |
ClearcutClient |
setMaxPollTime
public void setMaxPollTime (long polling)
| Parameter | |
|---|---|
polling |
long |
setPrintSchedulingWarning
public void setPrintSchedulingWarning (boolean print)
| Parameter | |
|---|---|
print |
boolean |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Menampilkan benar jika kita perlu mematikan penjadwal saat terjadi error perintah
| Hasil | |
|---|---|
boolean |
|
shutdown
public void shutdown (boolean notifyStop)
Mencoba mematikan penjadwal perintah dengan tuntas.
| Parameter | |
|---|---|
notifyStop |
boolean: jika benar, akan memberi tahu pemanggilan penonaktifan TF. |
shutdownHard
public void shutdownHard (boolean killAdb)
Mencoba mematikan penjadwal perintah secara paksa.
Mirip dengan shutdown(), tetapi juga akan menghentikan koneksi adb secara opsional, dalam upaya untuk 'mendorong' pemanggilan yang sedang berlangsung agar selesai lebih cepat.
| Parameter | |
|---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Mencoba mematikan penjadwal perintah secara paksa. Sama seperti shutdownHard(true).
shutdownOnEmpty
public void shutdownOnEmpty ()
Mirip dengan shutdown(), tetapi akan menunggu semua perintah dieksekusi
sebelum keluar.
Perhatikan bahwa jika ada perintah dalam mode loop, penjadwal tidak akan pernah keluar.
start
public void start ()
Memulai penjadwal, termasuk menyiapkan logging, inisialisasi DeviceManager, dll.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Menghentikan pemanggilan yang sedang berjalan.
| Parameter | |
|---|---|
invocation |
ITestInvocation |
| Hasil | |
|---|---|
boolean |
benar jika pemanggilan dihentikan, salah jika tidak |
stopInvocation
public boolean stopInvocation (int invocationId,
String cause)Hentikan pemanggilan yang sedang berjalan dengan menentukan ID-nya.
| Parameter | |
|---|---|
invocationId |
int: ID pelacakan pemanggilan. |
cause |
String: penyebab penghentian pemanggilan. |
| Hasil | |
|---|---|
boolean |
benar jika pemanggilan dihentikan, salah jika tidak |
stopScheduling
public void stopScheduling ()
Menghentikan penjadwalan dan penerimaan pengujian baru, tetapi tidak menghentikan Tradefed. Tindakan ini dimaksudkan untuk mengaktifkan penonaktifan dua langkah, yang pertama menghentikan semua pengujian yang sedang berjalan, lalu menghentikan proses Tradefed.
Metode yang dilindungi
cleanUp
protected void cleanUp ()
Menutup log dan melakukan pembersihan lain yang diperlukan sebelum kita keluar.
Diekspos sehingga pengujian unit dapat melakukan mocking.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
| Parameter | |
|---|---|
args |
String |
| Hasil | |
|---|---|
IConfiguration |
|
| Menampilkan | |
|---|---|
ConfigurationException |
|
createInvocationContext
protected IInvocationContext createInvocationContext ()
| Hasil | |
|---|---|
IInvocationContext |
|
dryRunCommandReporting
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Menentukan apakah perintah tertentu merupakan uji coba. Jika perintah adalah uji coba, validasikan perintah tersebut. Jika ada masalah konfigurasi, ConfigurationException akan ditampilkan.
| Parameter | |
|---|---|
handler |
ICommandScheduler.IScheduledInvocationListener: ERROR(/InvocationEventHandler) untuk melaporkan peristiwa validasi uji coba. |
config |
IConfiguration |
| Hasil | |
|---|---|
void |
benar jika perintah adalah uji coba, salah jika tidak. |
| Menampilkan | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
| Parameter | |
|---|---|
context |
IInvocationContext |
listener |
ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
|
args |
String |
| Hasil | |
|---|---|
long |
|
| Menampilkan | |
|---|---|
ConfigurationException |
|
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
Metode factory untuk mendapatkan referensi ke IConfigurationFactory
| Hasil | |
|---|---|
IConfigurationFactory |
IConfigurationFactory yang akan digunakan |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
| Hasil | |
|---|---|
DeviceManagementGrpcServer |
|
getDeviceManager
protected IDeviceManager getDeviceManager ()
Metode factory untuk mendapatkan referensi ke IDeviceManager
| Hasil | |
|---|---|
IDeviceManager |
IDeviceManager yang akan digunakan |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Mengambil IKeyStoreClient menggunakan IKeyStoreFactory yang dideklarasikan di IGlobalConfiguration atau null jika tidak ada yang ditentukan.
| Hasil | |
|---|---|
IKeyStoreClient |
IKeyStoreClient |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
| Hasil | |
|---|---|
TestInvocationManagementServer |
|
initLogging
protected void initLogging ()
Menginisialisasi log ddmlib.
Diekspos sehingga pengujian unit dapat melakukan mocking.
isShutdown
protected boolean isShutdown ()
| Hasil | |
|---|---|
boolean |
|
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
| Parameter | |
|---|---|
manager |
IDeviceManager |