• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "android/hardware/tests/msgq/1.0/TestMsgQ.vts.h"
2 #include "vts_measurement.h"
3 #include <android-base/logging.h>
4 #include <android/hidl/allocator/1.0/IAllocator.h>
5 #include <fmq/MessageQueue.h>
6 #include <sys/stat.h>
7 #include <unistd.h>
8 
9 
10 using namespace android::hardware::tests::msgq::V1_0;
11 namespace android {
12 namespace vts {
MessageTo__android__hardware__tests__msgq__V1_0__ITestMsgQ__EventFlagBits(const VariableSpecificationMessage & var_msg,::android::hardware::tests::msgq::V1_0::ITestMsgQ::EventFlagBits * arg,const string & callback_socket_name)13 extern "C" void MessageTo__android__hardware__tests__msgq__V1_0__ITestMsgQ__EventFlagBits(const VariableSpecificationMessage& var_msg __attribute__((__unused__)), ::android::hardware::tests::msgq::V1_0::ITestMsgQ::EventFlagBits* arg __attribute__((__unused__)), const string& callback_socket_name __attribute__((__unused__))) {
14     *arg = (::android::hardware::tests::msgq::V1_0::ITestMsgQ::EventFlagBits)var_msg.scalar_value().uint32_t();
15 }
Random__android__hardware__tests__msgq__V1_0__ITestMsgQ__EventFlagBits()16 uint32_t Random__android__hardware__tests__msgq__V1_0__ITestMsgQ__EventFlagBits() {
17     uint32_t choice = (uint32_t) rand() / 2;
18     if (choice == (uint32_t) 1UL) return static_cast<uint32_t>(::android::hardware::tests::msgq::V1_0::ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY);
19     if (choice == (uint32_t) 2UL) return static_cast<uint32_t>(::android::hardware::tests::msgq::V1_0::ITestMsgQ::EventFlagBits::FMQ_NOT_FULL);
20     return static_cast<uint32_t>(::android::hardware::tests::msgq::V1_0::ITestMsgQ::EventFlagBits::FMQ_NOT_EMPTY);
21 }
Verify__android__hardware__tests__msgq__V1_0__ITestMsgQ__EventFlagBits(const VariableSpecificationMessage & expected_result,const VariableSpecificationMessage & actual_result)22 bool Verify__android__hardware__tests__msgq__V1_0__ITestMsgQ__EventFlagBits(const VariableSpecificationMessage& expected_result __attribute__((__unused__)), const VariableSpecificationMessage& actual_result __attribute__((__unused__))){
23     if (actual_result.scalar_value().uint32_t() != expected_result.scalar_value().uint32_t()) { return false; }
24     return true;
25 }
26 
SetResult__android__hardware__tests__msgq__V1_0__ITestMsgQ__EventFlagBits(VariableSpecificationMessage * result_msg,::android::hardware::tests::msgq::V1_0::ITestMsgQ::EventFlagBits result_value)27 extern "C" void SetResult__android__hardware__tests__msgq__V1_0__ITestMsgQ__EventFlagBits(VariableSpecificationMessage* result_msg, ::android::hardware::tests::msgq::V1_0::ITestMsgQ::EventFlagBits result_value __attribute__((__unused__))){
28     result_msg->set_type(TYPE_ENUM);
29     result_msg->set_scalar_type("uint32_t");
30     result_msg->mutable_scalar_value()->set_uint32_t(static_cast<uint32_t>(result_value));
31 }
32 
GetService(bool get_stub,const char * service_name)33 bool FuzzerExtended_android_hardware_tests_msgq_V1_0_ITestMsgQ::GetService(bool get_stub, const char* service_name) {
34     static bool initialized = false;
35     if (!initialized) {
36         LOG(INFO) << "HIDL getService";
37         if (service_name) {
38           LOG(INFO) << "  - service name: " << service_name;
39         }
40         hw_binder_proxy_ = ::android::hardware::tests::msgq::V1_0::ITestMsgQ::getService(service_name, get_stub);
41         if (hw_binder_proxy_ == nullptr) {
42             LOG(ERROR) << "getService() returned a null pointer.";
43             return false;
44         }
45         LOG(DEBUG) << "hw_binder_proxy_ = " << hw_binder_proxy_.get();
46         initialized = true;
47     }
48     return true;
49 }
50 
51 
configureFmqSyncReadWrite(const::android::hardware::MQDescriptorSync<uint16_t> & arg0)52 ::android::hardware::Return<bool> Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::configureFmqSyncReadWrite(
53     const ::android::hardware::MQDescriptorSync<uint16_t>& arg0 __attribute__((__unused__))) {
54     LOG(INFO) << "configureFmqSyncReadWrite called";
55     AndroidSystemCallbackRequestMessage callback_message;
56     callback_message.set_id(GetCallbackID("configureFmqSyncReadWrite"));
57     callback_message.set_name("Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::configureFmqSyncReadWrite");
58     VariableSpecificationMessage* var_msg0 = callback_message.add_arg();
59     var_msg0->set_type(TYPE_FMQ_SYNC);
60     VariableSpecificationMessage* var_msg0_item = var_msg0->add_fmq_value();
61     var_msg0_item->set_type(TYPE_SCALAR);
62     var_msg0_item->set_scalar_type("uint16_t");
63     var_msg0_item->set_fmq_desc_address(reinterpret_cast<size_t>(new (std::nothrow) ::android::hardware::MQDescriptorSync<uint16_t>(arg0)));
64     RpcCallToAgent(callback_message, callback_socket_name_);
65     return static_cast<bool>(0);
66 }
67 
getFmqUnsyncWrite(bool arg0,std::function<void (bool arg0,const::android::hardware::MQDescriptorUnsync<uint16_t> & arg1)> cb)68 ::android::hardware::Return<void> Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::getFmqUnsyncWrite(
69     bool arg0 __attribute__((__unused__)), std::function<void(bool arg0,const ::android::hardware::MQDescriptorUnsync<uint16_t>& arg1)> cb) {
70     LOG(INFO) << "getFmqUnsyncWrite called";
71     AndroidSystemCallbackRequestMessage callback_message;
72     callback_message.set_id(GetCallbackID("getFmqUnsyncWrite"));
73     callback_message.set_name("Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::getFmqUnsyncWrite");
74     VariableSpecificationMessage* var_msg0 = callback_message.add_arg();
75     var_msg0->set_type(TYPE_SCALAR);
76     var_msg0->set_scalar_type("bool_t");
77     var_msg0->mutable_scalar_value()->set_bool_t(arg0);
78     RpcCallToAgent(callback_message, callback_socket_name_);
79     cb(static_cast<bool>(0), ::android::hardware::MQDescriptorUnsync<uint16_t>());
80     return ::android::hardware::Void();
81 }
82 
requestWriteFmqSync(int32_t arg0)83 ::android::hardware::Return<bool> Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestWriteFmqSync(
84     int32_t arg0 __attribute__((__unused__))) {
85     LOG(INFO) << "requestWriteFmqSync called";
86     AndroidSystemCallbackRequestMessage callback_message;
87     callback_message.set_id(GetCallbackID("requestWriteFmqSync"));
88     callback_message.set_name("Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestWriteFmqSync");
89     VariableSpecificationMessage* var_msg0 = callback_message.add_arg();
90     var_msg0->set_type(TYPE_SCALAR);
91     var_msg0->set_scalar_type("int32_t");
92     var_msg0->mutable_scalar_value()->set_int32_t(arg0);
93     RpcCallToAgent(callback_message, callback_socket_name_);
94     return static_cast<bool>(0);
95 }
96 
requestReadFmqSync(int32_t arg0)97 ::android::hardware::Return<bool> Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestReadFmqSync(
98     int32_t arg0 __attribute__((__unused__))) {
99     LOG(INFO) << "requestReadFmqSync called";
100     AndroidSystemCallbackRequestMessage callback_message;
101     callback_message.set_id(GetCallbackID("requestReadFmqSync"));
102     callback_message.set_name("Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestReadFmqSync");
103     VariableSpecificationMessage* var_msg0 = callback_message.add_arg();
104     var_msg0->set_type(TYPE_SCALAR);
105     var_msg0->set_scalar_type("int32_t");
106     var_msg0->mutable_scalar_value()->set_int32_t(arg0);
107     RpcCallToAgent(callback_message, callback_socket_name_);
108     return static_cast<bool>(0);
109 }
110 
requestWriteFmqUnsync(int32_t arg0)111 ::android::hardware::Return<bool> Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestWriteFmqUnsync(
112     int32_t arg0 __attribute__((__unused__))) {
113     LOG(INFO) << "requestWriteFmqUnsync called";
114     AndroidSystemCallbackRequestMessage callback_message;
115     callback_message.set_id(GetCallbackID("requestWriteFmqUnsync"));
116     callback_message.set_name("Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestWriteFmqUnsync");
117     VariableSpecificationMessage* var_msg0 = callback_message.add_arg();
118     var_msg0->set_type(TYPE_SCALAR);
119     var_msg0->set_scalar_type("int32_t");
120     var_msg0->mutable_scalar_value()->set_int32_t(arg0);
121     RpcCallToAgent(callback_message, callback_socket_name_);
122     return static_cast<bool>(0);
123 }
124 
requestReadFmqUnsync(int32_t arg0)125 ::android::hardware::Return<bool> Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestReadFmqUnsync(
126     int32_t arg0 __attribute__((__unused__))) {
127     LOG(INFO) << "requestReadFmqUnsync called";
128     AndroidSystemCallbackRequestMessage callback_message;
129     callback_message.set_id(GetCallbackID("requestReadFmqUnsync"));
130     callback_message.set_name("Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestReadFmqUnsync");
131     VariableSpecificationMessage* var_msg0 = callback_message.add_arg();
132     var_msg0->set_type(TYPE_SCALAR);
133     var_msg0->set_scalar_type("int32_t");
134     var_msg0->mutable_scalar_value()->set_int32_t(arg0);
135     RpcCallToAgent(callback_message, callback_socket_name_);
136     return static_cast<bool>(0);
137 }
138 
requestBlockingRead(int32_t arg0)139 ::android::hardware::Return<void> Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestBlockingRead(
140     int32_t arg0 __attribute__((__unused__))) {
141     LOG(INFO) << "requestBlockingRead called";
142     AndroidSystemCallbackRequestMessage callback_message;
143     callback_message.set_id(GetCallbackID("requestBlockingRead"));
144     callback_message.set_name("Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestBlockingRead");
145     VariableSpecificationMessage* var_msg0 = callback_message.add_arg();
146     var_msg0->set_type(TYPE_SCALAR);
147     var_msg0->set_scalar_type("int32_t");
148     var_msg0->mutable_scalar_value()->set_int32_t(arg0);
149     RpcCallToAgent(callback_message, callback_socket_name_);
150     return ::android::hardware::Void();
151 }
152 
requestBlockingReadDefaultEventFlagBits(int32_t arg0)153 ::android::hardware::Return<void> Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestBlockingReadDefaultEventFlagBits(
154     int32_t arg0 __attribute__((__unused__))) {
155     LOG(INFO) << "requestBlockingReadDefaultEventFlagBits called";
156     AndroidSystemCallbackRequestMessage callback_message;
157     callback_message.set_id(GetCallbackID("requestBlockingReadDefaultEventFlagBits"));
158     callback_message.set_name("Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestBlockingReadDefaultEventFlagBits");
159     VariableSpecificationMessage* var_msg0 = callback_message.add_arg();
160     var_msg0->set_type(TYPE_SCALAR);
161     var_msg0->set_scalar_type("int32_t");
162     var_msg0->mutable_scalar_value()->set_int32_t(arg0);
163     RpcCallToAgent(callback_message, callback_socket_name_);
164     return ::android::hardware::Void();
165 }
166 
requestBlockingReadRepeat(int32_t arg0,int32_t arg1)167 ::android::hardware::Return<void> Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestBlockingReadRepeat(
168     int32_t arg0 __attribute__((__unused__)),
169     int32_t arg1 __attribute__((__unused__))) {
170     LOG(INFO) << "requestBlockingReadRepeat called";
171     AndroidSystemCallbackRequestMessage callback_message;
172     callback_message.set_id(GetCallbackID("requestBlockingReadRepeat"));
173     callback_message.set_name("Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::requestBlockingReadRepeat");
174     VariableSpecificationMessage* var_msg0 = callback_message.add_arg();
175     var_msg0->set_type(TYPE_SCALAR);
176     var_msg0->set_scalar_type("int32_t");
177     var_msg0->mutable_scalar_value()->set_int32_t(arg0);
178     VariableSpecificationMessage* var_msg1 = callback_message.add_arg();
179     var_msg1->set_type(TYPE_SCALAR);
180     var_msg1->set_scalar_type("int32_t");
181     var_msg1->mutable_scalar_value()->set_int32_t(arg1);
182     RpcCallToAgent(callback_message, callback_socket_name_);
183     return ::android::hardware::Void();
184 }
185 
VtsFuzzerCreateVts_android_hardware_tests_msgq_V1_0_ITestMsgQ(const string & callback_socket_name)186 sp<::android::hardware::tests::msgq::V1_0::ITestMsgQ> VtsFuzzerCreateVts_android_hardware_tests_msgq_V1_0_ITestMsgQ(const string& callback_socket_name) {
187     static sp<::android::hardware::tests::msgq::V1_0::ITestMsgQ> result;
188     result = new Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ(callback_socket_name);
189     return result;
190 }
191 
Fuzz(FunctionSpecificationMessage *,void **,const string &)192 bool FuzzerExtended_android_hardware_tests_msgq_V1_0_ITestMsgQ::Fuzz(
193     FunctionSpecificationMessage* /*func_msg*/,
194     void** /*result*/, const string& /*callback_socket_name*/) {
195     return true;
196 }
GetAttribute(FunctionSpecificationMessage *,void **)197 bool FuzzerExtended_android_hardware_tests_msgq_V1_0_ITestMsgQ::GetAttribute(
198     FunctionSpecificationMessage* /*func_msg*/,
199     void** /*result*/) {
200     LOG(ERROR) << "attribute not found.";
201     return false;
202 }
CallFunction(const FunctionSpecificationMessage & func_msg,const string & callback_socket_name,FunctionSpecificationMessage * result_msg)203 bool FuzzerExtended_android_hardware_tests_msgq_V1_0_ITestMsgQ::CallFunction(
204     const FunctionSpecificationMessage& func_msg,
205     const string& callback_socket_name __attribute__((__unused__)),
206     FunctionSpecificationMessage* result_msg) {
207     const char* func_name = func_msg.name().c_str();
208     if (hw_binder_proxy_ == nullptr) {
209         LOG(ERROR) << "hw_binder_proxy_ is null. ";
210         return false;
211     }
212     if (!strcmp(func_name, "configureFmqSyncReadWrite")) {
213         const ::android::hardware::MQDescriptorSync<uint16_t>* arg0;
214         if (func_msg.arg(0).fmq_value_size() > 0 && func_msg.arg(0).fmq_value(0).has_fmq_desc_address()) {
215             arg0 = reinterpret_cast<::android::hardware::MQDescriptorSync<uint16_t>*>(func_msg.arg(0).fmq_value(0).fmq_desc_address());
216         } else {
217             ::android::hardware::MessageQueue<uint16_t, ::android::hardware::kSynchronizedReadWrite> arg0_sync_q(1024);
218             for (int i = 0; i < (int)func_msg.arg(0).fmq_value_size(); i++) {
219                 uint16_t arg0_sync_q_item;
220                 arg0_sync_q_item = func_msg.arg(0).fmq_value(i).scalar_value().uint16_t();
221                 arg0_sync_q.write(&arg0_sync_q_item);
222             }
223             arg0 = arg0_sync_q.getDesc();
224         }
225         LOG(DEBUG) << "local_device = " << hw_binder_proxy_.get();
226         bool result0 = hw_binder_proxy_->configureFmqSyncReadWrite(*arg0);
227         result_msg->set_name("configureFmqSyncReadWrite");
228         VariableSpecificationMessage* result_val_0 = result_msg->add_return_type_hidl();
229         result_val_0->set_type(TYPE_SCALAR);
230         result_val_0->set_scalar_type("bool_t");
231         result_val_0->mutable_scalar_value()->set_bool_t(result0);
232         return true;
233     }
234     if (!strcmp(func_name, "getFmqUnsyncWrite")) {
235         bool arg0 = 0;
236         arg0 = func_msg.arg(0).scalar_value().bool_t();
237         LOG(DEBUG) << "local_device = " << hw_binder_proxy_.get();
238         hw_binder_proxy_->getFmqUnsyncWrite(arg0, [&](bool arg0 __attribute__((__unused__)),const ::android::hardware::MQDescriptorUnsync<uint16_t>& arg1 __attribute__((__unused__))){
239             LOG(INFO) << "callback getFmqUnsyncWrite called";
240             result_msg->set_name("getFmqUnsyncWrite");
241             VariableSpecificationMessage* result_val_0 = result_msg->add_return_type_hidl();
242             result_val_0->set_type(TYPE_SCALAR);
243             result_val_0->set_scalar_type("bool_t");
244             result_val_0->mutable_scalar_value()->set_bool_t(arg0);
245             VariableSpecificationMessage* result_val_1 = result_msg->add_return_type_hidl();
246             result_val_1->set_type(TYPE_FMQ_UNSYNC);
247             VariableSpecificationMessage* result_val_1_item = result_val_1->add_fmq_value();
248             result_val_1_item->set_type(TYPE_SCALAR);
249             result_val_1_item->set_scalar_type("uint16_t");
250             result_val_1_item->set_fmq_desc_address(reinterpret_cast<size_t>(new (std::nothrow) ::android::hardware::MQDescriptorUnsync<uint16_t>(arg1)));
251         });
252         return true;
253     }
254     if (!strcmp(func_name, "requestWriteFmqSync")) {
255         int32_t arg0 = 0;
256         arg0 = func_msg.arg(0).scalar_value().int32_t();
257         LOG(DEBUG) << "local_device = " << hw_binder_proxy_.get();
258         bool result0 = hw_binder_proxy_->requestWriteFmqSync(arg0);
259         result_msg->set_name("requestWriteFmqSync");
260         VariableSpecificationMessage* result_val_0 = result_msg->add_return_type_hidl();
261         result_val_0->set_type(TYPE_SCALAR);
262         result_val_0->set_scalar_type("bool_t");
263         result_val_0->mutable_scalar_value()->set_bool_t(result0);
264         return true;
265     }
266     if (!strcmp(func_name, "requestReadFmqSync")) {
267         int32_t arg0 = 0;
268         arg0 = func_msg.arg(0).scalar_value().int32_t();
269         LOG(DEBUG) << "local_device = " << hw_binder_proxy_.get();
270         bool result0 = hw_binder_proxy_->requestReadFmqSync(arg0);
271         result_msg->set_name("requestReadFmqSync");
272         VariableSpecificationMessage* result_val_0 = result_msg->add_return_type_hidl();
273         result_val_0->set_type(TYPE_SCALAR);
274         result_val_0->set_scalar_type("bool_t");
275         result_val_0->mutable_scalar_value()->set_bool_t(result0);
276         return true;
277     }
278     if (!strcmp(func_name, "requestWriteFmqUnsync")) {
279         int32_t arg0 = 0;
280         arg0 = func_msg.arg(0).scalar_value().int32_t();
281         LOG(DEBUG) << "local_device = " << hw_binder_proxy_.get();
282         bool result0 = hw_binder_proxy_->requestWriteFmqUnsync(arg0);
283         result_msg->set_name("requestWriteFmqUnsync");
284         VariableSpecificationMessage* result_val_0 = result_msg->add_return_type_hidl();
285         result_val_0->set_type(TYPE_SCALAR);
286         result_val_0->set_scalar_type("bool_t");
287         result_val_0->mutable_scalar_value()->set_bool_t(result0);
288         return true;
289     }
290     if (!strcmp(func_name, "requestReadFmqUnsync")) {
291         int32_t arg0 = 0;
292         arg0 = func_msg.arg(0).scalar_value().int32_t();
293         LOG(DEBUG) << "local_device = " << hw_binder_proxy_.get();
294         bool result0 = hw_binder_proxy_->requestReadFmqUnsync(arg0);
295         result_msg->set_name("requestReadFmqUnsync");
296         VariableSpecificationMessage* result_val_0 = result_msg->add_return_type_hidl();
297         result_val_0->set_type(TYPE_SCALAR);
298         result_val_0->set_scalar_type("bool_t");
299         result_val_0->mutable_scalar_value()->set_bool_t(result0);
300         return true;
301     }
302     if (!strcmp(func_name, "requestBlockingRead")) {
303         int32_t arg0 = 0;
304         arg0 = func_msg.arg(0).scalar_value().int32_t();
305         LOG(DEBUG) << "local_device = " << hw_binder_proxy_.get();
306         hw_binder_proxy_->requestBlockingRead(arg0);
307         result_msg->set_name("requestBlockingRead");
308         return true;
309     }
310     if (!strcmp(func_name, "requestBlockingReadDefaultEventFlagBits")) {
311         int32_t arg0 = 0;
312         arg0 = func_msg.arg(0).scalar_value().int32_t();
313         LOG(DEBUG) << "local_device = " << hw_binder_proxy_.get();
314         hw_binder_proxy_->requestBlockingReadDefaultEventFlagBits(arg0);
315         result_msg->set_name("requestBlockingReadDefaultEventFlagBits");
316         return true;
317     }
318     if (!strcmp(func_name, "requestBlockingReadRepeat")) {
319         int32_t arg0 = 0;
320         arg0 = func_msg.arg(0).scalar_value().int32_t();
321         int32_t arg1 = 0;
322         arg1 = func_msg.arg(1).scalar_value().int32_t();
323         LOG(DEBUG) << "local_device = " << hw_binder_proxy_.get();
324         hw_binder_proxy_->requestBlockingReadRepeat(arg0, arg1);
325         result_msg->set_name("requestBlockingReadRepeat");
326         return true;
327     }
328     if (!strcmp(func_name, "notifySyspropsChanged")) {
329         LOG(INFO) << "Call notifySyspropsChanged";
330         hw_binder_proxy_->notifySyspropsChanged();
331         result_msg->set_name("notifySyspropsChanged");
332         return true;
333     }
334     return false;
335 }
336 
VerifyResults(const FunctionSpecificationMessage & expected_result,const FunctionSpecificationMessage & actual_result)337 bool FuzzerExtended_android_hardware_tests_msgq_V1_0_ITestMsgQ::VerifyResults(const FunctionSpecificationMessage& expected_result __attribute__((__unused__)),
338     const FunctionSpecificationMessage& actual_result __attribute__((__unused__))) {
339     if (!strcmp(actual_result.name().c_str(), "configureFmqSyncReadWrite")) {
340         if (actual_result.return_type_hidl_size() != expected_result.return_type_hidl_size() ) { return false; }
341         if (actual_result.return_type_hidl(0).scalar_value().bool_t() != expected_result.return_type_hidl(0).scalar_value().bool_t()) { return false; }
342         return true;
343     }
344     if (!strcmp(actual_result.name().c_str(), "getFmqUnsyncWrite")) {
345         if (actual_result.return_type_hidl_size() != expected_result.return_type_hidl_size() ) { return false; }
346         if (actual_result.return_type_hidl(0).scalar_value().bool_t() != expected_result.return_type_hidl(0).scalar_value().bool_t()) { return false; }
347         LOG(ERROR) << "TYPE_FMQ_UNSYNC is not supported yet. ";
348         return true;
349     }
350     if (!strcmp(actual_result.name().c_str(), "requestWriteFmqSync")) {
351         if (actual_result.return_type_hidl_size() != expected_result.return_type_hidl_size() ) { return false; }
352         if (actual_result.return_type_hidl(0).scalar_value().bool_t() != expected_result.return_type_hidl(0).scalar_value().bool_t()) { return false; }
353         return true;
354     }
355     if (!strcmp(actual_result.name().c_str(), "requestReadFmqSync")) {
356         if (actual_result.return_type_hidl_size() != expected_result.return_type_hidl_size() ) { return false; }
357         if (actual_result.return_type_hidl(0).scalar_value().bool_t() != expected_result.return_type_hidl(0).scalar_value().bool_t()) { return false; }
358         return true;
359     }
360     if (!strcmp(actual_result.name().c_str(), "requestWriteFmqUnsync")) {
361         if (actual_result.return_type_hidl_size() != expected_result.return_type_hidl_size() ) { return false; }
362         if (actual_result.return_type_hidl(0).scalar_value().bool_t() != expected_result.return_type_hidl(0).scalar_value().bool_t()) { return false; }
363         return true;
364     }
365     if (!strcmp(actual_result.name().c_str(), "requestReadFmqUnsync")) {
366         if (actual_result.return_type_hidl_size() != expected_result.return_type_hidl_size() ) { return false; }
367         if (actual_result.return_type_hidl(0).scalar_value().bool_t() != expected_result.return_type_hidl(0).scalar_value().bool_t()) { return false; }
368         return true;
369     }
370     if (!strcmp(actual_result.name().c_str(), "requestBlockingRead")) {
371         if (actual_result.return_type_hidl_size() != expected_result.return_type_hidl_size() ) { return false; }
372         return true;
373     }
374     if (!strcmp(actual_result.name().c_str(), "requestBlockingReadDefaultEventFlagBits")) {
375         if (actual_result.return_type_hidl_size() != expected_result.return_type_hidl_size() ) { return false; }
376         return true;
377     }
378     if (!strcmp(actual_result.name().c_str(), "requestBlockingReadRepeat")) {
379         if (actual_result.return_type_hidl_size() != expected_result.return_type_hidl_size() ) { return false; }
380         return true;
381     }
382     return false;
383 }
384 
385 extern "C" {
vts_func_4_android_hardware_tests_msgq_V1_0_ITestMsgQ_()386 android::vts::DriverBase* vts_func_4_android_hardware_tests_msgq_V1_0_ITestMsgQ_() {
387     return (android::vts::DriverBase*) new android::vts::FuzzerExtended_android_hardware_tests_msgq_V1_0_ITestMsgQ();
388 }
389 
vts_func_4_android_hardware_tests_msgq_V1_0_ITestMsgQ_with_arg(uint64_t hw_binder_proxy)390 android::vts::DriverBase* vts_func_4_android_hardware_tests_msgq_V1_0_ITestMsgQ_with_arg(uint64_t hw_binder_proxy) {
391     ::android::hardware::tests::msgq::V1_0::ITestMsgQ* arg = nullptr;
392     if (hw_binder_proxy) {
393         arg = reinterpret_cast<::android::hardware::tests::msgq::V1_0::ITestMsgQ*>(hw_binder_proxy);
394     } else {
395         LOG(INFO) << " Creating DriverBase with null proxy.";
396     }
397     android::vts::DriverBase* result =
398         new android::vts::FuzzerExtended_android_hardware_tests_msgq_V1_0_ITestMsgQ(
399             arg);
400     if (arg != nullptr) {
401         arg->decStrong(arg);
402     }
403     return result;
404 }
405 
406 }
407 }  // namespace vts
408 }  // namespace android
409