ตรวจสอบสถานะของระบบ

ตัวตรวจสอบสถานะของระบบ (SSC) จะกำหนดไว้ในการกำหนดค่าระดับชุดซอฟต์แวร์และทำงานระหว่างแต่ละโมดูล โดยจะตรวจสอบว่าโมดูลมีการเปลี่ยนแปลงหรือไม่ และไม่ได้กู้คืนสถานะบางอย่าง เช่น การเปลี่ยนค่าพร็อพเพอร์ตี้ของระบบ

SSC ส่วนใหญ่ใช้เพื่อให้ผู้เขียนโมดูลไม่ลืมล้างข้อมูลหลังจากการทดสอบ แต่หากลืม ให้ระบุร่องรอยเพื่อให้แก้ไขได้

การใช้งานรองคือการกู้คืนสถานะเดิมเมื่อเป็นไปได้ เช่น การปิด Keyguard หากเปิดค้างไว้

คำจำกัดความ XML ของเครื่องมือตรวจสอบสถานะระบบ

<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 ใต้แท็ก system_checker ใน XML การกำหนดค่าที่เทรด

การใช้งาน

SSC ทุกรายการต้องใช้ISystemStatusChecker อินเทอร์เฟซ ซึ่งมี 2 วิธีการหลัก ได้แก่ preExecutionCheck และ postExecutionCheck ที่ทำงานก่อนและหลังการเรียกใช้แต่ละโมดูล

โปรแกรมตรวจสอบอาจใช้เพียงอย่างใดอย่างหนึ่งหรือทั้ง 2 อย่างก็ได้ หากจำเป็นต้องตรวจสอบสถานะก่อนโมดูลและเปรียบเทียบกับสถานะหลังโมดูล

มีตัวอย่างการใช้งานหลายรายการใน Tradefed เราขอแนะนำให้ใช้การตรวจสอบรายการเดียวในแต่ละการใช้งานเพื่อปรับปรุงความสามารถในการนํากลับมาใช้ใหม่ ตัวอย่างเช่น SystemServerStatusCheck จะตรวจสอบว่ากระบวนการ system_server รีสตาร์ทในอุปกรณ์ในระหว่างการใช้งานชุดทดสอบหรือไม่ ใน postExecutionCheck ระบบจะเรียกใช้ deviceSoftRestarted ซึ่งกำหนดไว้ใน NativeDevice เพื่อตรวจสอบว่ากระบวนการ system_server รีสตาร์ทหรือไม่

การดำเนินการแต่ละรายการจะแสดงผลเป็น StatusCheckerResult ซึ่งจะช่วยให้แฮนเดิลตัดสินใจได้ว่าควรบันทึกข้อมูลเพิ่มเติม เช่น รายงานข้อบกพร่อง หรือไม่

รายการเหล่านี้ได้รับการกําหนดไว้ใน CTS ตรงไหน

เครื่องมือตรวจสอบสถานะระบบ CTS จะกำหนดไว้ใน /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml

วิธีค้นหาข้อผิดพลาดของโปรแกรมตรวจสอบ

โดยค่าเริ่มต้น ความล้มเหลวของโปรแกรมตรวจสอบระบบจะแสดงเฉพาะในบันทึกและรายงานข้อบกพร่องที่บันทึกไว้สําหรับการเรียกใช้ที่มีชื่อตามรูปแบบbugreport-checker-post-module-<module name>.zip

ซึ่งจะช่วยให้คุณทราบว่ารายงานข้อบกพร่องสร้างขึ้นหลังจากโมดูลใด

คุณทำให้โปรแกรมตรวจสอบระบบรายงานเป็น "การทดสอบไม่สําเร็จ" ได้โดยการตั้งค่าตัวเลือก --report-system-checkers เป็น true ซึ่งส่งผลให้การทดสอบแสดงเป็น "ไม่สําเร็จ" โดยมีสาเหตุมาจากการตรวจสอบสถานะการตรวจสอบหนึ่งๆ