सिस्टम स्टेटस चेकर्स (एसएससी) को सुइट-स्तरीय कॉन्फ़िगरेशन पर परिभाषित किया गया है और प्रत्येक मॉड्यूल के बीच चलाया जाता है। वे यह निर्धारित करने के लिए जांच करते हैं कि क्या मॉड्यूल बदल गया है और कुछ दिए गए राज्यों को पुनर्स्थापित नहीं किया है, उदाहरण के लिए सिस्टम प्रॉपर्टी मान बदलना।
एसएससी का उपयोग मुख्य रूप से यह सुनिश्चित करने के लिए किया जाता है कि मॉड्यूल लेखक अपने परीक्षणों के बाद सफाई करना न भूलें; लेकिन यदि वे ऐसा करते हैं, तो इसका एक निशान प्रदान करें ताकि इसका समाधान किया जा सके।
एक द्वितीयक उपयोग यह भी है कि जब संभव हो तो मूल स्थिति को पुनर्स्थापित किया जाए, उदाहरण के लिए यदि कीगार्ड को खुला छोड़ दिया गया हो तो उसे खारिज कर दिया जाए।
सिस्टम स्टेटस चेकर 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
पर सेट करके सिस्टम चेकर रिपोर्ट को परीक्षण विफलता के रूप में बनाना संभव है। इसके परिणामस्वरूप परीक्षण विफल के रूप में प्रदर्शित होता है और विफलता का कारण स्थिति जांचकर्ता विशेष जांच होता है।