57 lines
1.4 KiB
C
57 lines
1.4 KiB
C
/*
|
|
* Copyright (c) 2024 Google, Inc.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/** @file
|
|
* @brief Custom header shell test suite
|
|
*
|
|
*/
|
|
|
|
#include <zephyr/kernel.h>
|
|
#include <zephyr/ztest.h>
|
|
|
|
#include <zephyr/shell/shell.h>
|
|
#include <zephyr/shell/shell_dummy.h>
|
|
|
|
static void *shell_setup(void)
|
|
{
|
|
const struct shell *sh = shell_backend_dummy_get_ptr();
|
|
|
|
/* Wait for the initialization of the shell dummy backend. */
|
|
WAIT_FOR(shell_ready(sh), 20000, k_msleep(1));
|
|
zassert_true(shell_ready(sh), "timed out waiting for dummy shell backend");
|
|
|
|
return NULL;
|
|
}
|
|
|
|
ZTEST_SUITE(sh, NULL, shell_setup, NULL, NULL, NULL);
|
|
|
|
ZTEST(sh, test_shell_fprintf)
|
|
{
|
|
static const char expect[] = "[CUSTOM_PREFIX]testing 1 2 3";
|
|
const struct shell *sh;
|
|
const char *buf;
|
|
size_t size;
|
|
|
|
sh = shell_backend_dummy_get_ptr();
|
|
zassert_not_null(sh, "Failed to get shell");
|
|
|
|
/* Clear the output buffer */
|
|
shell_backend_dummy_clear_output(sh);
|
|
|
|
shell_fprintf(sh, SHELL_VT100_COLOR_DEFAULT, "testing %d %s %c",
|
|
1, "2", '3');
|
|
buf = shell_backend_dummy_get_output(sh, &size);
|
|
zassert_true(size >= sizeof(expect), "Expected size > %u, got %d",
|
|
sizeof(expect), size);
|
|
|
|
/*
|
|
* There are prompts and various ANSI characters in the output, so just
|
|
* check that the string is in there somewhere.
|
|
*/
|
|
zassert_true(strstr(buf, expect),
|
|
"Expected string to contain '%s', got '%s'", expect, buf);
|
|
}
|