]>
Commit | Line | Data |
---|---|---|
7406f824 HS |
1 | /* |
2 | * efi_selftest_textoutput | |
3 | * | |
4 | * Copyright (c) 2017 Heinrich Schuchardt <xypron.glpk@gmx.de> | |
5 | * | |
6 | * SPDX-License-Identifier: GPL-2.0+ | |
7 | * | |
8 | * Test the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL. | |
9 | * | |
10 | * The following services are tested: | |
11 | * OutputString, TestString, SetAttribute. | |
12 | */ | |
13 | ||
14 | #include <efi_selftest.h> | |
15 | ||
16 | /* | |
17 | * Execute unit test. | |
18 | * | |
19 | * @return: EFI_ST_SUCCESS for success | |
20 | */ | |
21 | static int execute(void) | |
22 | { | |
23 | size_t foreground; | |
24 | size_t background; | |
25 | size_t attrib; | |
26 | efi_status_t ret; | |
27 | ||
28 | /* SetAttribute */ | |
29 | efi_st_printf("\nColor palette\n"); | |
30 | for (foreground = 0; foreground < 0x10; ++foreground) { | |
31 | for (background = 0; background < 0x80; background += 0x10) { | |
32 | attrib = foreground | background; | |
33 | con_out->set_attribute(con_out, attrib); | |
34 | efi_st_printf("%p", (void *)attrib); | |
35 | } | |
36 | con_out->set_attribute(con_out, 0); | |
37 | efi_st_printf("\n"); | |
38 | } | |
39 | /* TestString */ | |
40 | ret = con_out->test_string(con_out, | |
41 | L" !\"#$%&'()*+,-./0-9:;<=>?@A-Z[\\]^_`a-z{|}~\n"); | |
42 | if (ret != EFI_ST_SUCCESS) { | |
43 | efi_st_error("TestString failed for ANSI characters\n"); | |
44 | return EFI_ST_FAILURE; | |
45 | } | |
46 | return EFI_ST_SUCCESS; | |
47 | } | |
48 | ||
49 | EFI_UNIT_TEST(textoutput) = { | |
50 | .name = "text output", | |
51 | .phase = EFI_EXECUTE_BEFORE_BOOTTIME_EXIT, | |
52 | .execute = execute, | |
53 | }; |