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.