GoogleTest

בדרך כלל, בדיקת GoogleTest (GTest, שנקראת לפעמים גם 'בדיקות מקוריות') של הפלטפורמה נגישה ל-HAL ברמה נמוכה יותר או מבצעת 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:

    make tradefed-all -j
    tradefed.sh run template/local_min --template:map test=hwui_unit_tests
    
  7. התקנה והפעלה ידנית:

    1. מעבירים את קובץ ה-binary של הבדיקה שנוצר למכשיר:

       adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \
       /data/nativetest/hwui_unit_tests/hwui_unit_tests
      
    2. מריצים את GTest ומפעילים את הבדיקה על ידי הפעלת קובץ ה-binary של הבדיקה במכשיר:

       adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
      

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