ইন্সট্রুমেন্টেশনপ্রোটোরিজাল্টপার্সার
public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser
| java.lang.Object | |
| ↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
শেল থেকে চালানো একটি ইন্সট্রুমেন্টেশন টেস্টের 'protoStd আউটপুট মোড'-এর ফলাফল পার্স করে এবং একটি ITestRunListener-কে সেই ফলাফল সম্পর্কে অবহিত করে।
"-m" অপশন সহ am instrument কমান্ডটি টেস্ট এক্সিকিউশন স্ট্যাটাস বাইনারি প্রোটোবাফ ফরম্যাটে পর্যায়ক্রমে আউটপুট করে। আউটপুট প্রোটোবাফ মেসেজটি হলো InstrumentationData.Session , যার দুটি ফিল্ড রয়েছে: ১) InstrumentationData.TestStatus এর একটি পুনরাবৃত্ত ফিল্ড, ২) InstrumentationData.SessionStatus । am instrument কমান্ডটি প্রতিটি টেস্ট এক্সিকিউশনের আগে/পরে টেস্ট স্ট্যাটাস মেসেজ আউটপুট করে। addOutput(byte, int, int) একটি data আর্গুমেন্টের সাথে কল করা হয়, যা হলো TestStatus এর সিরিয়ালাইজড বাইট। যখন সমস্ত টেস্ট সম্পন্ন হয়, কমান্ডটি সবশেষে SessionStatus আউটপুট করে।
সম্পূর্ণ প্রোটোবাফ সংজ্ঞার জন্য https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto দেখুন।
InstrumentationProtoResultParser একটি স্টেট-মেশিন এবং এর স্টেটগুলো ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState) -এ সংজ্ঞায়িত করা আছে। স্টেটটি ERROR(InstrumentationProtoResultParserState.NOT_STARTED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED InstrumentationProtoResultParserState.NOT_STARTED) -এর মাধ্যমে শুরু হয়। যখন এটি প্রথম কোনো টেস্ট কেসের স্ট্যাটাস দেখতে পায়, তখন এটি ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING) -এ চলে যায়। সমস্ত পরীক্ষা সম্পন্ন হলে স্টেটটি ERROR(InstrumentationProtoResultParserState.FINISHED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED InstrumentationProtoResultParserState.FINISHED) -এ পরিবর্তিত হয়, অথবা cancel() কল করে অনুরোধ করা হলে ERROR(InstrumentationProtoResultParserState.CANCELLED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED InstrumentationProtoResultParserState.CANCELLED) ।
যখনই পরীক্ষার নতুন অবস্থা জানা যাবে, নিবন্ধিত শ্রোতাদের তা জানিয়ে দেওয়া হবে।
সারসংক্ষেপ
সরকারি নির্মাণকারী | |
|---|---|
InstrumentationProtoResultParser (String runName, Collection< ITestRunListener > listeners) | |
জনসাধারণের পদ্ধতি | |
|---|---|
void | addOutput (byte[] data, int offset, int length)যখনই কোনো নতুন ডেটা পাওয়া যায়, এই মেথডটি কল করা হয়। |
void | cancel ()পরীক্ষামূলক চালনা বাতিলের অনুরোধ। |
void | flush ()প্রসেসটির নির্বাহ শেষে এটিকে কল করা হয় (যদি না প্রসেসটি বাতিল করা হয়ে থাকে)। |
void | handleTestRunFailed (String errorMsg)যখন "am instrument" কমান্ডটি কোনো ব্যতিক্রমের কারণে ক্র্যাশ করে, তখন এই মেথডটি কল করা হয়। |
boolean | isCancelled ()রিমোট শেল কমান্ডের নির্বাহ বন্ধ করার জন্য ব্যবহৃত ক্যানসেল মেথড। |
সরকারি নির্মাণকারী
ইন্সট্রুমেন্টেশনপ্রোটোরিজাল্টপার্সার
public InstrumentationProtoResultParser (String runName,
Collection<ITestRunListener> listeners) InstrumentationProtoResultParser গঠন করে।
| প্যারামিটার | |
|---|---|
runName | String : ITestRunListener.testRunStarted এ প্রদান করার জন্য টেস্ট রানের নাম। |
listeners | Collection : পরীক্ষা চলাকালীনই পরীক্ষার ফলাফল সম্পর্কে অবহিত করা হয়। |
জনসাধারণের পদ্ধতি
আউটপুট যোগ করুন
public void addOutput (byte[] data,
int offset,
int length)যখনই কোনো নতুন ডেটা পাওয়া যায়, এই মেথডটি কল করা হয়।
| প্যারামিটার | |
|---|---|
data | byte : InstrumentationData.Session মেসেজের একটি সিরিয়ালাইজড ডেটা। যদি data একটি অসম্পূর্ণ খণ্ড হয়, তবে সেগুলি একটি অভ্যন্তরীণ বাফারে যুক্ত করা হয় এবং পরবর্তী addOutput(byte, int, int) কলে প্রক্রিয়াজাত করা হবে। |
offset | int : data সংরক্ষিত নতুন ডেটার অফসেট |
length | int : প্রক্রিয়াজাত করার জন্য নতুন data বাইট সংখ্যা। |
বাতিল করুন
public void cancel ()
পরীক্ষামূলক চালনা বাতিলের অনুরোধ।
ফ্লাশ
public void flush ()
প্রসেসটির নির্বাহ শেষে এটিকে কল করা হয় (যদি না প্রসেসটি বাতিল করা হয়ে থাকে)। এটি রিসিভারকে টার্মিনেট করার এবং যে ডেটা এখনও প্রসেস করা হয়নি তা ফ্লাশ করার সুযোগ দেয়।
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
যখন "am instrument" কমান্ডটি কোনো এক্সেপশন সহ ক্র্যাশ করে, তখন এই মেথডটি কল করা হয়। টেস্ট চলাকালীন ক্র্যাশটি ঘটলে, সমস্ত রেজিস্টার্ড লিসেনারকে প্রথমে ITestRunListener.testRunFailed এবং তারপরে ITestRunListener.testRunEnded দ্বারা অবহিত করা উচিত।
| প্যারামিটার | |
|---|---|
errorMsg | String |
বাতিল করা হয়েছে
public boolean isCancelled ()
রিমোট শেল কমান্ডের নির্বাহ বন্ধ করার জন্য ব্যবহৃত ক্যানসেল মেথড।
| ফেরত | |
|---|---|
boolean | কমান্ডটির কার্যকারিতা বাতিল করতে 'true' নির্বাচন করুন। |