1 /* 2 * Shell backend used for testing 3 * 4 * Copyright (c) 2018 Nordic Semiconductor ASA 5 * 6 * SPDX-License-Identifier: Apache-2.0 7 */ 8 9 #ifndef SHELL_DUMMY_H__ 10 #define SHELL_DUMMY_H__ 11 12 #include <zephyr/shell/shell.h> 13 14 #ifdef __cplusplus 15 extern "C" { 16 #endif 17 18 extern const struct shell_transport_api shell_dummy_transport_api; 19 20 struct shell_dummy { 21 bool initialized; 22 23 /** current number of bytes in buffer (0 if no output) */ 24 size_t len; 25 26 /** output buffer to collect shell output */ 27 char buf[CONFIG_SHELL_BACKEND_DUMMY_BUF_SIZE]; 28 }; 29 30 #define SHELL_DUMMY_DEFINE(_name) \ 31 static struct shell_dummy _name##_shell_dummy; \ 32 struct shell_transport _name = { \ 33 .api = &shell_dummy_transport_api, \ 34 .ctx = (struct shell_dummy *)&_name##_shell_dummy \ 35 } 36 37 /** 38 * @brief This function shall not be used directly. It provides pointer to shell 39 * dummy backend instance. 40 * 41 * Function returns pointer to the shell dummy instance. This instance can be 42 * next used with shell_execute_cmd function in order to test commands behavior. 43 * 44 * @returns Pointer to the shell instance. 45 */ 46 const struct shell *shell_backend_dummy_get_ptr(void); 47 48 /** 49 * @brief Returns the buffered output in the shell and resets the pointer 50 * 51 * The returned data is always followed by a nul character at position *sizep 52 * 53 * @param sh Shell pointer 54 * @param sizep Returns size of data in shell buffer 55 * @returns pointer to buffer containing shell output 56 */ 57 const char *shell_backend_dummy_get_output(const struct shell *sh, 58 size_t *sizep); 59 60 /** 61 * @brief Clears the output buffer in the shell backend. 62 * 63 * @param sh Shell pointer 64 */ 65 void shell_backend_dummy_clear_output(const struct shell *sh); 66 67 #ifdef __cplusplus 68 } 69 #endif 70 71 #endif /* SHELL_DUMMY_H__ */ 72