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