مجموعة اختبار المورّد (VTS) والبنية الأساسية

توفّر "مجموعة اختبارات المورّدين في Android" (VTS) اختبارات شاملة لما يلي:

  • Kernel
  • طبقة تجريد الأجهزة (HAL)

يتم تشغيل VTS على جهاز كمبيوتر مكتبي ويتم تنفيذ إطارات الاختبار مباشرةً على الأجهزة المتصلة أو على المحاكيات. على غرار CTS، فإنّ VTS هي مجموعة اختبارات مبرمَجة تستخدم مكوّنات البرامج الرئيسية التالية:

  • تعمل حزمة اختبار VTS اتحاد التجارة على الجهاز المضيف وتدير عملية تنفيذ الاختبار. تتيح هذه الميزة إمكانية ضبط التقسيم على أجهزة متعدّدة قيد الاختبار. يمكنك أيضًا استخدام ميزة إعادة المحاولة في الحزمة لإعادة محاولة الاختبارات التي تعذّر إجراؤها فقط بدلاً من إعادة محاولة جميع حِزم الاختبار، ما يقلّل بشكل كبير من وقت إعادة التشغيل.
  • يتم تنفيذ حالات الاختبار الفردية على الجهاز قيد الاختبار. يمكن أن تكون حالات الاختبار اختبارات بنمط GTest أو اختبارات نواة أو اختبارات بنمط JUnit مكتوبة بلغة Java.

أنواع الاختبارات

يتم وصف الأنواع المختلفة من اختبارات VTS في الأقسام التالية.

الاختبارات بأسلوب GTest

معظم الاختبارات في VTS هي اختبارات بنمط GTest تتحقّق من تنفيذ طبقة HAL. تمت كتابة الاختبار بلغة C++ ويتم تنفيذه على الجهاز. تتكرر عملية VTS GTest النموذجية خلال كل مثيل لواجهة معيّنة، ويتم تنفيذ جميع حالات الاختبار عليها. يُرجى الرجوع إلى VtsHalHealthStorageV1_0TargetTest للاطّلاع على مثال.

اختبارات نواة Linux

  • ‫Kselftest (external/linux-kselftest) هي مجموعة من الاختبارات المضمّنة في مستودع نواة Linux في tools/testing/selftests، ويتم تضمين 23 اختبارًا منها في VTS لتشغيلها على ARM.

  • تتحقّق اختبارات Linux Test Project (external/ltp) من موثوقية نواة Linux وقوتها وثباتها.

الاختبارات المتوافقة مع JUnit

مجموعة صغيرة من الاختبارات المستندة إلى المضيف في VTS هي اختبارات بتنسيق JUnit، مثل KernelApiSysfsTest. يتم تنفيذ اختبارات Java على شكل BaseHostJUnit4Test، الذي يرتبط بجهاز اختبار ويمكنه تنفيذ أوامر shell لإجراء عملية التحقّق.

اختبارات Python3 المستقلة

تتم كتابة بعض اختبارات VTS، مثل vts_treble_sys_prop_test، في Python3. يتم تنفيذ الاختبارات المستندة إلى لغة Python على شكل unittest.TestCase، ويمكن لكل حالة اختبار التفاعل مع الجهاز من خلال أوامر shell.