diff options
Diffstat (limited to 'test/print_ut.c')
-rw-r--r-- | test/print_ut.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/print_ut.c b/test/print_ut.c index a42c554bef8..1aa68be7a9a 100644 --- a/test/print_ut.c +++ b/test/print_ut.c @@ -7,12 +7,46 @@ #define DEBUG #include <common.h> +#if defined(CONFIG_EFI_LOADER) && \ + !defined(CONFIG_SPL_BUILD) && !defined(API_BUILD) +#include <efi_api.h> +#endif #include <display_options.h> #include <version.h> #define FAKE_BUILD_TAG "jenkins-u-boot-denx_uboot_dm-master-build-aarch64" \ "and a lot more text to come" +/* Test efi_loader specific printing */ +static void efi_ut_print(void) +{ +#if defined(CONFIG_EFI_LOADER) && \ + !defined(CONFIG_SPL_BUILD) && !defined(API_BUILD) + char str[10]; + u8 buf[sizeof(struct efi_device_path_sd_mmc_path) + + sizeof(struct efi_device_path)]; + u8 *pos = buf; + struct efi_device_path *dp_end; + struct efi_device_path_sd_mmc_path *dp_sd = + (struct efi_device_path_sd_mmc_path *)pos; + + /* Create a device path for an SD card */ + dp_sd->dp.type = DEVICE_PATH_TYPE_MESSAGING_DEVICE; + dp_sd->dp.sub_type = DEVICE_PATH_SUB_TYPE_MSG_SD; + dp_sd->dp.length = sizeof(struct efi_device_path_sd_mmc_path); + dp_sd->slot_number = 3; + pos += sizeof(struct efi_device_path_sd_mmc_path); + /* Append end node */ + dp_end = (struct efi_device_path *)pos; + dp_end->type = DEVICE_PATH_TYPE_END; + dp_end->sub_type = DEVICE_PATH_SUB_TYPE_END; + dp_end->length = sizeof(struct efi_device_path); + + snprintf(str, sizeof(str), "_%pD_", buf); + assert(!strcmp("_/SD(3)_", str)); +#endif +} + static int do_ut_print(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { @@ -75,6 +109,9 @@ static int do_ut_print(cmd_tbl_t *cmdtp, int flag, int argc, assert(!strncmp(FAKE_BUILD_TAG, s + 9 + len, 12)); assert(!strcmp("\n\n", s + big_str_len - 3)); + /* Test efi_loader specific printing */ + efi_ut_print(); + printf("%s: Everything went swimmingly\n", __func__); return 0; } |