Penjadwal Perintah
public class CommandScheduler
extends Object
implements ICommandScheduler
java.lang.Objek | |
↳ | com.android.tradefed.command.CommandScheduler |
Penjadwal untuk menjalankan perintah TradeFederation di semua perangkat yang tersedia.
Akan mencoba memprioritaskan perintah untuk dijalankan berdasarkan jumlah total waktu eksekusinya. misalnya perintah yang jarang atau berjalan cepat akan diprioritaskan dibandingkan 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, extraArgs) addCommandFile (String cmdFilePath, extraArgs) Menambahkan semua perintah dari file yang diberikan ke penjadwal |
void | await () Menunggu penjadwal mulai berjalan, termasuk menunggu serah terima dari TF lama selesai jika berlaku. |
static TradefedDelegator | checkDelegation (String[] args) Buat delegasi berdasarkan baris perintah untuk melihat apakah kita perlu mendelegasikan proses tersebut. |
static | createReleaseMap ( IInvocationContext context, Throwable e) Buat peta status perangkat sehingga dapat dirilis dengan tepat. |
ISandbox | createSandbox () Buat |
void | displayCommandQueue (PrintWriter printWriter) Keluarkan info debug terperinci tentang status antrian eksekusi perintah. |
void | displayCommandsInfo (PrintWriter printWriter, String regex) Keluarkan 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, reservedDevices, String[] args) execCommand ( ICommandScheduler.IScheduledInvocationListener listener, reservedDevices, String[] args) Langsung jalankan perintah pada perangkat yang sudah dialokasikan. |
long | execCommand ( IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args) Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrian perintah menggunakan |
long | execCommand ( ICommandScheduler.IScheduledInvocationListener listener, String[] args) Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrian perintah. |
CommandFileWatcher | getCommandFileWatcher () Dapatkan CommandFileWatcher yang sesuai untuk penjadwal ini |
int | getExecutingCommandCount () Mengembalikan jumlah Perintah dalam status eksekusi. |
CommandScheduler.HostState | getHostState () |
String | getInvocationInfo (int invocationId) Mengembalikan informasi tentang pemanggilan tetapi menentukan id pemanggilan. |
CommandRunner.ExitCode | getLastInvocationExitCode () Kembalikan kode kesalahan dari pemanggilan terakhir yang dijalankan. |
Throwable | getLastInvocationThrowable () Mengembalikan |
int | getReadyCommandCount () Mengembalikan jumlah Perintah dalam keadaan siap dalam antrian. |
long | getShutdownTimeout () |
boolean | isDeviceInInvocationThread ( ITestDevice device) Mengembalikan nilai benar jika perangkat digunakan oleh thread pemanggilan aktif. |
boolean | isShuttingDown () |
void | notifyFileChanged (File cmdFile, extraArgs) notifyFileChanged (File cmdFile, extraArgs) |
void | removeAllCommands () Hapus semua perintah dari penjadwal |
void | run () Blok eksekusi utama dari thread ini. |
void | setClearcutClient (ClearcutClient client) Atur klien untuk melaporkan data harness |
boolean | shouldShutdownOnCmdfileError () Mengembalikan nilai true jika kita perlu mematikan penjadwal karena kesalahan perintah |
void | shutdown (boolean notifyStop) Cobalah untuk mematikan penjadwal perintah dengan baik. |
void | shutdownHard (boolean killAdb) Mencoba mematikan paksa penjadwal perintah. |
void | shutdownHard () Mencoba mematikan paksa penjadwal perintah. |
void | shutdownOnEmpty () Mirip dengan |
void | start () Memulai penjadwal termasuk pengaturan logging, init |
boolean | stopInvocation ( ITestInvocation invocation) Hentikan pemanggilan yang sedang berjalan. |
boolean | stopInvocation (int invocationId, String cause) Hentikan pemanggilan yang sedang berjalan dengan menentukan idnya. |
void | stopScheduling () Menghentikan penjadwalan dan menerima tes baru tetapi tidak menghentikan Tradefed. |
Konstruktor publik
Penjadwal Perintah
public CommandScheduler ()
Membuat CommandScheduler
.
Catatan: start harus dipanggil sebelum digunakan.
Metode publik
tambahkanPerintah
public Pair<Boolean, Integer> addCommand (String[] args)
Menambahkan perintah ke penjadwal.
Sebuah perintah pada dasarnya adalah sebuah contoh 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 antrian untuk dijalankan.
Parameter | |
---|---|
args | String : argumen konfigurasi. |
Kembali | |
---|---|
Pair <Boolean, Integer> | Sepasang 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, kembalikan 0 ketika perintah ditambahkan untuk semua perangkat, jika tidak -1. |
Melempar | |
---|---|
ConfigurationException |
tambahkanCommandFile
public void addCommandFile (String cmdFilePath,extraArgs)
Menambahkan semua perintah dari file yang diberikan ke penjadwal
Parameter | |
---|---|
cmdFilePath | String : jalur sistem file dari file perintah |
extraArgs | ERROR(/List) argumen String untuk ditambahkan ke setiap perintah yang diurai dari file. Boleh kosong tetapi tidak boleh nol. |
Melempar | |
---|---|
ConfigurationException |
menunggu
public void await ()
Menunggu penjadwal mulai berjalan, termasuk menunggu serah terima dari TF lama selesai jika berlaku.
checkDelegasi
public static TradefedDelegator checkDelegation (String[] args)
Buat delegasi berdasarkan baris perintah untuk melihat apakah kita perlu mendelegasikan proses tersebut.
Parameter | |
---|---|
args | String |
Kembali | |
---|---|
TradefedDelegator |
Melempar | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
buatReleaseMap
public staticcreateReleaseMap (IInvocationContext context, Throwable e)
Buat peta status perangkat sehingga dapat dirilis dengan tepat.
Parameter | |
---|---|
context | IInvocationContext |
e | Throwable |
Kembali | |
---|---|
buatKotak Pasir
public ISandbox createSandbox ()
Buat ISandbox
yang akan digunakan untuk menjalankan pemanggilan.
Kembali | |
---|---|
ISandbox |
tampilanCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
Keluarkan info debug terperinci tentang status antrian eksekusi perintah.
tampilanCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter, String regex)
Keluarkan daftar perintah saat ini.
Parameter | |
---|---|
printWriter | PrintWriter : ERROR(/PrintWriter) yang akan dijadikan output. |
regex | String : ekspresi reguler yang perintahnya harus dicocokkan 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 dijadikan 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 perintahnya harus dicocokkan agar file xml dapat dibuang. Jika null, maka semua perintah akan dibuang. |
perintah eksekutif
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Langsung jalankan perintah pada perangkat yang sudah dialokasikan.
Parameter | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener yang akan diberitahukan |
reservedDevices | ERROR(/List ) ERROR(/List ) menggunakan |
args | String : argumen perintah |
Kembali | |
---|---|
long | Id pemanggilan perintah terjadwal. |
Melempar | |
---|---|
ConfigurationException |
perintah eksekutif
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrian perintah menggunakan IInvocationContext
yang sudah ada.
Parameter | |
---|---|
context | IInvocationContext : IInvocationContext yang sudah ada. |
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener yang akan diberitahukan |
args | String : argumen perintah |
Kembali | |
---|---|
long |
Melempar | |
---|---|
ConfigurationException | |
NoDeviceException |
perintah eksekutif
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
Mengalokasikan perangkat secara langsung dan menjalankan perintah tanpa menambahkannya ke antrian perintah.
Parameter | |
---|---|
listener | ICommandScheduler.IScheduledInvocationListener : ICommandScheduler.IScheduledInvocationListener yang akan diberitahukan |
args | String : argumen perintah |
Kembali | |
---|---|
long | Id pemanggilan perintah terjadwal. |
Melempar | |
---|---|
ConfigurationException | |
NoDeviceException |
dapatkanCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
Dapatkan CommandFileWatcher yang sesuai untuk penjadwal ini
Kembali | |
---|---|
CommandFileWatcher |
dapatkanExecutingCommandCount
public int getExecutingCommandCount ()
Mengembalikan jumlah Perintah dalam status eksekusi.
Kembali | |
---|---|
int |
dapatkanHostState
public CommandScheduler.HostState getHostState ()
Kembali | |
---|---|
CommandScheduler.HostState |
dapatkanInvokasiInfo
public String getInvocationInfo (int invocationId)
Mengembalikan informasi tentang pemanggilan tetapi menentukan id pemanggilan.
Parameter | |
---|---|
invocationId | int : id pelacakan pemanggilan. |
Kembali | |
---|---|
String | Sebuah String yang berisi informasi tentang pemanggilan. |
dapatkanLastInvocationExitCode
public CommandRunner.ExitCode getLastInvocationExitCode ()
Kembalikan kode kesalahan dari pemanggilan terakhir yang dijalankan. Kembalikan 0 (tidak ada kesalahan), jika belum ada pemanggilan yang dijalankan.
Kembali | |
---|---|
CommandRunner.ExitCode |
getLastInvocationThrowable
public Throwable getLastInvocationThrowable ()
Mengembalikan Throwable
dari pemanggilan terakhir yang dijalankan. Kembalikan null, jika tidak ada barang yang dapat dibuang.
Kembali | |
---|---|
Throwable |
dapatkanReadyCommandCount
public int getReadyCommandCount ()
Mengembalikan jumlah Perintah dalam keadaan siap dalam antrian.
Kembali | |
---|---|
int |
dapatkanShutdownTimeout
public long getShutdownTimeout ()
Kembali | |
---|---|
long |
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
Mengembalikan nilai benar jika perangkat digunakan oleh thread pemanggilan aktif.
Parameter | |
---|---|
device | ITestDevice |
Kembali | |
---|---|
boolean |
adalah ShuttingDown
public boolean isShuttingDown ()
Kembali | |
---|---|
boolean |
beri tahuFileChanged
public void notifyFileChanged (File cmdFile,extraArgs)
Parameter | |
---|---|
cmdFile | File |
extraArgs |
hapusSemua Perintah
public void removeAllCommands ()
Hapus semua perintah dari penjadwal
berlari
public void run ()
Blok eksekusi utama dari thread ini.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
Atur klien untuk melaporkan data harness
Parameter | |
---|---|
client | ClearcutClient |
harusShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
Mengembalikan nilai true jika kita perlu mematikan penjadwal karena kesalahan perintah
Kembali | |
---|---|
boolean |
matikan
public void shutdown (boolean notifyStop)
Cobalah untuk mematikan penjadwal perintah dengan baik.
Parameter | |
---|---|
notifyStop | boolean : jika benar, memberitahukan pemanggilan penutupan TF. |
penutupan Keras
public void shutdownHard (boolean killAdb)
Mencoba mematikan paksa penjadwal perintah.
Mirip dengan shutdown()
, tetapi juga secara opsional akan mematikan koneksi adb, dalam upaya untuk 'menginspirasi' pemanggilan yang sedang berlangsung agar selesai lebih cepat.
Parameter | |
---|---|
killAdb | boolean |
penutupan Keras
public void shutdownHard ()
Mencoba mematikan paksa penjadwal perintah. Sama seperti shutdownHard(benar).
shutdownOnEmpty
public void shutdownOnEmpty ()
Mirip dengan shutdown()
, tetapi akan menunggu semua perintah dijalankan sebelum keluar.
stopInvokasi
public boolean stopInvocation (ITestInvocation invocation)
Hentikan pemanggilan yang sedang berjalan.
Parameter | |
---|---|
invocation | ITestInvocation |
Kembali | |
---|---|
boolean | benar jika pemanggilan dihentikan, salah jika sebaliknya |
stopInvokasi
public boolean stopInvocation (int invocationId, String cause)
Hentikan pemanggilan yang sedang berjalan dengan menentukan idnya.
Parameter | |
---|---|
invocationId | int : id pelacakan pemanggilan. |
cause | String : penyebab penghentian pemanggilan. |
Kembali | |
---|---|
boolean | benar jika pemanggilan dihentikan, salah jika sebaliknya |
berhenti Penjadwalan
public void stopScheduling ()
Menghentikan penjadwalan dan menerima tes baru tetapi tidak menghentikan Tradefed. Hal ini dimaksudkan untuk mengaktifkan penghentian dua langkah di mana pertama-tama kita menguras semua pengujian yang sedang berjalan, kemudian menghentikan proses Tradefed.
Metode yang dilindungi
membersihkan
protected void cleanUp ()
Menutup log dan melakukan pembersihan lain yang diperlukan sebelum kita keluar.
Diekspos sehingga pengujian unit dapat diolok-olok.
buatKonfigurasi
protected IConfiguration createConfiguration (String[] args)
Parameter | |
---|---|
args | String |
Kembali | |
---|---|
IConfiguration |
Melempar | |
---|---|
ConfigurationException |
createInvocationContext
protected IInvocationContext createInvocationContext ()
Kembali | |
---|---|
IInvocationContext |
Pelaporan Perintah DryRun
protected void dryRunCommandReporting (ICommandScheduler.IScheduledInvocationListener handler, IConfiguration config)
Menentukan apakah perintah yang diberikan bersifat kering. Jika perintahnya adalah uji coba, validasilah. Jika ada masalah konfigurasi, ConfigurationException akan muncul.
Parameter | |
---|---|
handler | ICommandScheduler.IScheduledInvocationListener : ERROR(/InvocationEventHandler) untuk melaporkan kejadian untuk validasi uji coba. |
config | IConfiguration |
Kembali | |
---|---|
void | benar jika perintahnya adalah uji coba, salah jika sebaliknya. |
Melempar | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |
perintah eksekutif
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener,reservedDevices, String[] args)
Parameter | |
---|---|
context | IInvocationContext |
listener | ICommandScheduler.IScheduledInvocationListener |
reservedDevices | |
args | String |
Kembali | |
---|---|
long |
Melempar | |
---|---|
ConfigurationException |
dapatkanConfigFactory
protected IConfigurationFactory getConfigFactory ()
Metode pabrik untuk mendapatkan referensi ke IConfigurationFactory
Kembali | |
---|---|
IConfigurationFactory | IConfigurationFactory yang akan digunakan |
dapatkanDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
Kembali | |
---|---|
DeviceManagementGrpcServer |
dapatkanDeviceManager
protected IDeviceManager getDeviceManager ()
Metode pabrik untuk mendapatkan referensi ke IDeviceManager
Kembali | |
---|---|
IDeviceManager | IDeviceManager yang akan digunakan |
dapatkanFeatureServer
protected TradefedFeatureServer getFeatureServer ()
Kembali | |
---|---|
TradefedFeatureServer |
dapatkanKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
Mengambil IKeyStoreClient
menggunakan IKeyStoreFactory
yang dideklarasikan di IGlobalConfiguration
atau null jika tidak ada yang ditentukan.
Kembali | |
---|---|
IKeyStoreClient | Klien IKeyStore |
getTestInvocationManagementServer
protected TestInvocationManagementServer getTestInvocationManagementServer ()
Kembali | |
---|---|
TestInvocationManagementServer |
initLogging
protected void initLogging ()
Menginisialisasi log ddmlib.
Diekspos sehingga pengujian unit dapat diolok-olok.
adalah Shutdown
protected boolean isShutdown ()
Kembali | |
---|---|
boolean |
prosesSiapPerintah
protected void processReadyCommands (IDeviceManager manager)
Parameter | |
---|---|
manager | IDeviceManager |