GoogleTest

GoogleTest (GTest หรือที่บางครั้งเรียกว่า "การทดสอบดั้งเดิม") สำหรับแพลตฟอร์ม มักจะเข้าถึง HAL ระดับล่างหรือดำเนินการ IPC ดิบกับบริการต่างๆ ของระบบ ด้วยเหตุนี้ แนวทางการทดสอบจึงมักจะเชื่อมโยงอย่างใกล้ชิดกับ บริการที่อยู่ระหว่างการทดสอบ

หากต้องการผสานรวมกับโครงสร้างพื้นฐานของการทดสอบอย่างต่อเนื่อง ให้สร้าง GTest โดยใช้เฟรมเวิร์ก GTest

ตัวอย่าง

ตัวอย่าง GTest ในแหล่งที่มาของแพลตฟอร์มมีดังนี้

สรุปขั้นตอน

  1. ทําตามตัวอย่างการตั้งค่าโมดูล GTest

  2. หากต้องการรวมการอ้างอิง GTest โดยอัตโนมัติ ให้ใช้BUILD_NATIVE_TEST กฎการสร้างในการกำหนดค่าโมดูลทดสอบ

  3. เขียนการกำหนดค่าการทดสอบตามตัวอย่างสำหรับตัวเลือกอย่างง่าย และซับซ้อน

  4. สร้างโมดูลทดสอบด้วย mmm สำหรับการสร้างแบบเพิ่ม หรือ mma สำหรับการสร้างแบบเต็ม

    make hwui_unit_tests -j
    
  5. เรียกใช้การทดสอบในเครื่องโดยใช้ Atest ดังนี้

      atest hwui_unit_tests
    

    นอกจากนี้ คุณยังเพิ่มอาร์กิวเมนต์ลงใน GTest ได้ด้วย อาร์กิวเมนต์ต่อไปนี้มีประโยชน์เป็นพิเศษ

    • native-test-flag ระบุค่าแฟล็กเพิ่มเติมที่จะส่งไปยังคำสั่งเชลล์ GTest
    • native-test-timeout ระบุค่าระยะหมดเวลาของการทดสอบเป็นไมโครวินาที

      โค้ดตัวอย่างต่อไปนี้ใช้อาร์กิวเมนต์ทั้ง 2 รายการ

      atest test-name -- --module-arg test-name:native-test-flag:"\"argument1 argument2\"" \
         --module-arg test-name:native-test-timeout:60000
      
  6. เรียกใช้การทดสอบด้วย Trade Federation Test Harness โดยทำดังนี้

    make tradefed-all -j
    tradefed.sh run template/local_min --template:map test=hwui_unit_tests
    
  7. ติดตั้งและเรียกใช้ด้วยตนเอง

    1. พุชไบนารีทดสอบที่สร้างขึ้นไปยังอุปกรณ์โดยทำดังนี้

       adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \
       /data/nativetest/hwui_unit_tests/hwui_unit_tests
      
    2. เปิด GTest และเรียกใช้การทดสอบโดยเรียกใช้ไบนารีการทดสอบบนอุปกรณ์

       adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
      

      ดูข้อมูลเพิ่มเติมเกี่ยวกับการปรับแต่งการทดสอบได้โดยเพิ่ม--help พารามิเตอร์ลงในไบนารีของการทดสอบ ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ได้ที่คู่มือขั้นสูงของ GTest