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 shell.
    • native-test-timeout تحدّد قيمة مهلة الاختبار بالميكروثانية.

      يستخدم رمز المثال التالي كلتا الوسيطتَين:

      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.