Trình kiểm tra trạng thái hệ thống (SSC) được xác định trong cấu hình cấp bộ và chạy giữa mỗi mô-đun. Chúng thực hiện các bước kiểm tra để xác định xem mô-đun có thay đổi hay không và không khôi phục một số trạng thái nhất định, chẳng hạn như thay đổi giá trị thuộc tính hệ thống.
SSC chủ yếu được dùng để đảm bảo rằng người viết mô-đun không quên dọn dẹp sau khi kiểm thử; nhưng nếu họ quên, hãy cung cấp dấu vết của việc này để có thể giải quyết.
Mục đích sử dụng thứ hai là khôi phục trạng thái ban đầu khi có thể, ví dụ: đóng khoá bảo vệ nếu khoá này vẫn đang mở.
Định nghĩa XML của trình kiểm tra trạng thái hệ thống
<system_checker class="com.android.tradefed.suite.checker.KeyguardStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.LeakedThreadStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.SystemServerStatusChecker" />
SSC được xác định trong thẻ system_checker
trong XML cấu hình Tradefed.
Triển khai
Mỗi SSC phải triển khai giao diện ISystemStatusChecker
, cung cấp 2 phương thức chính là preExecutionCheck
và postExecutionCheck
chạy trước và sau mỗi lần thực thi mô-đun.
Trình kiểm tra có thể chỉ triển khai một trong hai hoặc triển khai cả hai nếu cần kiểm tra trạng thái trước mô-đun và so sánh với trạng thái sau mô-đun.
Có một số ví dụ về cách triển khai trong Tradefed. Mỗi lần triển khai nên tập trung vào một lần kiểm tra duy nhất để cải thiện khả năng sử dụng lại. Ví dụ: SystemServerStatusCheck
kiểm tra xem quy trình system_server
có khởi động lại trên thiết bị trong quá trình thực thi bộ kiểm thử hay không. Trong postExecutionCheck
, ứng dụng sẽ gọi deviceSoftRestarted
(được xác định trong NativeDevice
) để kiểm tra xem quy trình system_server
có khởi động lại hay không.
Mỗi thao tác sẽ trả về StatusCheckerResult
, cho phép bộ kiểm thử quyết định xem có nên thu thập thêm thông tin (chẳng hạn như báo cáo lỗi) hay không.
Các trường hợp này được xác định ở đâu trong CTS?
Trình kiểm tra trạng thái hệ thống CTS được xác định trong /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml.
Cách tìm lỗi của trình kiểm tra
Theo mặc định, các lỗi của trình kiểm tra hệ thống chỉ xuất hiện trong nhật ký và dưới dạng báo cáo lỗi được ghi lại cho lệnh gọi có tên theo định dạng bugreport-checker-post-module-<module name>.zip
.
Nhờ đó, bạn có thể biết báo cáo lỗi được tạo sau mô-đun nào.
Bạn có thể tạo báo cáo của trình kiểm tra hệ thống dưới dạng một lỗi kiểm thử bằng cách đặt tuỳ chọn --report-system-checkers
thành true
. Điều này dẫn đến việc chạy thử nghiệm hiển thị là không thành công với lý do không thành công là trạng thái kiểm tra cụ thể của trình kiểm tra.