summaryrefslogtreecommitdiff
path: root/tests/stdio_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/stdio_test.cpp')
-rw-r--r--tests/stdio_test.cpp72
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/stdio_test.cpp b/tests/stdio_test.cpp
index 97b222c48..e07980e77 100644
--- a/tests/stdio_test.cpp
+++ b/tests/stdio_test.cpp
@@ -302,6 +302,13 @@ TEST(STDIO_TEST, snprintf_lc) {
EXPECT_STREQ("<a>", buf);
}
+TEST(STDIO_TEST, snprintf_C) { // Synonym for %lc.
+ char buf[BUFSIZ];
+ wchar_t wc = L'a';
+ EXPECT_EQ(3, snprintf(buf, sizeof(buf), "<%C>", wc));
+ EXPECT_STREQ("<a>", buf);
+}
+
TEST(STDIO_TEST, snprintf_ls) {
char buf[BUFSIZ];
wchar_t* ws = NULL;
@@ -314,6 +321,18 @@ TEST(STDIO_TEST, snprintf_ls) {
EXPECT_STREQ("<hi>", buf);
}
+TEST(STDIO_TEST, snprintf_S) { // Synonym for %ls.
+ char buf[BUFSIZ];
+ wchar_t* ws = NULL;
+ EXPECT_EQ(8, snprintf(buf, sizeof(buf), "<%S>", ws));
+ EXPECT_STREQ("<(null)>", buf);
+
+ wchar_t chars[] = { L'h', L'i', 0 };
+ ws = chars;
+ EXPECT_EQ(4, snprintf(buf, sizeof(buf), "<%S>", ws));
+ EXPECT_STREQ("<hi>", buf);
+}
+
TEST(STDIO_TEST, snprintf_n) {
#if defined(__BIONIC__)
// http://b/14492135
@@ -584,6 +603,24 @@ TEST(STDIO_TEST, swprintf_a) {
ASSERT_EQ(std::wstring(L"0x1.921fb54411744p+1"), buf);
}
+TEST(STDIO_TEST, swprintf_lc) {
+ constexpr size_t nchars = 32;
+ wchar_t buf[nchars];
+
+ wint_t wc = L'a';
+ EXPECT_EQ(3, swprintf(buf, nchars, L"<%lc>", wc));
+ EXPECT_EQ(std::wstring(L"<a>"), buf);
+}
+
+TEST(STDIO_TEST, swprintf_C) { // Synonym for %lc.
+ constexpr size_t nchars = 32;
+ wchar_t buf[nchars];
+
+ wint_t wc = L'a';
+ EXPECT_EQ(3, swprintf(buf, nchars, L"<%C>", wc));
+ EXPECT_EQ(std::wstring(L"<a>"), buf);
+}
+
TEST(STDIO_TEST, swprintf_ls) {
constexpr size_t nchars = 32;
wchar_t buf[nchars];
@@ -595,6 +632,17 @@ TEST(STDIO_TEST, swprintf_ls) {
ASSERT_EQ(std::wstring(kWideString), buf);
}
+TEST(STDIO_TEST, swprintf_S) { // Synonym for %ls.
+ constexpr size_t nchars = 32;
+ wchar_t buf[nchars];
+
+ static const wchar_t kWideString[] = L"Hello\uff41 World";
+ ASSERT_EQ(12, swprintf(buf, nchars, L"%S", kWideString));
+ ASSERT_EQ(std::wstring(kWideString), buf);
+ ASSERT_EQ(12, swprintf(buf, 13, L"%S", kWideString));
+ ASSERT_EQ(std::wstring(kWideString), buf);
+}
+
TEST(STDIO_TEST, snprintf_d_INT_MAX) {
char buf[BUFSIZ];
snprintf(buf, sizeof(buf), "%d", INT_MAX);
@@ -639,6 +687,30 @@ TEST(STDIO_TEST, snprintf_lld_LLONG_MIN) {
EXPECT_STREQ("-9223372036854775808", buf);
}
+TEST(STDIO_TEST, snprintf_o_UINT_MAX) {
+ char buf[BUFSIZ];
+ snprintf(buf, sizeof(buf), "%o", UINT_MAX);
+ EXPECT_STREQ("37777777777", buf);
+}
+
+TEST(STDIO_TEST, snprintf_u_UINT_MAX) {
+ char buf[BUFSIZ];
+ snprintf(buf, sizeof(buf), "%u", UINT_MAX);
+ EXPECT_STREQ("4294967295", buf);
+}
+
+TEST(STDIO_TEST, snprintf_x_UINT_MAX) {
+ char buf[BUFSIZ];
+ snprintf(buf, sizeof(buf), "%x", UINT_MAX);
+ EXPECT_STREQ("ffffffff", buf);
+}
+
+TEST(STDIO_TEST, snprintf_X_UINT_MAX) {
+ char buf[BUFSIZ];
+ snprintf(buf, sizeof(buf), "%X", UINT_MAX);
+ EXPECT_STREQ("FFFFFFFF", buf);
+}
+
TEST(STDIO_TEST, snprintf_e) {
char buf[BUFSIZ];