InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
แยกวิเคราะห์ผลลัพธ์ "โหมดเอาต์พุต protoStd" ของการทดสอบเครื่องมือที่เรียกใช้จากเชลล์และแจ้งผลลัพธ์ให้ ITestRunListener ทราบ
คำสั่งเครื่องมือที่มีตัวเลือก "-m" จะแสดงสถานะการดำเนินการทดสอบในรูปแบบ protobuf แบบไบนารี
ทีละรายการ ข้อความ Protobuf เอาต์พุตคือ InstrumentationData.Session ซึ่งมี 2
ฟิลด์ ได้แก่ 1) ฟิลด์ที่ซ้ำได้ของ InstrumentationData.TestStatus และ 2) InstrumentationData.SessionStatus คำสั่งเครื่องมือ am จะแสดงข้อความสถานะการทดสอบ
ก่อน/หลังการทดสอบแต่ละครั้ง addOutput(byte, int, int) จะเรียกใช้ด้วยอาร์กิวเมนต์ data
ซึ่งเป็นไบต์ที่จัดลำดับแล้วของ TestStatus(es) เมื่อการทดสอบทั้งหมดเสร็จสิ้นแล้ว คำสั่ง
จะแสดงผล SessionStatus ในที่สุด
ดูคำจำกัดความ protobuf ทั้งหมดได้ที่ https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto
InstrumentationProtoResultParser เป็นเครื่องสถานะและมีการกำหนดสถานะใน ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState) โดยสถานะจะขึ้นต้นด้วย ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED) เมื่อเห็นสถานะกรณีทดสอบแรก ระบบจะย้ายไปที่ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING) สถานะจะเปลี่ยนเป็น ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) หากการทดสอบทั้งหมดเสร็จสมบูรณ์ หรือ ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) หากมีการขอโดยการเรียกใช้ cancel()
ทุกครั้งที่มีสถานะการทดสอบใหม่ ผู้ฟังที่ลงทะเบียนจะได้รับแจ้ง
สรุป
เครื่องมือสร้างสาธารณะ | |
|---|---|
InstrumentationProtoResultParser(String runName,
โครงสร้าง |
|
เมธอดสาธารณะ | |
|---|---|
void
|
addOutput(byte[] data, int offset, int length)
ระบบจะเรียกใช้เมธอดนี้ทุกครั้งที่มีข้อมูลใหม่ |
void
|
cancel()
คำขอยกเลิกการทดสอบ |
void
|
flush()
เรียกใช้เมื่อสิ้นสุดการดำเนินการกระบวนการ (เว้นแต่จะยกเลิกกระบวนการ) |
void
|
handleTestRunFailed(String errorMsg)
ระบบจะเรียกใช้เมธอดนี้เมื่อคำสั่ง "am instrument" ขัดข้องพร้อมข้อยกเว้น |
boolean
|
isCancelled()
วิธียกเลิกเพื่อหยุดการดำเนินการคำสั่งเชลล์ระยะไกล |
เครื่องมือสร้างสาธารณะ
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,
listeners) โครงสร้าง InstrumentationProtoResultParser
| พารามิเตอร์ | |
|---|---|
runName |
String: ชื่อการทดสอบเพื่อระบุต่อ ITestRunListener.testRunStarted |
listeners |
: ได้รับแจ้งผลการทดสอบขณะที่การทดสอบดำเนินการอยู่ |
เมธอดสาธารณะ
addOutput
public void addOutput (byte[] data,
int offset,
int length)ระบบจะเรียกใช้วิธีนี้ทุกครั้งที่มีข้อมูลใหม่
| พารามิเตอร์ | |
|---|---|
data |
byte: ข้อมูลที่แปลงเป็นอนุกรมของข้อความ InstrumentationData.Session หาก data
เป็นก้อนข้อมูลที่ไม่สมบูรณ์ ระบบจะเพิ่มก้อนข้อมูลดังกล่าวลงในบัฟเฟอร์ภายในและจะประมวลผลใน
การเรียกใช้ addOutput(byte, int, int) ครั้งถัดไป |
offset |
int: ออฟเซ็ตของข้อมูลใหม่ที่จัดเก็บไว้ใน data |
length |
int: ไบต์ของข้อมูลใหม่ใน data ที่จะประมวลผล |
ยกเลิก
public void cancel ()
คำขอยกเลิกการทดสอบ
ล้าง
public void flush ()
เรียกใช้เมื่อสิ้นสุดการดำเนินการกระบวนการ (เว้นแต่จะยกเลิกกระบวนการ) ซึ่งช่วยให้ ผู้รับสามารถสิ้นสุดและล้างข้อมูลที่ยังไม่ได้ประมวลผล
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
ระบบจะเรียกใช้เมธอดนี้เมื่อคำสั่ง "am instrument" ขัดข้องพร้อมข้อยกเว้น ผู้ฟังที่ลงทะเบียนทั้งหมดควรได้รับการแจ้งเตือน ITestRunListener.testRunFailed ตามด้วย ITestRunListener.testRunEnded(long, หากเกิดข้อขัดข้องระหว่างการทดสอบ
| พารามิเตอร์ | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
วิธียกเลิกเพื่อหยุดการดำเนินการคำสั่งเชลล์ระยะไกล
| คิกรีเทิร์น | |
|---|---|
boolean |
true เพื่อยกเลิกการดำเนินการคำสั่ง |