GoogleTest

בדרך כלל, בדיקת GoogleTest‏ (GTest, שנקראת לפעמים גם 'בדיקות מקוריות') לפלטפורמה ניגשת ל-HALs ברמה נמוכה יותר או מבצעת IPC גולמי מול שירותי מערכת שונים. לכן, גישת הבדיקה בדרך כלל קשורה באופן הדוק לשירות שנבדק.

כדי לבצע שילוב עם תשתית של בדיקות רציפות, צריך ליצור את בדיקות GTest באמצעות מסגרת GTest.

דוגמאות

הנה כמה דוגמאות ל-GTest במקור הפלטפורמה:

סיכום השלבים

  1. פועלים לפי ההגדרה לדוגמה של מודול GTest.

  2. כדי לכלול באופן אוטומטי יחסי תלות ב-GTest, משתמשים בכלל build בהגדרת מודול הבדיקה.BUILD_NATIVE_TEST

  3. כותבים הגדרה לבדיקה, לפי הדוגמאות לאפשרויות פשוטות ומורכבות.

  4. מריצים את מודול הבדיקה באמצעות mmm כדי ליצור גרסאות build מצטברות, או באמצעות mma כדי ליצור גרסאות build מלאות:

    make hwui_unit_tests -j
    
  5. מריצים את הבדיקה באופן מקומי באמצעות Atest:

      atest hwui_unit_tests
    

    אפשר גם להוסיף ארגומנטים ל-GTests. אלה כמה ארגומנטים שימושיים במיוחד:

    • native-test-flag מציין ערכי דגל נוספים להעברה לפקודת מעטפת GTest.
    • 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 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
      

      מידע נוסף על התאמה אישית של הרצת בדיקות זמין במדריך המתקדם של GTest.--help