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