shell: Extend dummy backend to record for testing

It is useful to run tests which generate shell output and check that it
is correct. Update the existing 'dummy' backend to support this.

It works by retaining the output in a small buffer so that it can be
read and checked by the test.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2020-04-30 15:25:04 -06:00 committed by Ioannis Glaropoulos
commit 2a8463e2b8
2 changed files with 44 additions and 0 deletions

View file

@ -1,4 +1,6 @@
/*
* Shell backend used for testing
*
* Copyright (c) 2018 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
@ -17,6 +19,12 @@ 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[100];
};
#define SHELL_DUMMY_DEFINE(_name) \
@ -37,6 +45,18 @@ struct shell_dummy {
*/
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);
#ifdef __cplusplus
}
#endif