zephyr/include/shell/shell_dummy.h
Dominik Ermel 3b49ed46df shell: Parametrize dummy shell buffer size
The commit adds Kconfig option to configure dummy shell buffer size.
Size of this buffer determines how mutch of command output will be
stored in buffer.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2021-05-26 00:05:56 -04:00

72 lines
1.7 KiB
C

/*
* Shell backend used for testing
*
* Copyright (c) 2018 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef SHELL_DUMMY_H__
#define SHELL_DUMMY_H__
#include <shell/shell.h>
#ifdef __cplusplus
extern "C" {
#endif
extern const struct shell_transport_api shell_dummy_transport_api;
struct shell_dummy {
bool initialized;
/** current number of bytes in buffer (0 if no output) */
size_t len;
/** output buffer to collect shell output */
char buf[CONFIG_SHELL_BACKEND_DUMMY_BUF_SIZE];
};
#define SHELL_DUMMY_DEFINE(_name) \
static struct shell_dummy _name##_shell_dummy; \
struct shell_transport _name = { \
.api = &shell_dummy_transport_api, \
.ctx = (struct shell_dummy *)&_name##_shell_dummy \
}
/**
* @brief This function shall not be used directly. It provides pointer to shell
* dummy backend instance.
*
* Function returns pointer to the shell dummy instance. This instance can be
* next used with shell_execute_cmd function in order to test commands behavior.
*
* @returns Pointer to the shell instance.
*/
const struct shell *shell_backend_dummy_get_ptr(void);
/**
* @brief Returns the buffered output in the shell and resets the pointer
*
* The returned data is always followed by a nul character at position *sizep
*
* @param shell Shell pointer
* @param sizep Returns size of data in shell buffer
* @returns pointer to buffer containing shell output
*/
const char *shell_backend_dummy_get_output(const struct shell *shell,
size_t *sizep);
/**
* @brief Clears the output buffer in the shell backend.
*
* @param shell Shell pointer
*/
void shell_backend_dummy_clear_output(const struct shell *shell);
#ifdef __cplusplus
}
#endif
#endif /* SHELL_DUMMY_H__ */