সিস্টেমের স্ট্যাটাস চেক করা

সিস্টেম স্ট্যাটাস চেকার (SSC) স্যুট-লেভেল কনফিগারেশনে নির্দিষ্ট করা হয় এবং প্রতিটি মডিউলের মধ্যে রান করে। মডিউল পরিবর্তন হয়েছে কিনা এবং কিছু প্রদত্ত অবস্থা রিস্টোর করেনি কিনা তা নির্ধারণ করতে তারা চেক করে, যেমন সিস্টেম প্রপার্টি ভ্যালু পরিবর্তন করা।

মডিউল লেখকরা যাতে তাদের টেস্টের পরে পরিষ্কার করতে না ভোলেন তা নিশ্চিত করার জন্য SSC প্রধানত ব্যবহার করা হয়; কিন্তু তারা যদি ভুলে যান, তাহলে এর একটি ট্রেস প্রদান করুন যাতে এটি সমাধান করা যায়।

সম্ভব হলে, মূল অবস্থা ফিরিয়ে আনাও এর গৌণ ব্যবহার, যেমন কীগার্ড খোলা থাকলে তা বন্ধ করে দেওয়া।

সিস্টেম স্ট্যাটাস চেকার 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" />

Tradefed কনফিগারেশন XML-এ system_checker ট্যাগের অধীনে SSC-কে সংজ্ঞায়িত করা হয়।

প্রয়োগ

প্রতিটি 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 হিসেবে সেট করে সিস্টেম চেকার রিপোর্টকে টেস্ট ফেল হিসেবে দেখানো সম্ভব। এর ফলে, টেস্ট রান ব্যর্থ হয়েছে বলে দেখানো হয় এবং ব্যর্থতার কারণ হিসেবে স্ট্যাটাস চেকার নির্দিষ্ট চেক উল্লেখ করা হয়।