GoogleTest

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

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

דוגמאות

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

סיכום השלבים

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

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

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

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

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

      atest hwui_unit_tests
    

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

    • 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 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.