27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
মডিউল কন্ট্রোলার নিয়োগ করুন
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
প্রতিটি স্যুট মডিউল ( AndroidTest.xml
দ্বারা সংজ্ঞায়িত) একটি বিশেষ module_controller
অবজেক্ট থাকতে পারে যা মডিউলের কিছু আচরণ পরিবর্তন করতে পারে:
কিছু শর্তের উপর ভিত্তি করে মডিউল চালাতে হবে কি না
BaseModuleController প্রয়োগ করে এবং এটিকে AndroidTest.xml
এ এইভাবে যুক্ত করে:
<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />
public abstract RunStrategy shouldRun(IInvocationContext context);
বাস্তবায়ন
কিছু লগ সংগ্রহ বা ব্যর্থতার উপর না
একটি সম্পূর্ণ স্যুট চালানোর সময়, স্যুট স্তরে কিছু লগ অন ব্যর্থতার (স্ক্রিনশট, বাগ রিপোর্ট, লগক্যাট) সংগ্রহের অনুরোধ করা সম্ভব। কিন্তু কিছু মডিউলের জন্য, অনুরোধ করা একটি নির্দিষ্ট লগের কোনো মূল্য নাও থাকতে পারে এবং এটি সংগ্রহ করতে সময় নষ্ট করবে। সেই পরিস্থিতিতে, একটি মডিউল স্পষ্টভাবে উল্লেখ করতে পারে যে তারা কোন লগগুলিতে আগ্রহী:
<object type="module_controller"
class="com.android.tradefed.testtype.suite.module.TestFailureModuleController">
<option name="screenshot-on-failure" value="<true OR false>" />
<option name="bugreportz-on-failure" value="<true OR false>" />
<option name="logcat-on-failure" value="<true OR false>" />
</object>
দ্রষ্টব্য: পুনঃব্যবহারযোগ্যতা সর্বাধিক করার জন্য সম্ভব হলে নিয়ন্ত্রকগুলির বাস্তবায়ন জেনেরিক হওয়া উচিত। এবং একটি মডিউল এড়িয়ে যাওয়া তার অবস্থার উপর ভিত্তি করে মডিউল মালিকের দ্বারা পর্যালোচনা করা উচিত যাতে একটি মডিউল এড়িয়ে যাওয়া তাদের জন্য সঠিক আচরণ।
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Employ module controllers\n\nEach suite module (defined by `AndroidTest.xml`) can contain a special\n`module_controller` object that can alter some behavior of the module:\n\nWhether to run the module or not based on some conditions\n---------------------------------------------------------\n\nBy implementing [BaseModuleController](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/testtype/suite/module/BaseModuleController.java)\nand adding it to the `AndroidTest.xml` like this: \n\n \u003cobject type=\"module_controller\" class=\"com.android.tradefed.testtype.suite.module.\u003cNAME\u003e\" /\u003e\n\nThe module controller will be used to determine whether the module should run\nor not, based on the\n`public abstract RunStrategy shouldRun(IInvocationContext context);`\nimplementation.\n\nWhether to collect some logs or not on failures\n-----------------------------------------------\n\nWhen running a full suite, it's possible to request at the suite level the\ncollection of some logs on failures (screenshot, bugreport, logcat). But for\nsome modules, a particular log requested might not have any value and will\nsimply waste time to be collected. In that situation, a module can explicitly\nspecify which logs they are interested in: \n\n \u003cobject type=\"module_controller\"\n class=\"com.android.tradefed.testtype.suite.module.TestFailureModuleController\"\u003e\n \u003coption name=\"screenshot-on-failure\" value=\"\u003ctrue OR false\u003e\" /\u003e\n \u003coption name=\"bugreportz-on-failure\" value=\"\u003ctrue OR false\u003e\" /\u003e\n \u003coption name=\"logcat-on-failure\" value=\"\u003ctrue OR false\u003e\" /\u003e\n \u003c/object\u003e\n\nNOTE: Implementation of controllers should be generic if possible in order to\nmaximize re-usability. And skipping a module based on its condition should\nbe reviewed by the module owner to get the approval that skipping a module is\nthe proper behavior for them."]]