summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2021-10-14 21:48:07 +0300
committerTom Rini <trini@konsulko.com>2021-11-12 03:02:34 +0300
commit4a255ea3b65e7793eea97a90ad00dc2b59889683 (patch)
tree3d61765cb89672ba2cdab07ec363ca627827aeb0 /test
parent3bfb0f719a196558f909ca568f3803f86a190509 (diff)
downloadu-boot-4a255ea3b65e7793eea97a90ad00dc2b59889683.tar.xz
lib: Add a function to convert a string to a hex value
Add an xtoa() function, similar to itoa() but for hex instead. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Artem Lapkin <email2tema@gmail.com> Tested-by: Artem Lapkin <email2tema@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/print_ut.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/print_ut.c b/test/print_ut.c
index 4fbb15b6d3..152a8c3334 100644
--- a/test/print_ut.c
+++ b/test/print_ut.c
@@ -335,16 +335,40 @@ static int print_itoa(struct unit_test_state *uts)
ut_asserteq_str("0", simple_itoa(0));
ut_asserteq_str("2147483647", simple_itoa(0x7fffffff));
ut_asserteq_str("4294967295", simple_itoa(0xffffffff));
+
+ /* Use #ifdef here to avoid a compiler warning on 32-bit machines */
+#ifdef CONFIG_PHYS_64BIT
if (sizeof(ulong) == 8) {
ut_asserteq_str("9223372036854775807",
simple_itoa((1UL << 63) - 1));
ut_asserteq_str("18446744073709551615", simple_itoa(-1));
}
+#endif /* CONFIG_PHYS_64BIT */
return 0;
}
PRINT_TEST(print_itoa, 0);
+static int print_xtoa(struct unit_test_state *uts)
+{
+ ut_asserteq_str("7f", simple_xtoa(127));
+ ut_asserteq_str("00", simple_xtoa(0));
+ ut_asserteq_str("7fffffff", simple_xtoa(0x7fffffff));
+ ut_asserteq_str("ffffffff", simple_xtoa(0xffffffff));
+
+ /* Use #ifdef here to avoid a compiler warning on 32-bit machines */
+#ifdef CONFIG_PHYS_64BIT
+ if (sizeof(ulong) == 8) {
+ ut_asserteq_str("7fffffffffffffff",
+ simple_xtoa((1UL << 63) - 1));
+ ut_asserteq_str("ffffffffffffffff", simple_xtoa(-1));
+ }
+#endif /* CONFIG_PHYS_64BIT */
+
+ return 0;
+}
+PRINT_TEST(print_xtoa, 0);
+
int do_ut_print(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
struct unit_test *tests = UNIT_TEST_SUITE_START(print_test);