सिस्टम स्थिति जांचें

सिस्टम स्टेटस चेकर्स (एसएससी) को सुइट-स्तरीय कॉन्फ़िगरेशन पर परिभाषित किया गया है और प्रत्येक मॉड्यूल के बीच चलाया जाता है। वे यह निर्धारित करने के लिए जांच करते हैं कि क्या मॉड्यूल बदल गया है और कुछ दिए गए राज्यों को पुनर्स्थापित नहीं किया है, उदाहरण के लिए सिस्टम प्रॉपर्टी मान बदलना।

एसएससी का उपयोग मुख्य रूप से यह सुनिश्चित करने के लिए किया जाता है कि मॉड्यूल लेखक अपने परीक्षणों के बाद सफाई करना न भूलें; लेकिन यदि वे ऐसा करते हैं, तो इसका एक निशान प्रदान करें ताकि इसका समाधान किया जा सके।

एक द्वितीयक उपयोग यह भी है कि जब संभव हो तो मूल स्थिति को पुनर्स्थापित किया जाए, उदाहरण के लिए यदि कीगार्ड को खुला छोड़ दिया गया हो तो उसे खारिज कर दिया जाए।

सिस्टम स्टेटस चेकर 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" />

एसएससी को ट्रेडफेड कॉन्फ़िगरेशन XML में system_checker टैग के तहत परिभाषित किया गया है।

कार्यान्वयन

प्रत्येक SSC को ISystemStatusChecker इंटरफ़ेस को लागू करना होगा, जो दो मुख्य विधियाँ preExecutionCheck और postExecutionCheck प्रदान करता है जो प्रत्येक मॉड्यूल निष्पादन से पहले और बाद में चलती हैं।

एक चेकर के लिए दोनों में से केवल एक को लागू करना या मॉड्यूल से पहले राज्य की जांच करने और मॉड्यूल के बाद की स्थिति से तुलना करने की आवश्यकता होने पर दोनों को लागू करना संभव है।

ट्रेडफेड में कार्यान्वयन के कई उदाहरण मौजूद हैं। पुन: प्रयोज्यता में सुधार के लिए प्रत्येक कार्यान्वयन को एकल जांच पर ध्यान केंद्रित करने की अनुशंसा की जाती है। उदाहरण के लिए, SystemServerStatusCheck जाँच करता है कि परीक्षण सूट निष्पादन के दौरान डिवाइस पर system_server प्रक्रिया पुनः आरंभ हुई या नहीं। postExecutionCheck में, यह deviceSoftRestarted कॉल करता है, जिसे यह जांचने के लिए NativeDevice में परिभाषित किया गया है कि क्या system_server प्रक्रिया पुनरारंभ हुई है।

प्रत्येक ऑपरेशन StatusCheckerResult लौटाता है, जो हार्नेस को यह तय करने देता है कि बग रिपोर्ट जैसी अतिरिक्त जानकारी कैप्चर की जानी चाहिए या नहीं।

उन्हें सीटीएस में कहां परिभाषित किया गया है?

सीटीएस सिस्टम स्टेटस चेकर्स को /test/suite_harness/tools/cts-tradefed/res/config/cts-system-checkers.xml में परिभाषित किया गया है।

चेकर विफलताओं का पता कैसे लगाएं

डिफ़ॉल्ट रूप से, सिस्टम चेकर विफलताएं केवल लॉग में दिखाई देती हैं और बग रिपोर्ट के रूप में bugreport-checker-post-module-<module name>.zip अनुसार नाम के साथ आमंत्रण के लिए कैप्चर की जाती हैं।

इससे आप यह पता लगा सकते हैं कि किस मॉड्यूल के बाद बग रिपोर्ट तैयार की गई थी।

--report-system-checkers विकल्प को true पर सेट करके सिस्टम चेकर रिपोर्ट को परीक्षण विफलता के रूप में बनाना संभव है। इसके परिणामस्वरूप परीक्षण विफल के रूप में प्रदर्शित होता है और विफलता का कारण स्थिति जांचकर्ता विशेष जांच होता है।