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

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

تُستخدَم 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" />

يتم تحديد SSC ضمن علامة system_checker في ملف XML الخاص بإعدادات Tradefed.

التنفيذ

يجب أن تنفّذ كل خدمة SSC واجهة 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. ويؤدي ذلك إلى ظهور تشغيل تجريبي على أنّه فاشل مع ذكر سبب الفشل وهو عملية التحقّق المحدّدة من خلال أداة التحقّق من الحالة.