blob: 3a1e7843391bd727e353487e1acf84fa6b4d780d [file] [log] [blame]
/*
* Copyright (c) 2021 Nordic Semiconductor
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef SRC_MOCK_BACKEND_H__
#define SRC_MOCK_BACKEND_H__
#include <zephyr/logging/log_backend.h>
#ifdef __cplusplus
extern "C" {
#endif
extern const struct log_backend_api mock_log_backend_api;
struct mock_log_backend_msg {
log_timestamp_t timestamp;
uint16_t source_id;
uint16_t domain_id;
uint8_t level;
bool check;
char str[128];
uint8_t data[32];
uint32_t data_len;
};
struct mock_log_backend {
bool do_check;
bool panic;
struct mock_log_backend_msg exp_msgs[64];
int msg_rec_idx;
int msg_proc_idx;
int exp_drop_cnt;
int drop_cnt;
#if defined(CONFIG_LOG_MODE_DEFERRED) && \
defined(CONFIG_LOG_PROCESS_THREAD)
bool evt_notified;
#endif
};
void mock_log_backend_reset(const struct log_backend *backend);
void mock_log_backend_check_enable(const struct log_backend *backend);
void mock_log_backend_check_disable(const struct log_backend *backend);
void mock_log_backend_dummy_record(const struct log_backend *backend, int cnt);
void mock_log_backend_drop_record(const struct log_backend *backend, int cnt);
void mock_log_backend_generic_record(const struct log_backend *backend,
uint16_t source_id,
uint16_t domain_id,
uint8_t level,
log_timestamp_t timestamp,
const char *str,
uint8_t *data,
uint32_t data_len);
static inline void mock_log_backend_record(const struct log_backend *backend,
uint16_t source_id,
uint16_t domain_id,
uint8_t level,
log_timestamp_t timestamp,
const char *str)
{
mock_log_backend_generic_record(backend, source_id, domain_id, level,
timestamp, str, NULL, 0);
}
void mock_log_backend_validate(const struct log_backend *backend, bool panic);
#define MOCK_LOG_BACKEND_DEFINE(name, autostart) \
static struct mock_log_backend name##_mock; \
LOG_BACKEND_DEFINE(name, mock_log_backend_api, autostart, &name##_mock)
#ifdef __cplusplus
}
#endif
#endif /* SRC_MOCK_BACKEND_H__ */