בדיקת 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.