Blame view
test/print_ut.c
4.14 KB
83d290c56 SPDX: Convert all... |
1 |
// SPDX-License-Identifier: GPL-2.0+ |
e5a9d27fd test: Add a test ... |
2 3 |
/* * Copyright (c) 2012, The Chromium Authors |
e5a9d27fd test: Add a test ... |
4 5 6 7 8 |
*/ #define DEBUG #include <common.h> |
7a9e6ee6e test: print_ut.c ... |
9 |
#if CONFIG_IS_ENABLED(EFI_LOADER) && !defined(API_BUILD) |
256060e42 vsprintf.c: add E... |
10 11 |
#include <efi_api.h> #endif |
e5a9d27fd test: Add a test ... |
12 13 14 15 16 |
#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" |
3bad256f5 lib/vsprintf: all... |
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
/* Test printing GUIDs */ static void guid_ut_print(void) { #if CONFIG_IS_ENABLED(LIB_UUID) unsigned char guid[16] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; char str[40]; sprintf(str, "%pUb", guid); assert(!strcmp("01020304-0506-0708-090a-0b0c0d0e0f10", str)); sprintf(str, "%pUB", guid); assert(!strcmp("01020304-0506-0708-090A-0B0C0D0E0F10", str)); sprintf(str, "%pUl", guid); assert(!strcmp("04030201-0605-0807-090a-0b0c0d0e0f10", str)); sprintf(str, "%pUL", guid); assert(!strcmp("04030201-0605-0807-090A-0B0C0D0E0F10", str)); #endif } |
256060e42 vsprintf.c: add E... |
36 37 38 |
/* Test efi_loader specific printing */ static void efi_ut_print(void) { |
7a9e6ee6e test: print_ut.c ... |
39 |
#if CONFIG_IS_ENABLED(EFI_LOADER) && !defined(API_BUILD) |
256060e42 vsprintf.c: add E... |
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
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)); |
5f1ce1d4c vsprintf.c: corre... |
62 63 64 65 |
/* NULL device path */ snprintf(str, sizeof(str), "_%pD_", NULL); assert(!strcmp("_<NULL>_", str)); |
256060e42 vsprintf.c: add E... |
66 67 |
#endif } |
e5a9d27fd test: Add a test ... |
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
static int do_ut_print(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { char big_str[400]; int big_str_len; char str[10], *s; int len; printf("%s: Testing print ", __func__); snprintf(str, sizeof(str), "testing"); assert(!strcmp("testing", str)); snprintf(str, sizeof(str), "testing but too long"); assert(!strcmp("testing b", str)); snprintf(str, 1, "testing none"); assert(!strcmp("", str)); *str = 'x'; snprintf(str, 0, "testing none"); assert(*str == 'x'); |
085391b22 test: print_ut: A... |
91 92 |
sprintf(big_str, "_%ls_", L"foo"); assert(!strcmp("_foo_", big_str)); |
e5a9d27fd test: Add a test ... |
93 94 95 96 97 98 99 100 |
/* Test the banner function */ s = display_options_get_banner(true, str, sizeof(str)); assert(s == str); assert(!strcmp(" U-Boo ", s)); |
6c74e94a6 lib/display_optio... |
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
/* Assert that we do not overwrite memory before the buffer */ str[0] = '`'; s = display_options_get_banner(true, str + 1, 1); assert(s == str + 1); assert(!strcmp("`", str)); str[0] = '~'; s = display_options_get_banner(true, str + 1, 2); assert(s == str + 1); assert(!strcmp("~ ", str)); /* The last two characters are set to for all buffer sizes > 2 */ |
e5a9d27fd test: Add a test ... |
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
s = display_options_get_banner(false, str, sizeof(str)); assert(s == str); assert(!strcmp("U-Boot ", s)); /* Give it enough space for some of the version */ big_str_len = strlen(version_string) - 5; s = display_options_get_banner_priv(false, FAKE_BUILD_TAG, big_str, big_str_len); assert(s == big_str); assert(!strncmp(version_string, s, big_str_len - 3)); assert(!strcmp(" ", s + big_str_len - 3)); /* Give it enough space for the version and some of the build tag */ big_str_len = strlen(version_string) + 9 + 20; s = display_options_get_banner_priv(false, FAKE_BUILD_TAG, big_str, big_str_len); assert(s == big_str); len = strlen(version_string); assert(!strncmp(version_string, s, len)); assert(!strncmp(", Build: ", s + len, 9)); assert(!strncmp(FAKE_BUILD_TAG, s + 9 + len, 12)); assert(!strcmp(" ", s + big_str_len - 3)); |
256060e42 vsprintf.c: add E... |
144 145 |
/* Test efi_loader specific printing */ efi_ut_print(); |
3bad256f5 lib/vsprintf: all... |
146 147 |
/* Test printing GUIDs */ guid_ut_print(); |
e5a9d27fd test: Add a test ... |
148 149 150 151 152 153 154 155 156 157 |
printf("%s: Everything went swimmingly ", __func__); return 0; } U_BOOT_CMD( ut_print, 1, 1, do_ut_print, "Very basic test of printf(), etc.", "" ); |