1 /* 2 * Copyright 2021 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 /* 18 * Generated mock file from original source file 19 */ 20 21 #include <list> 22 #include <map> 23 #include <string> 24 25 extern std::map<std::string, int> mock_function_count_map; 26 27 #include "osi/src/compat.cc" // For strlcpy 28 29 #include "osi/include/alarm.h" 30 #include "osi/include/allocator.h" 31 #include "osi/include/array.h" 32 #include "osi/include/buffer.h" 33 #include "osi/include/config.h" 34 #include "osi/include/fixed_queue.h" 35 #include "osi/include/future.h" 36 #include "osi/include/hash_map_utils.h" 37 #include "osi/include/list.h" 38 #include "osi/include/log.h" 39 #include "osi/include/osi.h" 40 #include "osi/include/reactor.h" 41 #include "osi/include/ringbuffer.h" 42 #include "osi/include/semaphore.h" 43 #include "osi/include/socket.h" 44 #include "osi/include/thread.h" 45 #include "osi/include/wakelock.h" 46 #include "test/common/fake_osi.h" 47 48 #ifndef UNUSED_ATTR 49 #define UNUSED_ATTR 50 #endif 51 52 std::list<entry_t>::iterator section_t::Find(const std::string& key) { 53 mock_function_count_map[__func__]++; 54 return std::find_if( 55 entries.begin(), entries.end(), 56 [&key](const entry_t& entry) { return entry.key == key; }); 57 } 58 std::list<section_t>::iterator config_t::Find(const std::string& section) { 59 mock_function_count_map[__func__]++; 60 return std::find_if( 61 sections.begin(), sections.end(), 62 [§ion](const section_t& sec) { return sec.name == section; }); 63 } 64 65 bool checksum_save(const std::string& checksum, const std::string& filename) { 66 mock_function_count_map[__func__]++; 67 return false; 68 } 69 bool config_get_bool(const config_t& config, const std::string& section, 70 const std::string& key, bool def_value) { 71 mock_function_count_map[__func__]++; 72 return false; 73 } 74 bool config_has_key(const config_t& config, const std::string& section, 75 const std::string& key) { 76 mock_function_count_map[__func__]++; 77 return false; 78 } 79 bool config_has_section(const config_t& config, const std::string& section) { 80 mock_function_count_map[__func__]++; 81 return false; 82 } 83 bool config_remove_key(config_t* config, const std::string& section, 84 const std::string& key) { 85 mock_function_count_map[__func__]++; 86 return false; 87 } 88 bool config_remove_section(config_t* config, const std::string& section) { 89 mock_function_count_map[__func__]++; 90 return false; 91 } 92 bool config_save(const config_t& config, const std::string& filename) { 93 mock_function_count_map[__func__]++; 94 return false; 95 } 96 bool config_t::Has(const std::string& key) { 97 mock_function_count_map[__func__]++; 98 return false; 99 } 100 bool section_t::Has(const std::string& key) { 101 mock_function_count_map[__func__]++; 102 return false; 103 } 104 const std::string* config_get_string(const config_t& config, 105 const std::string& section, 106 const std::string& key, 107 const std::string* def_value) { 108 mock_function_count_map[__func__]++; 109 return nullptr; 110 } 111 int config_get_int(const config_t& config, const std::string& section, 112 const std::string& key, int def_value) { 113 mock_function_count_map[__func__]++; 114 return 0; 115 } 116 std::string checksum_read(const char* filename) { 117 mock_function_count_map[__func__]++; 118 return 0; 119 } 120 std::unique_ptr<config_t> config_new(const char* filename) { 121 mock_function_count_map[__func__]++; 122 return 0; 123 } 124 std::unique_ptr<config_t> config_new_clone(const config_t& src) { 125 mock_function_count_map[__func__]++; 126 return 0; 127 } 128 std::unique_ptr<config_t> config_new_empty(void) { 129 mock_function_count_map[__func__]++; 130 return 0; 131 } 132 uint64_t config_get_uint64(const config_t& config, const std::string& section, 133 const std::string& key, uint64_t def_value) { 134 mock_function_count_map[__func__]++; 135 return 0; 136 } 137 void config_set_bool(config_t* config, const std::string& section, 138 const std::string& key, bool value) { 139 mock_function_count_map[__func__]++; 140 } 141 void config_set_int(config_t* config, const std::string& section, 142 const std::string& key, int value) { 143 mock_function_count_map[__func__]++; 144 } 145 void config_set_string(config_t* config, const std::string& section, 146 const std::string& key, const std::string& value) { 147 mock_function_count_map[__func__]++; 148 } 149 void config_set_uint64(config_t* config, const std::string& section, 150 const std::string& key, uint64_t value) { 151 mock_function_count_map[__func__]++; 152 } 153 void section_t::Set(std::string key, std::string value) { 154 mock_function_count_map[__func__]++; 155 } 156 157 bool array_append_ptr(array_t* array, void* data) { 158 mock_function_count_map[__func__]++; 159 return false; 160 } 161 bool array_append_value(array_t* array, uint32_t value) { 162 mock_function_count_map[__func__]++; 163 return false; 164 } 165 size_t array_length(const array_t* array) { 166 mock_function_count_map[__func__]++; 167 return 0; 168 } 169 void array_free(array_t* array) { mock_function_count_map[__func__]++; } 170 void* array_at(const array_t* array, size_t index) { 171 mock_function_count_map[__func__]++; 172 return nullptr; 173 } 174 void* array_ptr(const array_t* array) { 175 mock_function_count_map[__func__]++; 176 return nullptr; 177 } 178 179 size_t allocation_tracker_expect_no_allocations(void) { 180 mock_function_count_map[__func__]++; 181 return 0; 182 } 183 size_t allocation_tracker_resize_for_canary(size_t size) { 184 mock_function_count_map[__func__]++; 185 return 0; 186 } 187 void allocation_tracker_reset(void) { mock_function_count_map[__func__]++; } 188 void allocation_tracker_uninit(void) { mock_function_count_map[__func__]++; } 189 void osi_allocator_debug_dump(int fd) { mock_function_count_map[__func__]++; } 190 void* allocation_tracker_notify_alloc(uint8_t allocator_id, void* ptr, 191 size_t requested_size) { 192 mock_function_count_map[__func__]++; 193 return nullptr; 194 } 195 void* allocation_tracker_notify_free(UNUSED_ATTR uint8_t allocator_id, 196 void* ptr) { 197 mock_function_count_map[__func__]++; 198 return nullptr; 199 } 200 201 bool reactor_change_registration(reactor_object_t* object, 202 void (*read_ready)(void* context), 203 void (*write_ready)(void* context)) { 204 mock_function_count_map[__func__]++; 205 return false; 206 } 207 reactor_object_t* reactor_register(reactor_t* reactor, int fd, void* context, 208 void (*read_ready)(void* context), 209 void (*write_ready)(void* context)) { 210 mock_function_count_map[__func__]++; 211 return nullptr; 212 } 213 reactor_status_t reactor_run_once(reactor_t* reactor) { 214 mock_function_count_map[__func__]++; 215 return REACTOR_STATUS_DONE; 216 } 217 reactor_status_t reactor_start(reactor_t* reactor) { 218 mock_function_count_map[__func__]++; 219 return REACTOR_STATUS_DONE; 220 } 221 reactor_t* reactor_new(void) { 222 mock_function_count_map[__func__]++; 223 return nullptr; 224 } 225 void reactor_free(reactor_t* reactor) { mock_function_count_map[__func__]++; } 226 void reactor_stop(reactor_t* reactor) { mock_function_count_map[__func__]++; } 227 void reactor_unregister(reactor_object_t* obj) { 228 mock_function_count_map[__func__]++; 229 } 230 231 future_t* future_new(void) { 232 mock_function_count_map[__func__]++; 233 return nullptr; 234 } 235 future_t* future_new_immediate(void* value) { 236 mock_function_count_map[__func__]++; 237 return nullptr; 238 } 239 void future_ready(future_t* future, void* value) { 240 mock_function_count_map[__func__]++; 241 } 242 void mutex_global_lock(void) { mock_function_count_map[__func__]++; } 243 void mutex_global_unlock(void) { mock_function_count_map[__func__]++; } 244 void* future_await(future_t* future) { 245 mock_function_count_map[__func__]++; 246 return nullptr; 247 } 248 249 bool thread_is_self(const thread_t* thread) { 250 mock_function_count_map[__func__]++; 251 return false; 252 } 253 bool thread_post(thread_t* thread, thread_fn func, void* context) { 254 mock_function_count_map[__func__]++; 255 return false; 256 } 257 bool thread_set_priority(thread_t* thread, int priority) { 258 mock_function_count_map[__func__]++; 259 return false; 260 } 261 bool thread_set_rt_priority(thread_t* thread, int priority) { 262 mock_function_count_map[__func__]++; 263 return false; 264 } 265 const char* thread_name(const thread_t* thread) { 266 mock_function_count_map[__func__]++; 267 return nullptr; 268 } 269 reactor_t* thread_get_reactor(const thread_t* thread) { 270 mock_function_count_map[__func__]++; 271 return nullptr; 272 } 273 thread_t* thread_new(const char* name) { 274 mock_function_count_map[__func__]++; 275 return nullptr; 276 } 277 thread_t* thread_new_sized(const char* name, size_t work_queue_capacity) { 278 mock_function_count_map[__func__]++; 279 return nullptr; 280 } 281 void thread_free(thread_t* thread) { mock_function_count_map[__func__]++; } 282 void thread_join(thread_t* thread) { mock_function_count_map[__func__]++; } 283 void thread_stop(thread_t* thread) { mock_function_count_map[__func__]++; } 284 285 char* osi_strdup(const char* str) { 286 mock_function_count_map[__func__]++; 287 return nullptr; 288 } 289 char* osi_strndup(const char* str, size_t len) { 290 mock_function_count_map[__func__]++; 291 return nullptr; 292 } 293 void osi_free(void* ptr) { mock_function_count_map[__func__]++; } 294 void osi_free_and_reset(void** p_ptr) { mock_function_count_map[__func__]++; } 295 void* osi_calloc(size_t size) { 296 mock_function_count_map[__func__]++; 297 return nullptr; 298 } 299 void* osi_malloc(size_t size) { 300 mock_function_count_map[__func__]++; 301 return nullptr; 302 } 303 304 bool fixed_queue_is_empty(fixed_queue_t* queue) { 305 mock_function_count_map[__func__]++; 306 return false; 307 } 308 bool fixed_queue_try_enqueue(fixed_queue_t* queue, void* data) { 309 mock_function_count_map[__func__]++; 310 return false; 311 } 312 fixed_queue_t* fixed_queue_new(size_t capacity) { 313 mock_function_count_map[__func__]++; 314 return nullptr; 315 } 316 int fixed_queue_get_dequeue_fd(const fixed_queue_t* queue) { 317 mock_function_count_map[__func__]++; 318 return 0; 319 } 320 int fixed_queue_get_enqueue_fd(const fixed_queue_t* queue) { 321 mock_function_count_map[__func__]++; 322 return 0; 323 } 324 list_t* fixed_queue_get_list(fixed_queue_t* queue) { 325 mock_function_count_map[__func__]++; 326 return nullptr; 327 } 328 size_t fixed_queue_capacity(fixed_queue_t* queue) { 329 mock_function_count_map[__func__]++; 330 return 0; 331 } 332 size_t fixed_queue_length(fixed_queue_t* queue) { 333 mock_function_count_map[__func__]++; 334 return 0; 335 } 336 void fixed_queue_enqueue(fixed_queue_t* queue, void* data) { 337 mock_function_count_map[__func__]++; 338 } 339 void fixed_queue_flush(fixed_queue_t* queue, fixed_queue_free_cb free_cb) { 340 mock_function_count_map[__func__]++; 341 } 342 void fixed_queue_free(fixed_queue_t* queue, fixed_queue_free_cb free_cb) { 343 mock_function_count_map[__func__]++; 344 } 345 void fixed_queue_register_dequeue(fixed_queue_t* queue, reactor_t* reactor, 346 fixed_queue_cb ready_cb, void* context) { 347 mock_function_count_map[__func__]++; 348 } 349 void fixed_queue_unregister_dequeue(fixed_queue_t* queue) { 350 mock_function_count_map[__func__]++; 351 } 352 void* fixed_queue_dequeue(fixed_queue_t* queue) { 353 mock_function_count_map[__func__]++; 354 return nullptr; 355 } 356 void* fixed_queue_try_dequeue(fixed_queue_t* queue) { 357 mock_function_count_map[__func__]++; 358 return nullptr; 359 } 360 void* fixed_queue_try_peek_first(fixed_queue_t* queue) { 361 mock_function_count_map[__func__]++; 362 return nullptr; 363 } 364 void* fixed_queue_try_peek_last(fixed_queue_t* queue) { 365 mock_function_count_map[__func__]++; 366 return nullptr; 367 } 368 void* fixed_queue_try_remove_from_queue(fixed_queue_t* queue, void* data) { 369 mock_function_count_map[__func__]++; 370 return nullptr; 371 } 372 373 alarm_t* alarm_new(const char* name) { 374 mock_function_count_map[__func__]++; 375 return nullptr; 376 } 377 alarm_t* alarm_new_periodic(const char* name) { 378 mock_function_count_map[__func__]++; 379 return nullptr; 380 } 381 bool alarm_is_scheduled(const alarm_t* alarm) { 382 mock_function_count_map[__func__]++; 383 return false; 384 } 385 uint64_t alarm_get_remaining_ms(const alarm_t* alarm) { 386 mock_function_count_map[__func__]++; 387 return 0; 388 } 389 void alarm_cancel(alarm_t* alarm) { mock_function_count_map[__func__]++; } 390 void alarm_cleanup(void) { mock_function_count_map[__func__]++; } 391 void alarm_debug_dump(int fd) { mock_function_count_map[__func__]++; } 392 void alarm_free(alarm_t* alarm) { mock_function_count_map[__func__]++; } 393 void alarm_set(alarm_t* alarm, uint64_t interval_ms, alarm_callback_t cb, 394 void* data) { 395 mock_function_count_map[__func__]++; 396 } 397 398 struct fake_osi_alarm_set_on_mloop fake_osi_alarm_set_on_mloop_; 399 void alarm_set_on_mloop(alarm_t* alarm, uint64_t interval_ms, 400 alarm_callback_t cb, void* data) { 401 mock_function_count_map[__func__]++; 402 fake_osi_alarm_set_on_mloop_.interval_ms = interval_ms; 403 fake_osi_alarm_set_on_mloop_.cb = cb; 404 fake_osi_alarm_set_on_mloop_.data = data; 405 } 406 407 int osi_rand(void) { 408 mock_function_count_map[__func__]++; 409 return 0; 410 } 411 412 buffer_t* buffer_new_ref(const buffer_t* buf) { 413 mock_function_count_map[__func__]++; 414 return nullptr; 415 } 416 buffer_t* buffer_new_slice(const buffer_t* buf, size_t slice_size) { 417 mock_function_count_map[__func__]++; 418 return nullptr; 419 } 420 size_t buffer_length(const buffer_t* buf) { 421 mock_function_count_map[__func__]++; 422 return 0; 423 } 424 void buffer_free(buffer_t* buffer) { mock_function_count_map[__func__]++; } 425 void* buffer_ptr(const buffer_t* buf) { 426 mock_function_count_map[__func__]++; 427 return nullptr; 428 } 429 430 bool socket_listen(const socket_t* socket, port_t port) { 431 mock_function_count_map[__func__]++; 432 return false; 433 } 434 socket_t* socket_accept(const socket_t* socket) { 435 mock_function_count_map[__func__]++; 436 return nullptr; 437 } 438 socket_t* socket_new(void) { 439 mock_function_count_map[__func__]++; 440 return nullptr; 441 } 442 socket_t* socket_new_from_fd(int fd) { 443 mock_function_count_map[__func__]++; 444 return nullptr; 445 } 446 ssize_t socket_bytes_available(const socket_t* socket) { 447 mock_function_count_map[__func__]++; 448 return 0; 449 } 450 ssize_t socket_read(const socket_t* socket, void* buf, size_t count) { 451 mock_function_count_map[__func__]++; 452 return 0; 453 } 454 ssize_t socket_write(const socket_t* socket, const void* buf, size_t count) { 455 mock_function_count_map[__func__]++; 456 return 0; 457 } 458 ssize_t socket_write_and_transfer_fd(const socket_t* socket, const void* buf, 459 size_t count, int fd) { 460 mock_function_count_map[__func__]++; 461 return 0; 462 } 463 void socket_free(socket_t* socket) { mock_function_count_map[__func__]++; } 464 void socket_register(socket_t* socket, reactor_t* reactor, void* context, 465 socket_cb read_cb, socket_cb write_cb) { 466 mock_function_count_map[__func__]++; 467 } 468 void socket_unregister(socket_t* socket) { 469 mock_function_count_map[__func__]++; 470 } 471 472 bool list_append(list_t* list, void* data) { 473 mock_function_count_map[__func__]++; 474 return false; 475 } 476 bool list_contains(const list_t* list, const void* data) { 477 mock_function_count_map[__func__]++; 478 return false; 479 } 480 bool list_insert_after(list_t* list, list_node_t* prev_node, void* data) { 481 mock_function_count_map[__func__]++; 482 return false; 483 } 484 bool list_is_empty(const list_t* list) { 485 mock_function_count_map[__func__]++; 486 return false; 487 } 488 bool list_prepend(list_t* list, void* data) { 489 mock_function_count_map[__func__]++; 490 return false; 491 } 492 bool list_remove(list_t* list, void* data) { 493 mock_function_count_map[__func__]++; 494 return false; 495 } 496 list_node_t* list_back_node(const list_t* list) { 497 mock_function_count_map[__func__]++; 498 return nullptr; 499 } 500 list_node_t* list_begin(const list_t* list) { 501 mock_function_count_map[__func__]++; 502 return nullptr; 503 } 504 list_node_t* list_end(UNUSED_ATTR const list_t* list) { 505 mock_function_count_map[__func__]++; 506 return nullptr; 507 } 508 list_node_t* list_foreach(const list_t* list, list_iter_cb callback, 509 void* context) { 510 mock_function_count_map[__func__]++; 511 return nullptr; 512 } 513 list_node_t* list_next(const list_node_t* node) { 514 mock_function_count_map[__func__]++; 515 return nullptr; 516 } 517 list_t* list_new(list_free_cb callback) { 518 mock_function_count_map[__func__]++; 519 return nullptr; 520 } 521 list_t* list_new_internal(list_free_cb callback, 522 const allocator_t* zeroed_allocator) { 523 mock_function_count_map[__func__]++; 524 return nullptr; 525 } 526 size_t list_length(const list_t* list) { 527 mock_function_count_map[__func__]++; 528 return 0; 529 } 530 void list_clear(list_t* list) { mock_function_count_map[__func__]++; } 531 void list_free(list_t* list) { mock_function_count_map[__func__]++; } 532 void* list_back(const list_t* list) { 533 mock_function_count_map[__func__]++; 534 return nullptr; 535 } 536 void* list_front(const list_t* list) { 537 mock_function_count_map[__func__]++; 538 return nullptr; 539 } 540 void* list_node(const list_node_t* node) { 541 mock_function_count_map[__func__]++; 542 return nullptr; 543 } 544 545 int osi_socket_local_client(const char* name, int namespaceId, int type) { 546 mock_function_count_map[__func__]++; 547 return 0; 548 } 549 int osi_socket_local_client_connect(int fd, const char* name, int namespaceId, 550 int type UNUSED_ATTR) { 551 mock_function_count_map[__func__]++; 552 return 0; 553 } 554 int osi_socket_local_server_bind(int s, const char* name, int namespaceId) { 555 mock_function_count_map[__func__]++; 556 return 0; 557 } 558 int osi_socket_make_sockaddr_un(const char* name, int namespaceId, 559 struct sockaddr_un* p_addr, socklen_t* alen) { 560 mock_function_count_map[__func__]++; 561 return 0; 562 } 563 564 size_t ringbuffer_available(const ringbuffer_t* rb) { 565 mock_function_count_map[__func__]++; 566 return 0; 567 } 568 size_t ringbuffer_delete(ringbuffer_t* rb, size_t length) { 569 mock_function_count_map[__func__]++; 570 return 0; 571 } 572 size_t ringbuffer_insert(ringbuffer_t* rb, const uint8_t* p, size_t length) { 573 mock_function_count_map[__func__]++; 574 return 0; 575 } 576 size_t ringbuffer_peek(const ringbuffer_t* rb, off_t offset, uint8_t* p, 577 size_t length) { 578 mock_function_count_map[__func__]++; 579 return 0; 580 } 581 size_t ringbuffer_pop(ringbuffer_t* rb, uint8_t* p, size_t length) { 582 mock_function_count_map[__func__]++; 583 return 0; 584 } 585 size_t ringbuffer_size(const ringbuffer_t* rb) { 586 mock_function_count_map[__func__]++; 587 return 0; 588 } 589 void ringbuffer_free(ringbuffer_t* rb) { mock_function_count_map[__func__]++; } 590 591 bool osi_property_get_bool(const char* key, bool default_value) { 592 mock_function_count_map[__func__]++; 593 return false; 594 } 595 int osi_property_get(const char* key, char* value, const char* default_value) { 596 mock_function_count_map[__func__]++; 597 return 0; 598 } 599 int osi_property_set(const char* key, const char* value) { 600 mock_function_count_map[__func__]++; 601 return 0; 602 } 603 int32_t osi_property_get_int32(const char* key, int32_t default_value) { 604 mock_function_count_map[__func__]++; 605 return 0; 606 } 607 608 bool semaphore_try_wait(semaphore_t* semaphore) { 609 mock_function_count_map[__func__]++; 610 return false; 611 } 612 int semaphore_get_fd(const semaphore_t* semaphore) { 613 mock_function_count_map[__func__]++; 614 return 0; 615 } 616 semaphore_t* semaphore_new(unsigned int value) { 617 mock_function_count_map[__func__]++; 618 return nullptr; 619 } 620 void semaphore_free(semaphore_t* semaphore) { 621 mock_function_count_map[__func__]++; 622 } 623 void semaphore_post(semaphore_t* semaphore) { 624 mock_function_count_map[__func__]++; 625 } 626 void semaphore_wait(semaphore_t* semaphore) { 627 mock_function_count_map[__func__]++; 628 } 629 630 bool wakelock_acquire(void) { 631 mock_function_count_map[__func__]++; 632 return false; 633 } 634 bool wakelock_release(void) { 635 mock_function_count_map[__func__]++; 636 return false; 637 } 638 void wakelock_cleanup(void) { mock_function_count_map[__func__]++; } 639 void wakelock_debug_dump(int fd) { mock_function_count_map[__func__]++; } 640 void wakelock_set_os_callouts(bt_os_callouts_t* callouts) { 641 mock_function_count_map[__func__]++; 642 } 643 void wakelock_set_paths(const char* lock_path, const char* unlock_path) { 644 mock_function_count_map[__func__]++; 645 } 646