efi_loader: Disable ANSI output for tests
We don't want ANSI escape-sequences written in tests since it is a pain to check the output with ut_assert_nextline() et al. Provide a way to tests to request that these characters not be sent. Add a proper function comment while we are here, to encourage others. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:

committed by
Heinrich Schuchardt

parent
126a88d49b
commit
4cb7243640
@@ -588,8 +588,27 @@ efi_status_t efi_bootmgr_delete_boot_option(u16 boot_index);
|
|||||||
efi_status_t efi_bootmgr_run(void *fdt);
|
efi_status_t efi_bootmgr_run(void *fdt);
|
||||||
/* search the boot option index in BootOrder */
|
/* search the boot option index in BootOrder */
|
||||||
bool efi_search_bootorder(u16 *bootorder, efi_uintn_t num, u32 target, u32 *index);
|
bool efi_search_bootorder(u16 *bootorder, efi_uintn_t num, u32 target, u32 *index);
|
||||||
/* Set up console modes */
|
|
||||||
|
/**
|
||||||
|
* efi_setup_console_size() - update the mode table.
|
||||||
|
*
|
||||||
|
* By default the only mode available is 80x25. If the console has at least 50
|
||||||
|
* lines, enable mode 80x50. If we can query the console size and it is neither
|
||||||
|
* 80x25 nor 80x50, set it as an additional mode.
|
||||||
|
*/
|
||||||
void efi_setup_console_size(void);
|
void efi_setup_console_size(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* efi_console_set_ansi() - Set whether ANSI escape-characters should be emitted
|
||||||
|
*
|
||||||
|
* These characters mess up tests which use ut_assert_nextline(). Call this
|
||||||
|
* function to tell efi_loader not to emit these characters when starting up the
|
||||||
|
* terminal
|
||||||
|
*
|
||||||
|
* @allow_ansi: Allow emitting ANSI escape-characters
|
||||||
|
*/
|
||||||
|
void efi_console_set_ansi(bool allow_ansi);
|
||||||
|
|
||||||
/* Set up load options from environment variable */
|
/* Set up load options from environment variable */
|
||||||
efi_status_t efi_env_set_load_options(efi_handle_t handle, const char *env_var,
|
efi_status_t efi_env_set_load_options(efi_handle_t handle, const char *env_var,
|
||||||
u16 **load_options);
|
u16 **load_options);
|
||||||
|
@@ -30,6 +30,17 @@ struct cout_mode {
|
|||||||
|
|
||||||
__maybe_unused static struct efi_object uart_obj;
|
__maybe_unused static struct efi_object uart_obj;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* suppress emission of ANSI escape-characters for use by unit tests. Leave it
|
||||||
|
* as 0 for the default behaviour
|
||||||
|
*/
|
||||||
|
static bool no_ansi;
|
||||||
|
|
||||||
|
void efi_console_set_ansi(bool allow_ansi)
|
||||||
|
{
|
||||||
|
no_ansi = !allow_ansi;
|
||||||
|
}
|
||||||
|
|
||||||
static struct cout_mode efi_cout_modes[] = {
|
static struct cout_mode efi_cout_modes[] = {
|
||||||
/* EFI Mode 0 is 80x25 and always present */
|
/* EFI Mode 0 is 80x25 and always present */
|
||||||
{
|
{
|
||||||
@@ -348,13 +359,6 @@ static int __maybe_unused query_vidconsole(int *rows, int *cols)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* efi_setup_console_size() - update the mode table.
|
|
||||||
*
|
|
||||||
* By default the only mode available is 80x25. If the console has at least 50
|
|
||||||
* lines, enable mode 80x50. If we can query the console size and it is neither
|
|
||||||
* 80x25 nor 80x50, set it as an additional mode.
|
|
||||||
*/
|
|
||||||
void efi_setup_console_size(void)
|
void efi_setup_console_size(void)
|
||||||
{
|
{
|
||||||
int rows = 25, cols = 80;
|
int rows = 25, cols = 80;
|
||||||
@@ -362,8 +366,12 @@ void efi_setup_console_size(void)
|
|||||||
|
|
||||||
if (IS_ENABLED(CONFIG_VIDEO))
|
if (IS_ENABLED(CONFIG_VIDEO))
|
||||||
ret = query_vidconsole(&rows, &cols);
|
ret = query_vidconsole(&rows, &cols);
|
||||||
if (ret)
|
if (ret) {
|
||||||
ret = query_console_serial(&rows, &cols);
|
if (no_ansi)
|
||||||
|
ret = 0;
|
||||||
|
else
|
||||||
|
ret = query_console_serial(&rows, &cols);
|
||||||
|
}
|
||||||
if (ret)
|
if (ret)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user