הגדרת Eclipse

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

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

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

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

  1. מריצים את הפקודה make פעם אחת משורת הפקודה. הפעולה הזו תיצור ספריות חיצוניות שהפרויקטים הבאים תלויים בהן.
  2. מגדירים את משתנה נתיב המחלקה 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 harness, מייבאים:

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

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

הערה: הקבצים הנדרשים נמצאים ב-development/ide/eclipse בעץ המקור המלא של הפלטפורמה. לכן תצטרכו לבדוק ענף של פלטפורמה כמו android-latest-release כדי לקבל את הקבצים האלה: /development/android16-release/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. מסמנים את התיבה Remove Trailing Whitespace (הסרת רווחים מיותרים בסוף השורה).
  4. לוחצים על החלה וסגירה.

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

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

כך תוכלו לעצב את הקוד לפי התקן המקובל.

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

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

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

כדי לנפות באגים בבדיקה פונקציונלית של 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 ממתין לחיבור של מאתר הבאגים ביציאה 10088.
  3. מצרפים באמצעות ניפוי באגים מרחוק של Eclipse מהתפריט הראשי: בוחרים באפשרות Run > Debug Configurations...‎ (הפעלה > הגדרות ניפוי באגים...).
  4. בתיבת הדו-שיח שקופצת, בוחרים באפשרות Remote Java Application (אפליקציית Java מרוחקת) בתפריט הימני.
  5. לוחצים על הסמל New launch configuration (הגדרת השקה חדשה) בסרגל הפעולות.
  6. נותנים שם להגדרה ובוחרים באפשרות tradefederation בתור הפרויקט.
  7. מאכלסים את הניוד באמצעות הכתובת שסופקה קודם.
  8. עוברים לכרטיסייה מקור ומוסיפים את הפרויקטים tradefederation ו-google-tradefed אל נתיב החיפוש של המקור.
  9. לוחצים על Debug (ניפוי באגים) כדי להתחיל את סשן ניפוי הבאגים.

הבאג מתחבר לתהליך ה-JVM שממתין, ובטרמינל שבו מופעלת הפקודה tradefed.sh מופיעה ההנחיה tf>.

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

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

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

כדי להשתמש בכלי לניפוי באגים ב-Java‏ (JDB), צריך לבצע שלבים דומים לאלה של 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. עוברים אל Help > Install New Software (עזרה > התקנת תוכנה חדשה) ומפנים את האשף אל: http://update.eclemma.org/
  3. אחרי ההתקנה, בוחרים באפשרות הבדיקה Coverage As > JUnit כדי להריץ בדיקה של כיסוי קוד.