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 untuk dijalankan berdasarkan total jumlah waktu eksekusinya. Misalnya, perintah yang jarang atau berjalan cepat 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 pendelegasi berdasarkan command line untuk melihat apakah kita perlu mendelegasikan operasi. |
static
|
createReleaseMap(IInvocationContext context, Throwable e)
Buat peta status perangkat agar dapat dirilis 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)
Buang file xml yang diperluas untuk perintah dengan semua
nilai |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Langsung jalankan perintah di perangkat yang telah dialokasikan. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener,
Jalankan perintah secara langsung di perangkat yang telah 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)
Langsung mengalokasikan perangkat dan mengeksekusi perintah tanpa menambahkannya ke antrean perintah. |
CommandFileWatcher
|
getCommandFileWatcher()
Mendapatkan CommandFileWatcher yang sesuai untuk penjadwal ini |
int
|
getExecutingCommandCount()
Menampilkan jumlah Perintah dalam status eksekusi. |
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()
Hapus semua perintah dari penjadwal |
void
|
run()
Blok eksekusi utama dari thread ini. |
void
|
setClearcutClient(ClearcutClient client)
Menetapkan klien untuk melaporkan data harness |
boolean
|
shouldShutdownOnCmdfileError()
Menampilkan true jika kita perlu menonaktifkan penjadwal saat terjadi error perintah |
void
|
shutdown(boolean notifyStop)
Mencoba menonaktifkan penjadwal perintah dengan tuntas. |
void
|
shutdownHard(boolean killAdb)
Mencoba menonaktifkan penjadwal perintah secara paksa. |
void
|
shutdownHard()
Mencoba mematikan penjadwal perintah secara paksa. |
void
|
shutdownOnEmpty()
Mirip dengan |
void
|
start()
Memulai penjadwal termasuk penyiapan 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()
Berhenti menjadwalkan dan menerima 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> |
Sepasang nilai, nilai pertama adalah true Boolean jika perintah berhasil ditambahkan. Nilai kedua adalah id pelacak perintah yang diketahui(nilai non-negatif) jika
perintah berhasil ditambahkan, tampilkan 0 saat perintah ditambahkan untuk semua perangkat, jika tidak
-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. Dapat kosong, tetapi tidak boleh null. |
Menampilkan | |
---|---|
ConfigurationException |
await
public void await ()
Menunggu penjadwal mulai berjalan, termasuk menunggu penyelesaian pengalihan dari TF lama jika berlaku.
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
Buat delegator berdasarkan command line untuk melihat apakah kita perlu mendelegasikan operasi.
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 dirilis 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)
Menghasilkan 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 menghasilkan output. |
regex |
String : ekspresi reguler yang harus dicocokkan dengan perintah agar dapat
dicetak. Jika null, maka semua perintah akan dicetak. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
Menampilkan daftar pemanggilan saat ini.
Parameter | |
---|---|
printWriter |
PrintWriter : ERROR(/PrintWriter) yang akan menghasilkan output. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter, String regex)
Buang 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 di-dump. Jika null, semua perintah akan di-dump. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
Langsung jalankan perintah di perangkat yang telah 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)
Jalankan perintah secara langsung di perangkat yang telah 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 |
{i>execCommand<i}
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Secara langsung mengalokasikan perangkat 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 ()
Mendapatkan CommandFileWatcher yang sesuai untuk penjadwal ini
Hasil | |
---|---|
CommandFileWatcher |
getExecutingCommandCount
public int getExecutingCommandCount ()
Menampilkan jumlah Perintah dalam status eksekusi.
Hasil | |
---|---|
int |
getInvocationInfo
public String getInvocationInfo (int invocationId)
Menampilkan informasi tentangbu pemanggilan yang 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 (tidak ada error), jika belum ada pemanggilan yang dijalankan.
Hasil | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Menampilkan Throwable
dari pemanggilan terakhir yang berjalan.
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 |
Mematikan
public boolean isShuttingDown ()
Hasil | |
---|---|
boolean |
AlertsFileChange
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 dari thread ini.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Menetapkan klien untuk melaporkan data harness
Parameter | |
---|---|
client |
ClearcutClient |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Menampilkan true jika kita perlu menonaktifkan penjadwal saat terjadi error perintah
Hasil | |
---|---|
boolean |
shutdown
public void shutdown (boolean notifyStop)
Mencoba mematikan penjadwal perintah dengan baik.
Parameter | |
---|---|
notifyStop |
boolean : jika true (benar), memberi tahu panggilan penonaktifan TF. |
shutdownHard
public void shutdownHard (boolean killAdb)
Mencoba menonaktifkan penjadwal perintah secara paksa.
Serupa dengan shutdown()
, tetapi juga akan menghentikan koneksi adb secara opsional, dalam
upaya untuk 'menginspirasi' pemanggilan yang sedang berlangsung agar selesai lebih cepat.
Parameter | |
---|---|
killAdb |
boolean |
shutdownHard
public void shutdownHard ()
Mencoba menonaktifkan 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.
stopInvocation
public boolean stopInvocation (ITestInvocation invocation)
Menghentikan pemanggilan yang sedang berjalan.
Parameter | |
---|---|
invocation |
ITestInvocation |
Hasil | |
---|---|
boolean |
true jika pemanggilan dihentikan, false 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 |
true jika panggilan dihentikan, false jika tidak |
stopScheduling
public void stopScheduling ()
Berhenti menjadwalkan dan menerima pengujian baru, tetapi tidak menghentikan Tradefed. Hal ini dimaksudkan untuk mengaktifkan penonaktifan dua langkah, yaitu pertama-tama kita menghabiskan 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 meniru.
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 adalah uji coba. Jika perintah adalah uji coba, validasi perintah tersebut. Jika ada masalah konfigurasi, ConfigurationException akan ditampilkan.
Parameter | |
---|---|
handler |
ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) untuk melaporkan peristiwa untuk validasi uji coba. |
config |
IConfiguration |
Hasil | |
---|---|
void |
benar jika perintah adalah dry run, salah jika tidak. |
Menampilkan | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
{i>execCommand<i}
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 |
KlienIKeyStore |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Hasil | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Menginisialisasi log ddmlib.
Ditampilkan agar pengujian unit dapat mengejek.
isShutdown
protected boolean isShutdown ()
Hasil | |
---|---|
boolean |
processReadyCommands
protected void processReadyCommands (IDeviceManager manager)
Parameter | |
---|---|
manager |
IDeviceManager |