Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01f2f5d7 authored by Chris Manton's avatar Chris Manton
Browse files

unit_test: Make global legacy mocks thread safe

Bug: 335726066
Test: m .
Flag: EXEMPT, Test Infrastructure
Change-Id: I46f07dbde012c58ff2581f2e032bd53f0a5495a3
parent b5d4905c
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -19,8 +19,9 @@
#include <bluetooth/log.h>

#include <map>
#include <mutex>

#include "os/log.h"
std::mutex mutex_{};

static std::map<std::string, int>& _get_func_call_count_map() {
  static std::map<std::string, int> mock_function_count_map;
@@ -28,15 +29,26 @@ static std::map<std::string, int>& _get_func_call_count_map() {
}

int get_func_call_count(const char* fn) {
  std::lock_guard<std::mutex> lock(mutex_);
  return _get_func_call_count_map()[fn];
}
void inc_func_call_count(const char* fn) { _get_func_call_count_map()[fn]++; }
void inc_func_call_count(const char* fn) {
  std::lock_guard<std::mutex> lock(mutex_);
  _get_func_call_count_map()[fn]++;
}

void reset_mock_function_count_map() { _get_func_call_count_map().clear(); }
void reset_mock_function_count_map() {
  std::lock_guard<std::mutex> lock(mutex_);
  _get_func_call_count_map().clear();
}

int get_func_call_size() { return _get_func_call_count_map().size(); }
int get_func_call_size() {
  std::lock_guard<std::mutex> lock(mutex_);
  return _get_func_call_count_map().size();
}

void dump_mock_function_count_map() {
  std::lock_guard<std::mutex> lock(mutex_);
  bluetooth::log::info("Mock function count map size:{}",
                       _get_func_call_count_map().size());