GoogleTest (GTest หรือบางครั้งเรียกว่า "การทดสอบแบบเนทีฟ") สําหรับแพลตฟอร์มมักจะเข้าถึง HAL ระดับล่างหรือทํา IPC ดิบกับบริการต่างๆ ของระบบ ด้วยเหตุนี้ วิธีการทดสอบจึงมักจะทำงานร่วมกับบริการที่อยู่ระหว่างการทดสอบอย่างเหนียวแน่น
หากต้องการผสานรวมกับโครงสร้างพื้นฐานการทดสอบอย่างต่อเนื่อง ให้สร้าง GTest โดยใช้เฟรมเวิร์ก GTest
ตัวอย่าง
ตัวอย่าง GTest ในซอร์สโค้ดของแพลตฟอร์มมีดังนี้
สรุปขั้นตอน
หากต้องการรวมข้อกําหนดของ GTest โดยอัตโนมัติ ให้ใช้
BUILD_NATIVE_TEST
กฎการสร้างในการกําหนดค่าโมดูลการทดสอบเขียนการกําหนดค่าการทดสอบโดยทําตามตัวอย่างสําหรับตัวเลือกแบบง่ายและแบบซับซ้อน
สร้างโมดูลทดสอบด้วย
mmm
สำหรับบิลด์ที่เพิ่มขึ้น หรือmma
สำหรับบิลด์แบบสมบูรณ์make hwui_unit_tests -j
ทำการทดสอบในเครื่องโดยใช้ Atest
atest hwui_unit_tests
นอกจากนี้ คุณยังเพิ่มอาร์กิวเมนต์ลงใน GTests ได้ด้วย อาร์กิวเมนต์ที่มีประโยชน์อย่างยิ่งมีดังนี้
native-test-flag
ระบุค่าแฟล็กเพิ่มเติมที่จะส่งไปยังคำสั่งเชลล์ GTestnative-test-timeout
ระบุค่าระยะหมดเวลาการทดสอบเป็นไมโครวินาทีโค้ดตัวอย่างต่อไปนี้ใช้อาร์กิวเมนต์ทั้ง 2 รายการนี้
atest test-name -- --module-arg test-name:native-test-flag:"\"argument1 argument2\"" \ --module-arg test-name:native-test-timeout:60000
ทำการทดสอบด้วยชุดทดสอบของ Trade Federation โดยทำดังนี้
make tradefed-all -j tradefed.sh run template/local_min --template:map test=hwui_unit_tests
ติดตั้งและเรียกใช้ด้วยตนเอง
พุชไบนารีทดสอบที่สร้างขึ้นไปยังอุปกรณ์ของคุณโดยทำดังนี้
adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \ /data/nativetest/hwui_unit_tests/hwui_unit_tests
เปิด GTest และทำการทดสอบโดยการเรียกใช้ไบนารีทดสอบในอุปกรณ์
adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
ดูข้อมูลเพิ่มเติมเกี่ยวกับการปรับแต่งการเรียกใช้การทดสอบได้โดยเพิ่มพารามิเตอร์
--help
ลงในไบนารีทดสอบ ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ได้ที่คู่มือขั้นสูงของ GTest