Add %m and %#x support for async_safe logging
Bugs: None
Test: None
Change-Id: I889015b89b85e222e26f8aa20e35d46a86a0cb7c
diff --git a/tests/async_safe_test.cpp b/tests/async_safe_test.cpp
index 6c4758e..f52387e 100644
--- a/tests/async_safe_test.cpp
+++ b/tests/async_safe_test.cpp
@@ -64,6 +64,10 @@
async_safe_format_buffer(buf, sizeof(buf), "a%ldb", 70000L);
EXPECT_STREQ("a70000b", buf);
+ errno = EINVAL;
+ async_safe_format_buffer(buf, sizeof(buf), "a%mZ");
+ EXPECT_STREQ("aInvalid argumentZ", buf);
+
async_safe_format_buffer(buf, sizeof(buf), "a%pb", reinterpret_cast<void*>(0xb0001234));
EXPECT_STREQ("a0xb0001234b", buf);
@@ -97,6 +101,30 @@
async_safe_format_buffer(buf, sizeof(buf), "a%03d:%d:%02dz", 5, 5, 5);
EXPECT_STREQ("a005:5:05z", buf);
+ async_safe_format_buffer(buf, sizeof(buf), "a%#xZ", 34);
+ EXPECT_STREQ("a0x22Z", buf);
+
+ async_safe_format_buffer(buf, sizeof(buf), "a%#xZ", 0);
+ EXPECT_STREQ("a0Z", buf);
+
+ async_safe_format_buffer(buf, sizeof(buf), "a%#5xZ", 20);
+ EXPECT_STREQ("a 0x14Z", buf);
+
+ snprintf(buf, sizeof(buf), "a%#08.8xZ", 1);
+ EXPECT_STREQ("a0x00000001Z", buf);
+
+ async_safe_format_buffer(buf, sizeof(buf), "a%#oZ", 777);
+ EXPECT_STREQ("a01411Z", buf);
+
+ async_safe_format_buffer(buf, sizeof(buf), "a%#oZ", 0);
+ EXPECT_STREQ("a0Z", buf);
+
+ async_safe_format_buffer(buf, sizeof(buf), "a%#6oZ", 15);
+ EXPECT_STREQ("a 017Z", buf);
+
+ snprintf(buf, sizeof(buf), "a%#08.8oZ", 11);
+ EXPECT_STREQ("a00000013Z", buf);
+
void* p = nullptr;
async_safe_format_buffer(buf, sizeof(buf), "a%d,%pz", 5, p);
EXPECT_STREQ("a5,0x0z", buf);