חבילת בדיקות
כדי שבדיקה תהיה חלק מ-VTS, היא צריכה לכלול את ההגדרה הבאה
ב-Android.bp
.
test_suites: ["vts"],
בנוסף, הוספת הבדיקה לחבילה general-tests
מאפשרת
חלק מחבילת מיפוי הבדיקות שמשמשות לבדיקות טרום-שליחה.
הגדרות אישיות לבדיקה
ברוב המקרים, הגדרת הבדיקה, שהיא קובץ XML שמשמש את Trade Federation להרצת בדיקת VTS, נוצרת באופן אוטומטי במהלך ה-build. עם זאת, אפשר להתאים אישית את הגדרות הבדיקה.
יצירת קובץ תצורה מותאם אישית לבדיקה
יצירת קובץ XML חדש לבדיקה יכולה להיות מורכבת, כי היא כרוכה ללא קשר לאופן הפעולה של רצועת הבדיקה, וכן להבדלים בין לכל הרצת בדיקה. קובץ התצורה לבדיקה שנוצר באופן אוטומטי נועד ליצור לבצע את התהליך הזה בקלות רבה יותר.
אם אתם צריכים להתאים אישית את קובץ ה-XML לבדיקה, תוכלו להשתמש בקובץ שנוצר באופן אוטומטי כנקודת התחלה.
כדי לאתר את קובץ התצורה לבדיקה שנוצר באופן אוטומטי, תחילה
מריצים את הפקודה make
כדי ליצור את ההגדרה, כמו שמתואר בהמשך.
$ m VtsHalUsbV1_1TargetTest
בתיקיית build out, אפשר לחפש את קובץ התצורה לפי שם המודול, כפי שמתואר בהמשך.
$ find out/ -name VtsHalUsbV1_1TargetTest.config
יכולים להיות כמה עותקים של הקובץ, וניתן להשתמש בכל אחד מהם.
מעתיקים את הקובץ .config
לספרייה.
שבו נמצא הקובץ Android.bp
.
אם בקובץ Android.bp
יש רק מודול בדיקה אחד, אפשר לבחור
צריך לשנות את השם של קובץ ה-XML ל-AndroidTest.xml
, ומערכת ה-build תהיה אוטומטית
משתמש בו כקובץ התצורה של מודול הבדיקה. אחרת, צריך להוסיף למערך את המאפיין test_config
, כפי שמוצג בדוגמה הבאה.
test_config: "VtsHalUsbV1_1TargetTest.xml",
עכשיו יש לכם קובץ תצורת בדיקה לעבוד איתו ולהטמיע אותו את ההתאמה האישית.
אילוץ הרצה של הבדיקה עם Root של adb
כדי להריץ את רוב הבדיקות של VTS נדרשת הרשאת root. אם ההגדרות של הבדיקה
הקובץ נוצר באופן אוטומטי. אפשר להוסיף את המאפיין הבא ל-Android.bp
.
require_root: true,
אם קובץ התצורה של הבדיקה מותאם אישית, מוסיפים את הקטע הבא לקובץ ה-XML של הבדיקה.
<target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>
איך מפסיקים את המסגרת במהלך הבדיקה
בדיקות רבות של VTS לא דורשות את Android framework כדי לפעול, והפעלת הבדיקה כשה-framework מושבת מאפשרת להריץ את הבדיקה בצורה יציבה בלי להיפגע מבעיות במכשיר. אם ההגדרות של הבדיקה
הקובץ נוצר באופן אוטומטי. אפשר להוסיף את המאפיין הבא ל-Android.bp
.
disable_framework: true,
אם קובץ התצורה לבדיקה מותאם אישית, מוסיפים שמופיע אחרי קובץ ה-XML לבדיקה.
<target_preparer class="com.android.tradefed.targetprep.StopServicesSetup"/>
הוספת עוד ארגומנטים לבדיקה
חלק מבדיקות ה-gtest עשויות להימשך זמן רב יותר. במקרים כאלה, אפשר להוסיף לבדוק את אפשרויות ההרצה בקובץ ה-XML.
לדוגמה, ההגדרה native-test-timeout
בקובץ הבא
מאפשרת לבדיקה לפעול עם זמן קצוב לתפוגה של 3 דקות, במקום
ברירת המחדל של דקה אחת.
<test class="com.android.tradefed.testtype.GTest" >
<option name="native-test-device-path" value="/data/local/tmp" />
<option name="module-name" value="VtsHalNfcV1_0TargetTest" />
<option name="native-test-timeout" value="180000"/>
</test>
איך דורשים רמת API מינימלית
חלק מבדיקות VTS יכולות לפעול רק במכשירים עם רמת API מינימלית. אם
קובץ התצורה לבדיקה נוצר באופן אוטומטי, אפשר להוסיף
ל-Android.bp
.
min_shipping_api_level: 29,
או
vsr_min_shipping_api_level: 202404,
אם קובץ התצורה של הבדיקה מותאם אישית, מוסיפים את הפקודה הבאה לקובץ ה-XML של הבדיקה.
<object type="module_controller" class="com.android.tradefed.testtype.suite.module.ShippingApiLevelModuleController">
<option name="min-api-level" value="29" />
</object>
או
<object type="module_controller" class="com.android.tradefed.testtype.suite.module.ShippingApiLevelModuleController">
<option name="vsr-min-api-level" value="202404" />
</object>
מאפיינים ברמת ה-API
ב-Android 12 מוגדרים המאפיינים ro.board.first_api_level
ו-ro.board.api_level
כדי להציג את רמת ה-API של קובצי האימג' של הספק במכשירים האלה. שילוב המאפיינים האלה עם ro.product.first_api_level
מאפשר לחבילות הבדיקה לבחור את תרחישי הבדיקה המתאימים למכשירים.
ב-Android 13 מוגדר הערך של ro.vendor.api_level
מוגדרת אוטומטית באמצעות חישוב רמת ה-API הנדרשת של הספק באמצעות
ro.product.first_api_level
, ro.board.first_api_level
וגם
ro.board.api_level
נכסים.
לפרטים נוספים ראו רמת ה-API של הספק.
ro.board.first_api_level
המאפיין ro.board.first_api_level
מייצג את רמת ה-API כשתמונות הספק
ל-SoC שעומדת בדרישות
הקפאת הספק ראשונות
הושקה עם הנכס הזה. האפשרות הזו לא תלויה בממשק ה-API להפעלה של המכשיר
אבל היא תלויה רק ברמת ה-API הראשונה ב-SoC שבה הערך הזה מוגדר. הערך הזה נשאר קבוע לכל משך החיים של ה-SoC.
כדי להגדיר את ro.board.first_api_level
, יצרני המכשירים יכולים להגדיר
BOARD_SHIPPING_API_LEVEL
בקובץ device.mk
שלהם, כמו בדוגמה הבאה
דוגמה:
# BOARD_SHIPPING_API_LEVEL sets ro.product.first_api_level to indicate
# the first api level that the device has been commercially launched on.
BOARD_SHIPPING_API_LEVEL := 23
הוא יגדיר באופן אוטומטי את הנכס ro.board.first_api_level כך:
vendor/build.prop
במכשיר. המאפיין מוגדר על ידי הספק init
תהליך האימות.
ro.board.api_level
המאפיין ro.board.api_level
הוא רמת ה-API הנוכחית של הספק בתמונות הספק בפורמט YYYYMM
, שבו ה-API של הספק הוקפא. הוא מוגדר באופן אוטומטי על ידי מערכת ה-build.
ro.vendor.api_level
המאפיין ro.vendor.api_level
הוצג ב-Android 13 כדי להציג את רמת ה-API שתמונות הספקים נדרשות לתמוך בה. מוגדר באופן אוטומטי
ro.product.first_api_level
או ro.board.api_level
אם
השדה ro.board.first_api_level
קיים ו-ro.board.api_level
מוגדר לערך
רמת API מוקדמת יותר מ-ro.product.first_api_level
. הגרסה תהיה
החלפה ברמת ה-API המתאימה של הספק, אם היא מוגדרת לגרסה
מ-ro.product.first_api_level
גדול מ-35
או שווה לו. מבחנים
ייתכן שההטמעה של הספק שמחייבת שדרוג של תמונות הספק לא תכלול.
בהתאם לדרישות הספק של ה-SoC בהתאם לנכס הזה.
תהליך חלוקה לקטעים באמצעות VTS
ב-Android מגרסה 10 ואילך, אפשר לבצע את תהליך חלוקת המשנה במספר מכשירים בזמן הבדיקה עם תוכניות VTS ו-CTS-on-GSI, לפי ההוראות שבהמשך.
run vts --shard-count <number of devices> -s <device serial> ...
הפקודה הזו מפצלת את תוכנית ה-VTS לחלקים ומריצה אותם במספר מכשירים.
run cts-on-gsi --shard-count <number of devices> -s <device serial> -s ...
הפקודה הזו מפצלת את התוכנית של CTS-on-GSI למקטעים ומריצה אותם במספר מכשירים.