InstrumentationProtoResultParser

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

java.lang.Object
   ↳ com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser


Phân tích cú pháp kết quả "chế độ đầu ra protoStd" của một lần chạy kiểm thử đo lường từ shell và thông báo cho ITestRunListener về kết quả.

Lệnh am instrument có tuỳ chọn "-m" sẽ xuất trạng thái thực thi kiểm thử ở định dạng protobuf nhị phân theo gia số. Thông báo protobuf đầu ra là InstrumentationData.Session, có 2 trường: 1) một trường lặp lại của InstrumentationData.TestStatus, 2) InstrumentationData.SessionStatus. Lệnh am instrument xuất thông báo trạng thái kiểm thử trước/sau mỗi lần thực thi kiểm thử. addOutput(byte, int, int) được gọi bằng đối số data. Đây là các byte được chuyển đổi tuần tự của TestStatus. Khi tất cả các bài kiểm thử hoàn tất, lệnh sẽ xuất ra SessionStatus ở cuối.

Hãy xem https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto để biết định nghĩa đầy đủ về protobuf.

InstrumentationProtoResultParser là một máy trạng thái và các trạng thái được xác định trong ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState). Trạng thái bắt đầu bằng ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED). Khi thấy trạng thái trường hợp kiểm thử đầu tiên, nó sẽ chuyển sang ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING). Trạng thái sẽ thay đổi thành ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED) nếu tất cả các kiểm thử đã hoàn tất hoặc ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED) nếu được yêu cầu bằng cách gọi cancel().

Mỗi khi có trạng thái kiểm thử mới, trạng thái đó sẽ được thông báo cho những người nghe đã đăng ký.

Tóm tắt

Hàm khởi tạo công khai

InstrumentationProtoResultParser(String runName, listeners)

Tạo InstrumentationProtoResultParser.

Phương thức công khai

void addOutput(byte[] data, int offset, int length)

Phương thức này được gọi mỗi khi có dữ liệu mới.

void cancel()

Yêu cầu huỷ chạy thử.

void flush()

Được gọi khi kết thúc quá trình thực thi (trừ phi quá trình bị huỷ).

void handleTestRunFailed(String errorMsg)

Phương thức này được gọi khi lệnh "am instrument" gặp sự cố do một ngoại lệ.

boolean isCancelled()

Phương thức huỷ để dừng thực thi lệnh shell từ xa.

Hàm khởi tạo công khai

InstrumentationProtoResultParser

public InstrumentationProtoResultParser (String runName, 
                 listeners)

Tạo InstrumentationProtoResultParser.

Tham số
runName String: tên của lần chạy thử nghiệm cần cung cấp cho ITestRunListener.testRunStarted

listeners : được thông báo về kết quả kiểm thử khi các kiểm thử đang thực thi

Phương thức công khai

addOutput

public void addOutput (byte[] data, 
                int offset, 
                int length)

Phương thức này được gọi mỗi khi có dữ liệu mới.

Tham số
data byte: dữ liệu được chuyển đổi tuần tự của thông báo InstrumentationData.Session. Nếu data là một khối chưa hoàn chỉnh, thì các khối này sẽ được thêm vào một vùng đệm nội bộ và sẽ được xử lý trong lệnh gọi addOutput(byte, int, int) tiếp theo.

offset int: độ lệch của dữ liệu mới được lưu trữ trong data

length int: byte của dữ liệu mới trong data cần được xử lý.

hủy

public void cancel ()

Yêu cầu huỷ lượt chạy thử.

flush

public void flush ()

Được gọi khi kết thúc quá trình thực thi (trừ phi quá trình bị huỷ). Điều này cho phép bộ nhận kết thúc và xoá mọi dữ liệu chưa được xử lý.

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

Phương thức này được gọi khi lệnh "am instrument" gặp sự cố với một ngoại lệ. Tất cả trình nghe đã đăng ký sẽ được thông báo ITestRunListener.testRunFailed, sau đó là ITestRunListener.testRunEnded(long, ) nếu sự cố xảy ra trong quá trình thực thi kiểm thử.

Tham số
errorMsg String

isCancelled

public boolean isCancelled ()

Phương thức huỷ để dừng thực thi lệnh shell từ xa.

Giá trị trả về
boolean true để huỷ quá trình thực thi lệnh.