सिस्टम स्टेटस चेकर (एसएससी), सुइट-लेवल कॉन्फ़िगरेशन में तय किए जाते हैं और हर मॉड्यूल के बीच चलाए जाते हैं. ये जांच करते हैं कि मॉड्यूल में बदलाव हुआ है या नहीं और क्या उसने कुछ दी गई स्थितियों को वापस नहीं लाया है. उदाहरण के लिए, सिस्टम प्रॉपर्टी की वैल्यू बदलना.
एसएससी का इस्तेमाल मुख्य रूप से यह पक्का करने के लिए किया जाता है कि मॉड्यूल लिखने वाले लोग, टेस्ट के बाद क्लीन अप करना न भूलें. अगर ऐसा होता है, तो इसका पता लगाने के लिए एसएससी का इस्तेमाल किया जाता है, ताकि समस्या को ठीक किया जा सके.
इस सुविधा का दूसरा इस्तेमाल, डिवाइस को उसकी मूल स्थिति में वापस लाने के लिए भी किया जा सकता है. उदाहरण के लिए, अगर कीगार्ड खुला हुआ है, तो उसे बंद करना.
सिस्टम की स्थिति की जांच करने वाले टूल की एक्सएमएल परिभाषा
<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" />
एसएससी, Tradefed कॉन्फ़िगरेशन के एक्सएमएल में system_checker
टैग के तहत तय किए जाते हैं.
लागू करना
हर एसएससी को ISystemStatusChecker
इंटरफ़ेस लागू करना होगा. यह दो मुख्य तरीके preExecutionCheck
और postExecutionCheck
उपलब्ध कराता है, जो हर मॉड्यूल के लागू होने से पहले और बाद में चलते हैं.
चेकर, इनमें से सिर्फ़ एक को लागू कर सकता है. अगर मॉड्यूल से पहले की स्थिति की जांच करनी है और उसकी तुलना मॉड्यूल के बाद की स्थिति से करनी है, तो दोनों को लागू किया जा सकता है.
Tradefed में, लागू करने के कई उदाहरण मौजूद हैं. हमारा सुझाव है कि हर बार लागू करने के लिए, एक ही जांच पर फ़ोकस करें, ताकि फिर से इस्तेमाल करने की सुविधा को बेहतर बनाया जा सके. उदाहरण के लिए, 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
पर सेट करके, सिस्टम चेकर की रिपोर्ट को टेस्ट में हुई गड़बड़ी के तौर पर दिखाया जा सकता है. इस वजह से, जांच पूरी न होने पर टेस्ट रन को 'पूरा नहीं हुआ' के तौर पर दिखाया जाता है. साथ ही, स्टेटस की जांच करने वाले टूल की खास जांच को इसकी वजह के तौर पर दिखाया जाता है.