1 #include "test/vts/specification/hal/Nfc.vts.h" 2 3 using namespace android::hardware::nfc::V1_0; 4 using namespace android::hardware; 5 6 #define TRACEFILEPREFIX "/data/local/tmp" 7 8 namespace android { 9 namespace vts { 10 11 void HIDL_INSTRUMENTATION_FUNCTION_android_hardware_nfc_V1_0_INfc( 12 details::HidlInstrumentor::InstrumentationEvent event, 13 const char* package, 14 const char* version, 15 const char* interface, 16 const char* method, 17 std::vector<void *> *args) { 18 if (strcmp(package, "android.hardware.nfc") != 0) { 19 LOG(WARNING) << "incorrect package."; 20 return; 21 } 22 if (strcmp(version, "1.0") != 0) { 23 LOG(WARNING) << "incorrect version."; 24 return; 25 } 26 if (strcmp(interface, "INfc") != 0) { 27 LOG(WARNING) << "incorrect interface."; 28 return; 29 } 30 31 char trace_file[PATH_MAX]; 32 sprintf(trace_file, "%s/%s_%s", TRACEFILEPREFIX, package, version); 33 VtsProfilingInterface& profiler = VtsProfilingInterface::getInstance(trace_file); 34 profiler.Init(); 35 36 if (strcmp(method, "open") == 0) { 37 FunctionSpecificationMessage msg; 38 msg.set_name("open"); 39 if (!args) { 40 LOG(WARNING) << "no argument passed"; 41 } else { 42 switch (event) { 43 case details::HidlInstrumentor::CLIENT_API_ENTRY: 44 case details::HidlInstrumentor::SERVER_API_ENTRY: 45 case details::HidlInstrumentor::PASSTHROUGH_ENTRY: 46 { 47 if ((*args).size() != 1) { 48 LOG(ERROR) << "Number of arguments does not match. expect: 1, actual: " << (*args).size() << ", method name: open, event type: " << event; 49 break; 50 } 51 auto *arg_0 = msg.add_arg(); 52 sp<::android::hardware::nfc::V1_0::INfcClientCallback> *arg_val_0 = reinterpret_cast<sp<::android::hardware::nfc::V1_0::INfcClientCallback>*> ((*args)[0]); 53 arg_0->set_type(TYPE_HIDL_CALLBACK); 54 break; 55 } 56 case details::HidlInstrumentor::CLIENT_API_EXIT: 57 case details::HidlInstrumentor::SERVER_API_EXIT: 58 case details::HidlInstrumentor::PASSTHROUGH_EXIT: 59 { 60 if ((*args).size() != 1) { 61 LOG(ERROR) << "Number of return values does not match. expect: 1, actual: " << (*args).size() << ", method name: open, event type: " << event; 62 break; 63 } 64 auto *result_0 = msg.add_return_type_hidl(); 65 ::android::hardware::nfc::V1_0::NfcStatus *result_val_0 = reinterpret_cast<::android::hardware::nfc::V1_0::NfcStatus*> ((*args)[0]); 66 result_0->set_type(TYPE_ENUM); 67 profile____android__hardware__nfc__V1_0__NfcStatus(result_0, (*result_val_0)); 68 break; 69 } 70 default: 71 { 72 LOG(WARNING) << "not supported. "; 73 break; 74 } 75 } 76 } 77 profiler.AddTraceEvent(event, package, version, interface, msg); 78 } 79 if (strcmp(method, "write") == 0) { 80 FunctionSpecificationMessage msg; 81 msg.set_name("write"); 82 if (!args) { 83 LOG(WARNING) << "no argument passed"; 84 } else { 85 switch (event) { 86 case details::HidlInstrumentor::CLIENT_API_ENTRY: 87 case details::HidlInstrumentor::SERVER_API_ENTRY: 88 case details::HidlInstrumentor::PASSTHROUGH_ENTRY: 89 { 90 if ((*args).size() != 1) { 91 LOG(ERROR) << "Number of arguments does not match. expect: 1, actual: " << (*args).size() << ", method name: write, event type: " << event; 92 break; 93 } 94 auto *arg_0 = msg.add_arg(); 95 ::android::hardware::hidl_vec<uint8_t> *arg_val_0 = reinterpret_cast<::android::hardware::hidl_vec<uint8_t>*> ((*args)[0]); 96 arg_0->set_type(TYPE_VECTOR); 97 arg_0->set_vector_size((*arg_val_0).size()); 98 for (int i = 0; i < (int)(*arg_val_0).size(); i++) { 99 auto *arg_0_vector_i = arg_0->add_vector_value(); 100 arg_0_vector_i->set_type(TYPE_SCALAR); 101 arg_0_vector_i->mutable_scalar_value()->set_uint8_t((*arg_val_0)[i]); 102 } 103 break; 104 } 105 case details::HidlInstrumentor::CLIENT_API_EXIT: 106 case details::HidlInstrumentor::SERVER_API_EXIT: 107 case details::HidlInstrumentor::PASSTHROUGH_EXIT: 108 { 109 if ((*args).size() != 1) { 110 LOG(ERROR) << "Number of return values does not match. expect: 1, actual: " << (*args).size() << ", method name: write, event type: " << event; 111 break; 112 } 113 auto *result_0 = msg.add_return_type_hidl(); 114 uint32_t *result_val_0 = reinterpret_cast<uint32_t*> ((*args)[0]); 115 result_0->set_type(TYPE_SCALAR); 116 result_0->mutable_scalar_value()->set_uint32_t((*result_val_0)); 117 break; 118 } 119 default: 120 { 121 LOG(WARNING) << "not supported. "; 122 break; 123 } 124 } 125 } 126 profiler.AddTraceEvent(event, package, version, interface, msg); 127 } 128 if (strcmp(method, "coreInitialized") == 0) { 129 FunctionSpecificationMessage msg; 130 msg.set_name("coreInitialized"); 131 if (!args) { 132 LOG(WARNING) << "no argument passed"; 133 } else { 134 switch (event) { 135 case details::HidlInstrumentor::CLIENT_API_ENTRY: 136 case details::HidlInstrumentor::SERVER_API_ENTRY: 137 case details::HidlInstrumentor::PASSTHROUGH_ENTRY: 138 { 139 if ((*args).size() != 1) { 140 LOG(ERROR) << "Number of arguments does not match. expect: 1, actual: " << (*args).size() << ", method name: coreInitialized, event type: " << event; 141 break; 142 } 143 auto *arg_0 = msg.add_arg(); 144 ::android::hardware::hidl_vec<uint8_t> *arg_val_0 = reinterpret_cast<::android::hardware::hidl_vec<uint8_t>*> ((*args)[0]); 145 arg_0->set_type(TYPE_VECTOR); 146 arg_0->set_vector_size((*arg_val_0).size()); 147 for (int i = 0; i < (int)(*arg_val_0).size(); i++) { 148 auto *arg_0_vector_i = arg_0->add_vector_value(); 149 arg_0_vector_i->set_type(TYPE_SCALAR); 150 arg_0_vector_i->mutable_scalar_value()->set_uint8_t((*arg_val_0)[i]); 151 } 152 break; 153 } 154 case details::HidlInstrumentor::CLIENT_API_EXIT: 155 case details::HidlInstrumentor::SERVER_API_EXIT: 156 case details::HidlInstrumentor::PASSTHROUGH_EXIT: 157 { 158 if ((*args).size() != 1) { 159 LOG(ERROR) << "Number of return values does not match. expect: 1, actual: " << (*args).size() << ", method name: coreInitialized, event type: " << event; 160 break; 161 } 162 auto *result_0 = msg.add_return_type_hidl(); 163 ::android::hardware::nfc::V1_0::NfcStatus *result_val_0 = reinterpret_cast<::android::hardware::nfc::V1_0::NfcStatus*> ((*args)[0]); 164 result_0->set_type(TYPE_ENUM); 165 profile____android__hardware__nfc__V1_0__NfcStatus(result_0, (*result_val_0)); 166 break; 167 } 168 default: 169 { 170 LOG(WARNING) << "not supported. "; 171 break; 172 } 173 } 174 } 175 profiler.AddTraceEvent(event, package, version, interface, msg); 176 } 177 if (strcmp(method, "prediscover") == 0) { 178 FunctionSpecificationMessage msg; 179 msg.set_name("prediscover"); 180 if (!args) { 181 LOG(WARNING) << "no argument passed"; 182 } else { 183 switch (event) { 184 case details::HidlInstrumentor::CLIENT_API_ENTRY: 185 case details::HidlInstrumentor::SERVER_API_ENTRY: 186 case details::HidlInstrumentor::PASSTHROUGH_ENTRY: 187 { 188 if ((*args).size() != 0) { 189 LOG(ERROR) << "Number of arguments does not match. expect: 0, actual: " << (*args).size() << ", method name: prediscover, event type: " << event; 190 break; 191 } 192 break; 193 } 194 case details::HidlInstrumentor::CLIENT_API_EXIT: 195 case details::HidlInstrumentor::SERVER_API_EXIT: 196 case details::HidlInstrumentor::PASSTHROUGH_EXIT: 197 { 198 if ((*args).size() != 1) { 199 LOG(ERROR) << "Number of return values does not match. expect: 1, actual: " << (*args).size() << ", method name: prediscover, event type: " << event; 200 break; 201 } 202 auto *result_0 = msg.add_return_type_hidl(); 203 ::android::hardware::nfc::V1_0::NfcStatus *result_val_0 = reinterpret_cast<::android::hardware::nfc::V1_0::NfcStatus*> ((*args)[0]); 204 result_0->set_type(TYPE_ENUM); 205 profile____android__hardware__nfc__V1_0__NfcStatus(result_0, (*result_val_0)); 206 break; 207 } 208 default: 209 { 210 LOG(WARNING) << "not supported. "; 211 break; 212 } 213 } 214 } 215 profiler.AddTraceEvent(event, package, version, interface, msg); 216 } 217 if (strcmp(method, "close") == 0) { 218 FunctionSpecificationMessage msg; 219 msg.set_name("close"); 220 if (!args) { 221 LOG(WARNING) << "no argument passed"; 222 } else { 223 switch (event) { 224 case details::HidlInstrumentor::CLIENT_API_ENTRY: 225 case details::HidlInstrumentor::SERVER_API_ENTRY: 226 case details::HidlInstrumentor::PASSTHROUGH_ENTRY: 227 { 228 if ((*args).size() != 0) { 229 LOG(ERROR) << "Number of arguments does not match. expect: 0, actual: " << (*args).size() << ", method name: close, event type: " << event; 230 break; 231 } 232 break; 233 } 234 case details::HidlInstrumentor::CLIENT_API_EXIT: 235 case details::HidlInstrumentor::SERVER_API_EXIT: 236 case details::HidlInstrumentor::PASSTHROUGH_EXIT: 237 { 238 if ((*args).size() != 1) { 239 LOG(ERROR) << "Number of return values does not match. expect: 1, actual: " << (*args).size() << ", method name: close, event type: " << event; 240 break; 241 } 242 auto *result_0 = msg.add_return_type_hidl(); 243 ::android::hardware::nfc::V1_0::NfcStatus *result_val_0 = reinterpret_cast<::android::hardware::nfc::V1_0::NfcStatus*> ((*args)[0]); 244 result_0->set_type(TYPE_ENUM); 245 profile____android__hardware__nfc__V1_0__NfcStatus(result_0, (*result_val_0)); 246 break; 247 } 248 default: 249 { 250 LOG(WARNING) << "not supported. "; 251 break; 252 } 253 } 254 } 255 profiler.AddTraceEvent(event, package, version, interface, msg); 256 } 257 if (strcmp(method, "controlGranted") == 0) { 258 FunctionSpecificationMessage msg; 259 msg.set_name("controlGranted"); 260 if (!args) { 261 LOG(WARNING) << "no argument passed"; 262 } else { 263 switch (event) { 264 case details::HidlInstrumentor::CLIENT_API_ENTRY: 265 case details::HidlInstrumentor::SERVER_API_ENTRY: 266 case details::HidlInstrumentor::PASSTHROUGH_ENTRY: 267 { 268 if ((*args).size() != 0) { 269 LOG(ERROR) << "Number of arguments does not match. expect: 0, actual: " << (*args).size() << ", method name: controlGranted, event type: " << event; 270 break; 271 } 272 break; 273 } 274 case details::HidlInstrumentor::CLIENT_API_EXIT: 275 case details::HidlInstrumentor::SERVER_API_EXIT: 276 case details::HidlInstrumentor::PASSTHROUGH_EXIT: 277 { 278 if ((*args).size() != 1) { 279 LOG(ERROR) << "Number of return values does not match. expect: 1, actual: " << (*args).size() << ", method name: controlGranted, event type: " << event; 280 break; 281 } 282 auto *result_0 = msg.add_return_type_hidl(); 283 ::android::hardware::nfc::V1_0::NfcStatus *result_val_0 = reinterpret_cast<::android::hardware::nfc::V1_0::NfcStatus*> ((*args)[0]); 284 result_0->set_type(TYPE_ENUM); 285 profile____android__hardware__nfc__V1_0__NfcStatus(result_0, (*result_val_0)); 286 break; 287 } 288 default: 289 { 290 LOG(WARNING) << "not supported. "; 291 break; 292 } 293 } 294 } 295 profiler.AddTraceEvent(event, package, version, interface, msg); 296 } 297 if (strcmp(method, "powerCycle") == 0) { 298 FunctionSpecificationMessage msg; 299 msg.set_name("powerCycle"); 300 if (!args) { 301 LOG(WARNING) << "no argument passed"; 302 } else { 303 switch (event) { 304 case details::HidlInstrumentor::CLIENT_API_ENTRY: 305 case details::HidlInstrumentor::SERVER_API_ENTRY: 306 case details::HidlInstrumentor::PASSTHROUGH_ENTRY: 307 { 308 if ((*args).size() != 0) { 309 LOG(ERROR) << "Number of arguments does not match. expect: 0, actual: " << (*args).size() << ", method name: powerCycle, event type: " << event; 310 break; 311 } 312 break; 313 } 314 case details::HidlInstrumentor::CLIENT_API_EXIT: 315 case details::HidlInstrumentor::SERVER_API_EXIT: 316 case details::HidlInstrumentor::PASSTHROUGH_EXIT: 317 { 318 if ((*args).size() != 1) { 319 LOG(ERROR) << "Number of return values does not match. expect: 1, actual: " << (*args).size() << ", method name: powerCycle, event type: " << event; 320 break; 321 } 322 auto *result_0 = msg.add_return_type_hidl(); 323 ::android::hardware::nfc::V1_0::NfcStatus *result_val_0 = reinterpret_cast<::android::hardware::nfc::V1_0::NfcStatus*> ((*args)[0]); 324 result_0->set_type(TYPE_ENUM); 325 profile____android__hardware__nfc__V1_0__NfcStatus(result_0, (*result_val_0)); 326 break; 327 } 328 default: 329 { 330 LOG(WARNING) << "not supported. "; 331 break; 332 } 333 } 334 } 335 profiler.AddTraceEvent(event, package, version, interface, msg); 336 } 337 } 338 339 } // namespace vts 340 } // namespace android 341