การทดสอบของ Google

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
    

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

    • 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 โดยทำดังนี้

    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