הגדרת Eclipse

כדי להגדיר את Tradefed באמצעות Eclipse, פועלים לפי השלבים הבאים:

יוצרים סביבת עבודה נפרדת לפיתוח של Trade Federation, ולא משתמשים שוב בסביבת עבודה שכבר נמצאת בשימוש לפיתוח של מכשירי Android.

אם צריך, אפשר להוריד את Eclipse IDE למפתחי Java מהכתובת: eclipse.org/downloads

יצירת פרויקטים

  1. מריצים את make פעם אחת משורת הפקודה. הפקודה הזו תיצור ספריות חיצוניות שתלויות בפרויקטים הבאים.
  2. מגדירים את משתנה classpath‏ TRADEFED_ROOT ב-Window > Preferences > Java > Build Path> Classpath Variables ומפנים אותו לספריית השורש של מקור tradefed
  3. מגדירים את משתנה הנתיב TRADEFED_ROOT בקובץ Window > Preferences > General > Workspace > Linked Resources ומפנים אותו לספריית השורש של מקור ה-tradefed
  4. משתמשים באשף File > Import...-> General > Existing Projects into workspace" כדי לייבא את פרויקטי ה-Java האלה בקוד פתוח בנתיב הבא:

    prebuilts/misc/common/ddmlib\*
    tools/loganalysis
    tools/loganalysis/tests
    tools/tradefederation/core
    tools/tradefederation/core/tests
    tools/tradefederation/contrib
    tools/tradefederation/core/remote
    platform_testing/libraries/health/runners/longevity/host
    platform_testing/libraries/annotations
    platform_testing/libraries/health/composers/host
    
  5. אם רוצים לראות את קוד המקור של ddmlib, אפשר לצרף את קוד המקור מענף כלים לא ארוז, כמו /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java.

  6. אם רוצים גם לטעון את הפרויקטים של ערכת CTS, מייבאים את הפריטים הבאים:

    test/suite_harness/common/util
    test/suite_harness/common/host-side/util
    test/suite_harness/common/host-side/tradefed
    

פורמט אוטומטי

הערה: הקבצים הנדרשים נמצאים ב-development/ide/eclipse בעץ המקור המלא של הפלטפורמה. לכן תצטרכו לבדוק את ההסתעפות של הפלטפורמה, כמו main, כדי לקבל את הקבצים האלה: /development/main/ide/eclipse/

שימוש בקובצי העדפות ב-Eclipse כדי להגדיר את הפורמט באופן אוטומטי לפי מדריך הסגנון של Android. כדי לעשות זאת ב-Studio:

  1. עוברים אל Window > Preferences > Java > Code Style.
  2. בקטע Formatter, מייבאים את הקובץ android-formatting.xml.
  3. בקטע ארגון > ייבוא, מייבאים את הקובץ android.importorder.

הסרת רווחים לבנים בסוף

כדי לאלץ את Eclipse להסיר את כל הרווחים הלבנים שבסוף הטקסט:

  1. עוברים אל Window (חלון) > Preferences (העדפות) -> Java -> Editor (עריכה) -> Save Actions (פעולות שמירה).
  2. לאחר מכן, פעולות נוספות -> הגדרה -> קוד -> הכרטיסייה 'ארגון' -> פורמט.
  3. מסמנים את התיבה הסרת רווחים לבנים בסוף.
  4. לוחצים על אישור וסגירה.

בדיקת סגנון הקוד

כששולחים רשימת שינויים, המערכת מריצה באופן אוטומטי הוק לפני ההעלאה כדי לבדוק את פורמט הקוד: google-java-format

כך תוכלו לעצב את הקוד בהתאם לתקן הנפוץ.

ניפוי באגים ב-Eclipse

אם רוצים להריץ קוד של TF דרך מנתח באגים ב-Eclipse, מומלץ ליצור קודם בדיקת יחידה לקוד הרלוונטי, כי זו הדרך הפשוטה והמהירה ביותר לבדוק את הפונקציונליות.

כדי לנפות באגים בבדיקת יחידה של TF, פשוט לוחצים עליה לחיצה ימנית ובוחרים באפשרות Debug As > JUnit test.

כדי לנפות באגים בבדיקה פונקציונלית של TF, פועלים לפי ההוראות בקטע הקודם להרצת בדיקה פונקציונלית, אבל משתמשים בתפריט Run > Debug configurations.

כדי לנפות באגים בתוכנית TF עצמה, כשמריצים הגדרה כלשהי, פועלים לפי ההוראות בקטע הקודם להרצת בדיקה פונקציונלית, אבל בשלב 4 מספקים את הארגומנטים של שורת הפקודה להגדרה שרוצים להריץ. כדי לנפות באגים בהגדרה של 'instrument', עוברים לתפריט Run > Debug configuration ומגדירים את הכרטיסייה Arguments בהגדרת ניפוי הבאגים של Eclipse לערך -- package <package to run> instrument.

ניפוי באגים מרחוק באמצעות Eclipse

כדי לנפות באגים מרחוק בסשן של Tradefed שהתחיל בשורת הפקודה tradefed.sh:

  1. מפעילים את tradefed.sh עם דגל ניפוי הבאגים: TF_DEBUG=1 tradefed.sh
  2. ממתינים עד שמופיעה ההודעה הבאה מ-JVM: Listening for transport dt_socket at address: 10088 המשמעות היא ש-JVM מחכה שה-debugger יצטרף ליציאה 10088.
  3. מצורפים באמצעות ניפוי באגים מרחוק ב-Eclipse מהתפריט הראשי: בוחרים באפשרות Run > Debug Configurations….
  4. בתיבת הדו-שיח הקופצת, בוחרים באפשרות Remote Java Application (אפליקציית Java מרוחקת) בתפריט הימני.
  5. לוחצים על הסמל New launch configuration בסרגל הפעולות.
  6. נותנים שם להגדרה ובוחרים בפרויקט tradefederation.
  7. מאכלסים את היציאה באמצעות הכתובת שצוינה קודם.
  8. עוברים לכרטיסייה Source ומוסיפים את הפרויקטים tradefederation ו-google-tradefed אל Source Lookup Path.
  9. לוחצים על ניפוי באגים כדי להתחיל את סשן ניפוי הבאגים.

מנתח הבאגים מצורף לתהליך ה-JVM שמאזין, ובמסוף שבו פועלת tradefed.sh מוצגת ההנחיה tf>.

כדי לעבור על הקוד במודל ניפוי באגים, מגדירים נקודת עצירה ב-Eclipse ומפעילים את הפקודה של Tradefed (כלומר run <test>) במסוף. כדי לנפות באגים במהלך ההפעלה של TF, אפשר להגדיר קודם את נקודת העצירה ואז לחבר את מנתח הבאגים של Eclipse.

טיפ: כדי להשתמש ביציאה חלופית, מוסיפים את TF_DEBUG_PORT=nnnלפקודה בשלב 1 למעלה. אפשר להשתמש בזה גם בסביבת הייצור אם יש באגים מסתוריים של סטאקים כדי לבדוק: משנים את הערך של suspend=y ל-suspend=n בקובץ tradefed.sh ומתחילים עם דגל ניפוי הבאגים. ה-JVM לא ימתין שהכלי לניפוי באגים יתחבר אליו, אבל אפשר לעשות זאת בכל שלב כל עוד התהליך עדיין פועל.

ניפוי באגים מרחוק באמצעות JDB

כדי להשתמש ב-JDB של Java Debugger, מבצעים את השלבים הבאים, בדומה לאלו של Eclipse:

  1. מפעילים את tradefed.sh עם דגל ניפוי הבאגים: TF_DEBUG=1 tradefed.sh
  2. ממתינים עד שמופיעה ההנחיה מ-JVM: ‏ Listening for transport dt_socket at address: 10088.
  3. מחברים את jdb. לדוגמה, מ-croot מריצים:

    jdb -attach 10088 \
        -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
    
  4. ממתינים לחיבור ומתחילים לנפות באגים. הריצו את man jdb לקבלת עזרה נוספת.

בדיקת רמת הכיסוי של הקוד

  1. מתקינים את הפלאגין Eclemma.
  2. עוברים אל עזרה > התקנת תוכנה חדשה ומפנים את האשף אל: http://update.eclemma.org/
  3. לאחר ההתקנה, בוחרים באפשרות הבדיקה Coverage As > JUnit כדי להריץ בדיקה של כיסוי הקוד.