summaryrefslogtreecommitdiff
path: root/test/printf.c
diff options
context:
space:
mode:
authorEvan Green <evgreen@chromium.org>2019-08-01 11:20:14 -0700
committerCommit Bot <commit-bot@chromium.org>2019-10-05 00:47:41 +0000
commitb63e2a87a75dce8941d087c8736c5a35544ab3b0 (patch)
tree32a4bfe24554a38c6ad30dcb38911796d2acea50 /test/printf.c
parent60d66714d3b41d69942652650672fd5259815538 (diff)
downloadchrome-ec-b63e2a87a75dce8941d087c8736c5a35544ab3b0.tar.gz
printf: Convert %h to %ph
In order to make printf more standard, use %ph. Pass a pointer to a struct describing the buffer, including its size. Add a convenience macro so that conversion between the old style and new style is purely mechanical. The old style of %h cannot be converted directly to %ph as-is because the C standard doesn't allow flags, precision, or field width on %p. Ultimately the goal is to enable compile-time printf format checking. This gets us one step closer to that. BUG=chromium:984041 TEST=make -j buildall BRANCH=None Cq-Depend:chrome-internal:1559798,chrome-internal:1560598 Change-Id: I9c0ca124a048314c9b62d64bd55b36be55034e0e Signed-off-by: Evan Green <evgreen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1730605
Diffstat (limited to 'test/printf.c')
-rw-r--r--test/printf.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/test/printf.c b/test/printf.c
index cf20be7b31..c758d9bccb 100644
--- a/test/printf.c
+++ b/test/printf.c
@@ -253,11 +253,9 @@ test_static int test_vsnprintf_hexdump(void)
{
const char bytes[] = {0x00, 0x5E};
- T(expect_success(err_str, "%h", bytes));
- T(expect_success("005e", "%.*h", 2, bytes));
- T(expect_success("", "%.*h", 0, bytes));
- T(expect_success(" 005e", "%5.*h", 2, bytes));
- T(expect_success("00", "%0*.*h", 2, 0, bytes));
+ T(expect_success("005e", "%ph", HEX_BUF(bytes, 2)));
+ T(expect_success("", "%ph", HEX_BUF(bytes, 0)));
+ T(expect_success("00", "%ph", HEX_BUF(bytes, 1)));
return EC_SUCCESS;
}