בדיקת GoogleTest (GTest, שנקראת לפעמים גם 'בדיקות מקוריות') לפלטפורמה בדרך כלל ניגשת ל-HALs ברמה נמוכה יותר או מבצעת IPC גולמי מול שירותי מערכת שונים. לכן, גישת הבדיקה בדרך כלל קשורה באופן הדוק לשירות שנבדק.
כדי לבצע שילוב עם תשתית של בדיקות רציפות, צריך ליצור את בדיקות GTest באמצעות מסגרת GTest.
דוגמאות
ריכזנו כאן כמה דוגמאות ל-GTest בקוד המקור של הפלטפורמה:
סיכום השלבים
פועלים לפי ההגדרה לדוגמה של מודול GTest.
כדי לכלול באופן אוטומטי יחסי תלות ב-GTest, משתמשים ב
BUILD_NATIVE_TEST
כלל build בהגדרת מודול הבדיקה.כותבים הגדרה לבדיקה, לפי הדוגמאות לאפשרויות פשוטות ומורכבות.
מריצים את המודול לבדיקה באמצעות
mmm
כדי ליצור גרסאות build מצטברות, או באמצעותmma
כדי ליצור גרסאות build מלאות:make hwui_unit_tests -j
מריצים את הבדיקה באופן מקומי באמצעות 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
-
מריצים את הבדיקה באמצעות Trade Federation test harness:
make tradefed-all -j tradefed.sh run template/local_min --template:map test=hwui_unit_tests
התקנה והפעלה ידניות:
מעבירים את קובץ הבדיקה הבינארי שנוצר למכשיר:
adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \ /data/nativetest/hwui_unit_tests/hwui_unit_tests
מפעילים את GTest ומריצים את הבדיקה על ידי הפעלת קובץ ההפעלה של הבדיקה במכשיר:
adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
כדי לקבל מידע נוסף על התאמה אישית של הרצת בדיקות, מוסיפים את הפרמטר
--help
לקובץ הבינארי של הבדיקה. מידע נוסף על פרמטרים זמין במדריך המתקדם של GTest.