التحقّق من حالة النظام

يتم تحديد أدوات التحقّق من حالة النظام (SSC) على مستوى إعداد مجموعة الاختبارات، ويتم تشغيلها بين كل وحدة. تُجري هذه الأدوات عمليات تحقّق لتحديد ما إذا تم تغيير الوحدة ولم يتم استعادة بعض الحالات المحدّدة، مثلاً تغيير قيمة خاصية نظام.

تُستخدَم أدوات التحقّق من حالة النظام بشكل أساسي لضمان عدم نسيان كتّاب الوحدات تنظيف البيانات بعد إجراء اختباراتهم، وفي حال نسيانهم ذلك، يتم توفير أثر لذلك حتى يمكن معالجته.

يتم أيضًا استخدام هذه الأدوات بشكل ثانوي لاستعادة الحالة الأصلية متى أمكن ذلك، مثلاً إغلاق شاشة القفل إذا كانت مفتوحة.

تعريف XML لأداة التحقّق من حالة النظام

<system_checker class="com.android.tradefed.suite.checker.KeyguardStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.LeakedThreadStatusChecker" />
<system_checker class="com.android.tradefed.suite.checker.SystemServerStatusChecker" />

يتم تحديد أدوات التحقّق من حالة النظام ضمن العلامة system_checker في ملف XML لإعداد Tradefed.

التنفيذ

يجب أن تنفّذ كل أداة تحقّق من حالة النظام واجهة ISystemStatusChecker التي توفّر الطريقتَين الرئيسيتَين preExecutionCheck وpostExecutionCheck اللتَين يتم تشغيلهما قبل وبعد كل عملية تنفيذ وحدة.

يمكن أن تنفّذ أداة التحقّق إحدى الطريقتَين فقط أو كلتيهما إذا كانت هناك حاجة إلى التحقّق من الحالة قبل الوحدة ومقارنتها بالحالة بعد الوحدة.

تتوفّر عدة نماذج لتنفيذ هذه الأدوات في Tradefed. يُنصح بأن يركّز كل نموذج على عملية تحقّق واحدة لتحسين إمكانية إعادة الاستخدام. على سبيل المثال، SystemServerStatusCheck تتحقّق مما إذا تمت إعادة تشغيل عملية system_server على الجهاز أثناء تنفيذ مجموعة الاختبارات. في postExecutionCheck، يتم استدعاء deviceSoftRestarted، المحدّدة في NativeDevice للتحقّق مما إذا تمت إعادة تشغيل عملية system_server.

تعرض كل عملية StatusCheckerResult، ما يسمح للأداة المساعدة بتحديد ما إذا كان يجب تسجيل معلومات إضافية، مثل تقرير خطأ،

أين يتم تحديد هذه الأدوات في CTS؟

يتم تحديد أدوات التحقّق من حالة النظام في CTS في المسار /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml.

كيفية العثور على حالات فشل أدوات التحقّق

تظهر حالات فشل أدوات التحقّق من حالة النظام تلقائيًا في السجلات فقط وكتقارير أخطاء تم تسجيلها للاستدعاء الذي يحمل اسمًا بالتنسيق bugreport-checker-post-module-<module name>.zip.

يسمح لك هذا التنسيق بمعرفة الوحدة التي تم إنشاء تقرير الخطأ بعدها.

يمكنك جعل تقرير أداة التحقّق من حالة النظام يظهر كحالة تعذّر الاختبار نفسه من خلال ضبط الخيار --report-system-checkers على true. يؤدي ذلك إلى ظهور عملية تشغيل الاختبار على أنّها فشلت، ويكون سبب الفشل هو عملية التحقّق المحدّدة التي أجرتها أداة التحقّق من حالة النظام.