/* * Copyright (c) 2021 Nordic Semiconductor * * SPDX-License-Identifier: Apache-2.0 */ #ifndef SRC_MOCK_BACKEND_H__ #define SRC_MOCK_BACKEND_H__ #include #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__ */