InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
แยกวิเคราะห์ผลลัพธ์ของ "โหมดเอาต์พุต protoStd" ของการทดสอบการวัดคุมที่เรียกใช้จาก Shell และแจ้งผลลัพธ์ให้ 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(InstrumentationProtoResultParserState.NOT_STARTED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED InstrumentationProtoResultParserState.NOT_STARTED) เมื่อเห็นสถานะกรณีทดสอบแรก ระบบจะเปลี่ยนไปเป็นERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING) สถานะจะเปลี่ยนเป็น ERROR(InstrumentationProtoResultParserState.FINISHED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED InstrumentationProtoResultParserState.FINISHED) หากการทดสอบทั้งหมดเสร็จสมบูรณ์ หรือ ERROR(InstrumentationProtoResultParserState.CANCELLED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED InstrumentationProtoResultParserState.CANCELLED) หากมีการขอโดยการเรียกใช้ cancel()
ทุกครั้งที่มีสถานะการทดสอบใหม่ ผู้ฟังที่ลงทะเบียนไว้จะได้รับแจ้ง
สรุป
เครื่องมือสร้างสาธารณะ | |
|---|---|
InstrumentationProtoResultParser(String runName, Collection<ITestRunListener> listeners)
โครงสร้าง |
|
เมธอดสาธารณะ | |
|---|---|
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,
Collection<ITestRunListener> listeners)โครงสร้าง InstrumentationProtoResultParser
| พารามิเตอร์ | |
|---|---|
runName |
String: ชื่อการทดสอบเพื่อระบุต่อ ITestRunListener.testRunStarted |
listeners |
Collection: ได้รับแจ้งผลการทดสอบขณะที่การทดสอบกำลังดำเนินการ |
เมธอดสาธารณะ
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 หากเกิดข้อขัดข้องระหว่างการดำเนินการทดสอบ
| พารามิเตอร์ | |
|---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
วิธียกเลิกเพื่อหยุดการดำเนินการคำสั่งเชลล์ระยะไกล
| การคืนสินค้า | |
|---|---|
boolean |
จริงเพื่อยกเลิกการดำเนินการคำสั่ง |