CommandScheduler
public
class
CommandScheduler
extends Thread
implements
ICommandScheduler
| java.lang.Object | ||
| ↳ | java.lang.Thread | |
| ↳ | com.android.tradefed.command.CommandScheduler | |
מתזמן להרצת פקודות TradeFederation בכל המכשירים הזמינים.
המערכת תנסה לתת עדיפות להרצת פקודות על סמך ספירה כוללת של זמן הביצוע שלהן. לדוגמה, פקודות שמופעלות לעיתים רחוקות או במהירות יקבלו עדיפות על פני פקודות שמופעלות למשך זמן ארוך.
פועל ברקע ללא הפסקה עד לכיבוי.
סיכום
constructors ציבוריים | |
|---|---|
CommandScheduler()
יצירת |
|
methods ציבוריים | |
|---|---|
Pair<Boolean, Integer>
|
addCommand(String[] args)
הוספת פקודה למתזמן. |
void
|
addCommandFile(String cmdFilePath, List<String> extraArgs)
מוסיף את כל הפקודות מקובץ נתון למתזמן |
void
|
await()
הפונקציה ממתינה שהמתזמן יתחיל לפעול, כולל המתנה להשלמת ההעברה מ-TF ישן, אם רלוונטי. |
static
TradefedDelegator
|
checkDelegation(String[] args)
יוצרים משתמש שנותן לאחרים הרשאה לניהול שיחות על סמך שורת הפקודה, כדי לבדוק אם צריך להעביר את ההרצה. |
static
Map<ITestDevice, FreeDeviceState>
|
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, ITestDevice device, String[] args)
ביצוע ישיר של פקודה במכשיר שכבר הוקצה. |
long
|
execCommand(IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
מקצה מכשיר ומריץ פקודה ישירות בלי להוסיף אותה לתור הפקודות באמצעות |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, String[] args)
הפקודה מקצה מכשיר באופן ישיר ומריצה פקודה בלי להוסיף אותה לתור הפקודות. |
long
|
execCommand(ICommandScheduler.IScheduledInvocationListener listener, List<ITestDevice> reservedDevices, String[] args)
הפעלה ישירה של פקודה במכשירים שכבר הוקצו. |
CommandFileWatcher
|
getCommandFileWatcher()
קבלת CommandFileWatcher מתאים לתזמן הזה |
int
|
getExecutingCommandCount()
הפונקציה מחזירה את מספר הפקודות במצב הפעלה. |
CommandScheduler.HostState
|
getHostState()
|
String
|
getInvocationInfo(int invocationId)
אפשר להחזיר את המידע על הפעלה על ידי ציון מזהה ההפעלה. |
CommandRunner.ExitCode
|
getLastInvocationExitCode()
הפונקציה מחזירה את קוד השגיאה של ההפעלה האחרונה שהופעלה. |
Throwable
|
getLastInvocationThrowable()
החזרת הערך |
int
|
getReadyCommandCount()
הפונקציה מחזירה את מספר הפקודות במצב מוכן בתור. |
long
|
getShutdownTimeout()
|
boolean
|
isDeviceInInvocationThread(ITestDevice device)
הפונקציה מחזירה את הערך True אם המכשיר נמצא בשימוש על ידי שרשור הפעלה פעיל. |
boolean
|
isShuttingDown()
|
void
|
notifyFileChanged(File cmdFile, List<String> extraArgs)
|
void
|
removeAllCommands()
הסרת כל הפקודות מהמתזמן |
void
|
run()
בלוק הביצוע הראשי של ה-thread הזה. |
void
|
setClearcutClient(ClearcutClient client)
הגדרת הלקוח לדיווח על נתוני harness |
void
|
setMaxPollTime(long polling)
|
void
|
setPrintSchedulingWarning(boolean print)
|
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)
כדי להפסיק הפעלה של פונקציה, מציינים את המזהה שלה. |
void
|
stopScheduling()
הפסקת התזמון והקבלה של בדיקות חדשות, אבל לא הפסקת Tradefed. |
constructors ציבוריים
CommandScheduler
public CommandScheduler ()
יצירת CommandScheduler.
הערה: צריך להפעיל את הפונקציה start לפני השימוש.
methods ציבוריים
addCommand
public Pair<Boolean, Integer> addCommand (String[] args)
הוספת פקודה למתזמן.
פקודה היא בעצם מופע של הגדרה להרצה והארגומנטים שמשויכים אליה.
אם מציינים את הארגומנט "--help", טקסט העזרה של ההגדרה יוצג ב-stdout. אחרת, ההגדרה תתווסף לתור להרצה.
| פרמטרים | |
|---|---|
args |
String: ארגומנטים של ההגדרה. |
| החזרות | |
|---|---|
Pair<Boolean, Integer> |
צמד ערכים, הערך הראשון הוא בוליאני true אם הפקודה נוספה
בהצלחה. הערך השני הוא מזהה מעקב הפקודות הידוע(ערך לא שלילי) אם הפקודה נוספה בהצלחה. הפונקציה מחזירה 0 אם הפקודה נוספה לכל המכשירים, אחרת היא מחזירה -1. |
| הקפצת הודעות שגיאה (throw) | |
|---|---|
ConfigurationException |
|
addCommandFile
public void addCommandFile (String cmdFilePath,
List<String> extraArgs)מוסיף את כל הפקודות מקובץ נתון למתזמן
| פרמטרים | |
|---|---|
cmdFilePath |
String: הנתיב במערכת הקבצים של קובץ הפקודה |
extraArgs |
List: List של String ארגומנטים שיוגדרו להוספה לכל פקודה שנותחה מהקובץ. אפשר להשאיר את השדה ריק, אבל הוא לא יכול להיות null. |
| הקפצת הודעות שגיאה (throw) | |
|---|---|
ConfigurationException |
|
await
public void await ()
הפונקציה ממתינה שהמתזמן יתחיל לפעול, כולל המתנה להשלמת ההעברה מ-TF ישן, אם רלוונטי.
| הקפצת הודעות שגיאה (throw) | |
|---|---|
InterruptedException |
|
checkDelegation
public static TradefedDelegator checkDelegation (String[] args)
יוצרים משתמש שנותן לאחרים הרשאה לניהול שיחות על סמך שורת הפקודה, כדי לבדוק אם צריך להעביר את ההרצה.
| פרמטרים | |
|---|---|
args |
String |
| החזרות | |
|---|---|
TradefedDelegator |
|
| הקפצת הודעות שגיאה (throw) | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|
createReleaseMap
public static Map<ITestDevice, FreeDeviceState> createReleaseMap (IInvocationContext context, Throwable e)
ליצור מפה של מצב המכשירים כדי שניתן יהיה לשחרר אותם בצורה מתאימה.
| פרמטרים | |
|---|---|
context |
IInvocationContext |
e |
Throwable |
| החזרות | |
|---|---|
Map<ITestDevice, FreeDeviceState> |
|
createSandbox
public ISandbox createSandbox ()
יוצרים ISandbox שההפעלה תשתמש בו כדי לפעול.
| החזרות | |
|---|---|
ISandbox |
|
displayCommandQueue
public void displayCommandQueue (PrintWriter printWriter)
הצגת פרטי ניפוי באגים מפורטים על מצב תור הביצוע של הפקודות.
displayCommandsInfo
public void displayCommandsInfo (PrintWriter printWriter,
String regex)הצגת רשימה של הפקודות הנוכחיות.
| פרמטרים | |
|---|---|
printWriter |
PrintWriter: PrintWriter שיוצג בפלט. |
regex |
String: הביטוי הרגולרי שאליו הפקודות צריכות להתאים כדי להדפיס אותן. אם הערך הוא null, כל הפקודות יודפסו. |
displayInvocationsInfo
public void displayInvocationsInfo (PrintWriter printWriter)
מוצגת רשימה של הפעלות נוכחיות.
| פרמטרים | |
|---|---|
printWriter |
PrintWriter: PrintWriter שיוצג בפלט. |
dumpCommandsXml
public void dumpCommandsXml (PrintWriter printWriter,
String regex)מייצאים את קובץ ה-XML המורחב של הפקודה עם כל הערכים של Option שצוינו לכל הפקודות הנוכחיות.
| פרמטרים | |
|---|---|
printWriter |
PrintWriter: PrintWriter שאליו רוצים להוציא את הסטטוס. |
regex |
String: הביטוי הרגולרי שאליו הפקודות צריכות להתאים כדי שקובץ ה-XML יימחק. אם הערך הוא null, כל הפקודות יוצגו. |
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, ITestDevice device, String[] args)
ביצוע ישיר של פקודה במכשיר שכבר הוקצה.
| פרמטרים | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener שצריך לעדכן |
device |
ITestDevice: ITestDevice שבו רוצים להשתמש |
args |
String: הארגומנטים של הפקודה |
| החזרות | |
|---|---|
long |
מזהה ההפעלה של הפקודה המתוזמנת. |
| הקפצת הודעות שגיאה (throw) | |
|---|---|
ConfigurationException |
|
execCommand
public long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, String[] args)
מקצה מכשיר ומריץ פקודה ישירות בלי להוסיף אותה לתור הפקודות באמצעות IInvocationContext שכבר קיים.
| פרמטרים | |
|---|---|
context |
IInvocationContext: IInvocationContext קיים. |
listener |
ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener שצריך לעדכן |
args |
String: הארגומנטים של הפקודה |
| החזרות | |
|---|---|
long |
|
| הקפצת הודעות שגיאה (throw) | |
|---|---|
ConfigurationException |
|
NoDeviceException |
|
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, String[] args)
הפקודה מקצה מכשיר באופן ישיר ומריצה פקודה בלי להוסיף אותה לתור הפקודות.
| פרמטרים | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener שצריך לעדכן |
args |
String: הארגומנטים של הפקודה |
| החזרות | |
|---|---|
long |
מזהה ההפעלה של הפקודה המתוזמנת. |
| הקפצת הודעות שגיאה (throw) | |
|---|---|
ConfigurationException |
|
NoDeviceException |
|
execCommand
public long execCommand (ICommandScheduler.IScheduledInvocationListener listener, List<ITestDevice> reservedDevices, String[] args)
הפעלה ישירה של פקודה במכשירים שכבר הוקצו.
| פרמטרים | |
|---|---|
listener |
ICommandScheduler.IScheduledInvocationListener: ICommandScheduler.IScheduledInvocationListener שצריך לעדכן |
reservedDevices |
List: ERROR(/List שבו רוצים להשתמש |
args |
String: הארגומנטים של הפקודה |
| החזרות | |
|---|---|
long |
מזהה ההפעלה של הפקודה המתוזמנת. |
| הקפצת הודעות שגיאה (throw) | |
|---|---|
ConfigurationException |
|
getCommandFileWatcher
public CommandFileWatcher getCommandFileWatcher ()
קבלת CommandFileWatcher מתאים לתזמן הזה
| החזרות | |
|---|---|
CommandFileWatcher |
|
getExecutingCommandCount
public int getExecutingCommandCount ()
הפונקציה מחזירה את מספר הפקודות במצב הפעלה.
| החזרות | |
|---|---|
int |
|
getInvocationInfo
public String getInvocationInfo (int invocationId)
אפשר להחזיר את המידע על הפעלה על ידי ציון מזהה ההפעלה.
| פרמטרים | |
|---|---|
invocationId |
int: מזהה המעקב של הקריאה. |
| החזרות | |
|---|---|
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 |
|
isDeviceInInvocationThread
public boolean isDeviceInInvocationThread (ITestDevice device)
הפונקציה מחזירה את הערך True אם המכשיר נמצא בשימוש על ידי שרשור הפעלה פעיל.
| פרמטרים | |
|---|---|
device |
ITestDevice |
| החזרות | |
|---|---|
boolean |
|
isShuttingDown
public boolean isShuttingDown ()
| החזרות | |
|---|---|
boolean |
|
notifyFileChanged
public void notifyFileChanged (File cmdFile,
List<String> extraArgs)| פרמטרים | |
|---|---|
cmdFile |
File |
extraArgs |
List |
removeAllCommands
public void removeAllCommands ()
הסרת כל הפקודות מהמתזמן
ראן
public void run ()
בלוק הביצוע הראשי של ה-thread הזה.
setClearcutClient
public void setClearcutClient (ClearcutClient client)
הגדרת הלקוח לדיווח על נתוני harness
| פרמטרים | |
|---|---|
client |
ClearcutClient |
setMaxPollTime
public void setMaxPollTime (long polling)
| פרמטרים | |
|---|---|
polling |
long |
setPrintSchedulingWarning
public void setPrintSchedulingWarning (boolean print)
| פרמטרים | |
|---|---|
print |
boolean |
shouldShutdownOnCmdfileError
public boolean shouldShutdownOnCmdfileError ()
הפונקציה מחזירה את הערך True אם צריך להשבית את מתזמן המשימות בגלל שגיאות בפקודה
| החזרות | |
|---|---|
boolean |
|
כיבוי
public void shutdown (boolean notifyStop)
מנסים לבצע כיבוי תקין של מתזמן הפקודות.
| פרמטרים | |
|---|---|
notifyStop |
boolean: אם הערך הוא true, נשלחת הודעה על הפעלות של כיבוי TF. |
shutdownHard
public void shutdownHard (boolean killAdb)
לנסות לכבות בכוח את מתזמן הפקודות.
דומה ל-shutdown(), אבל גם ינסה להפסיק את החיבור ל-adb, כדי לזרז את השלמת ההפעלה של הפונקציות.
| פרמטרים | |
|---|---|
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)כדי להפסיק הפעלה של פונקציה, מציינים את המזהה שלה.
| פרמטרים | |
|---|---|
invocationId |
int: מזהה המעקב של הקריאה. |
cause |
String: הסיבה להפסקת ההפעלה. |
| החזרות | |
|---|---|
boolean |
true אם ההפעלה הופסקה, אחרת false |
stopScheduling
public void stopScheduling ()
הפסקת התזמון והקבלה של בדיקות חדשות, אבל לא הפסקת Tradefed. המטרה היא לאפשר כיבוי בשני שלבים, שבו קודם מרוקנים את כל הבדיקות הפועלות ואז מסיימים את התהליך של Tradefed.
שיטות מוגנות
cleanUp
protected void cleanUp ()
הפונקציה סוגרת את היומנים ומבצעת ניקוי נתונים נחוץ אחר לפני היציאה.
המאפיין הזה חשוף כדי שבדיקות יחידה יוכלו לבצע מוקינג.
createConfiguration
protected IConfiguration createConfiguration (String[] args)
| פרמטרים | |
|---|---|
args |
String |
| החזרות | |
|---|---|
IConfiguration |
|
| הקפצת הודעות שגיאה (throw) | |
|---|---|
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. |
| הקפצת הודעות שגיאה (throw) | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|
execCommand
protected long execCommand (IInvocationContext context, ICommandScheduler.IScheduledInvocationListener listener, List<ITestDevice> reservedDevices, String[] args)
| פרמטרים | |
|---|---|
context |
IInvocationContext |
listener |
ICommandScheduler.IScheduledInvocationListener |
reservedDevices |
List |
args |
String |
| החזרות | |
|---|---|
long |
|
| הקפצת הודעות שגיאה (throw) | |
|---|---|
ConfigurationException |
|
getConfigFactory
protected IConfigurationFactory getConfigFactory ()
שיטת Factory לקבלת הפניה אל IConfigurationFactory
| החזרות | |
|---|---|
IConfigurationFactory |
IConfigurationFactory לשימוש |
getDeviceManagementServer
protected DeviceManagementGrpcServer getDeviceManagementServer ()
| החזרות | |
|---|---|
DeviceManagementGrpcServer |
|
getDeviceManager
protected IDeviceManager getDeviceManager ()
שיטת Factory לקבלת הפניה אל IDeviceManager
| החזרות | |
|---|---|
IDeviceManager |
IDeviceManager לשימוש |
getKeyStoreClient
protected IKeyStoreClient getKeyStoreClient ()
מאחזר IKeyStoreClient באמצעות IKeyStoreFactory שהוגדר ב-ERROR(/IGlobalConfiguration), או 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 |
shouldMarkReleased
protected boolean shouldMarkReleased ()
| החזרות | |
|---|---|
boolean |
|