From 5dad0e54102ab8ea14dae3385f337848116b4349 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 12 Sep 2019 14:54:24 +1000 Subject: [PATCH] AP_HAL: a few more simple tests for snprintf --- libraries/AP_HAL/tests/test_vsnprintf.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/libraries/AP_HAL/tests/test_vsnprintf.cpp b/libraries/AP_HAL/tests/test_vsnprintf.cpp index eb94699139..035458a248 100644 --- a/libraries/AP_HAL/tests/test_vsnprintf.cpp +++ b/libraries/AP_HAL/tests/test_vsnprintf.cpp @@ -34,6 +34,29 @@ TEST(vsnprintf_Test, Basic) EXPECT_TRUE(streq(output, "0123")); EXPECT_EQ(bytes_required, 8); } + { // ensure rest of buffer survives + memset(output, 'A', 10); + const int bytes_required = snprintf(output, 5, "012345678"); + EXPECT_TRUE(streq(output, "0123")); + EXPECT_EQ(bytes_required, 9); + EXPECT_EQ(output[6], 'A'); + } + { // simple float + const int bytes_required = hal.util->snprintf(output, ARRAY_SIZE(output), "%f", 1/3.0); + EXPECT_EQ(bytes_required, 8); + EXPECT_TRUE(streq(output, "0.333333")); + } + { // less simple float + const int bytes_required = hal.util->snprintf(output, ARRAY_SIZE(output), "%30.9f", 1/3.0); + EXPECT_EQ(bytes_required, 28); + EXPECT_TRUE(streq(output, " 0.3333333")); + } + + { // simple string + const int bytes_required = hal.util->snprintf(output, ARRAY_SIZE(output), "%s %s %c", "ABC", "DEF", 'x'); + EXPECT_EQ(bytes_required, 9); + EXPECT_TRUE(streq(output, "ABC DEF x")); + } } AP_GTEST_MAIN()