summaryrefslogtreecommitdiff
path: root/test/utils_str.c
diff options
context:
space:
mode:
authorNicolas Boichat <drinkcat@chromium.org>2018-06-27 14:53:17 +0800
committerchrome-bot <chrome-bot@chromium.org>2018-06-28 07:06:45 -0700
commitcacc1c8ac679b66876cf3e65c58f2bf874498050 (patch)
tree46a4dd00938bb027543309855bcc129e6eeca06b /test/utils_str.c
parent02b12a8b42d92f35e574ca954c1fe553fbfacd2a (diff)
downloadchrome-ec-cacc1c8ac679b66876cf3e65c58f2bf874498050.tar.gz
common/printf: snprintf: Return number of bytes on success
As indicated in the man page: """ Upon successful return, these functions return the number of characters printed (excluding the null byte used to end output to strings). """ There are no users of the return value currently in the EC code, but this matters when doing fuzzing, as libFuzzer calls std::to_string, which expects the correct return value. BRANCH=none BUG=chromium:854975 TEST=make buildfuzztests -j && ASAN_OPTIONS="log_path=stderr" \ build/host/usb_pd_fuzz/usb_pd_fuzz.exe -jobs=10 actually creates 10 output files. TEST=make run-utils_str -j Change-Id: If6a040f690dd847f4c88c3b8566554afdfbabc32 Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1116625 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'test/utils_str.c')
-rw-r--r--test/utils_str.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/test/utils_str.c b/test/utils_str.c
index 23890639e2..81c600bc03 100644
--- a/test/utils_str.c
+++ b/test/utils_str.c
@@ -8,6 +8,7 @@
#include "common.h"
#include "console.h"
#include "system.h"
+#include "printf.h"
#include "test_util.h"
#include "timer.h"
#include "util.h"
@@ -141,6 +142,14 @@ static int test_atoi(void)
(atoi("\t111") == 111));
}
+static int test_snprintf(void)
+{
+ char buffer[32];
+
+ TEST_CHECK(snprintf(buffer, sizeof(buffer), "%u", 1234) == 4);
+ TEST_CHECK(strncmp(buffer, "1234", sizeof(buffer)));
+}
+
void run_test(void)
{
test_reset();
@@ -157,6 +166,7 @@ void run_test(void)
RUN_TEST(test_strcasecmp);
RUN_TEST(test_strncasecmp);
RUN_TEST(test_atoi);
+ RUN_TEST(test_snprintf);
test_print_result();
}