summaryrefslogtreecommitdiffstats
path: root/libutils/tests/String8_test.cpp
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2016-12-12 15:16:39 +0100
committerWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2016-12-12 15:16:39 +0100
commitbd9837c3559f8e545bdb6bd4010b0e2d6e6297c4 (patch)
tree4af1be2ac6814a892f91168089f6d3980bcf6931 /libutils/tests/String8_test.cpp
parent870d7cfb19f49ced89117b403972eef4a05faf08 (diff)
parent656154a5b4127370f7317852e224a9121c6beed3 (diff)
downloadsystem_core-bd9837c3559f8e545bdb6bd4010b0e2d6e6297c4.zip
system_core-bd9837c3559f8e545bdb6bd4010b0e2d6e6297c4.tar.gz
system_core-bd9837c3559f8e545bdb6bd4010b0e2d6e6297c4.tar.bz2
Merge branch 'cm-13.0' of https://github.com/CyanogenMod/android_system_core into replicant-6.0
Diffstat (limited to 'libutils/tests/String8_test.cpp')
-rw-r--r--libutils/tests/String8_test.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/libutils/tests/String8_test.cpp b/libutils/tests/String8_test.cpp
index c42c68d..7cd67d3 100644
--- a/libutils/tests/String8_test.cpp
+++ b/libutils/tests/String8_test.cpp
@@ -17,6 +17,7 @@
#define LOG_TAG "String8_test"
#include <utils/Log.h>
#include <utils/String8.h>
+#include <utils/String16.h>
#include <gtest/gtest.h>
@@ -72,4 +73,22 @@ TEST_F(String8Test, OperatorPlusEquals) {
EXPECT_STREQ(src3, " Verify me.");
}
+// http://b/29250543
+TEST_F(String8Test, CorrectInvalidSurrogate) {
+ // d841d8 is an invalid start for a surrogate pair. Make sure this is handled by ignoring the
+ // first character in the pair and handling the rest correctly.
+ String16 string16(u"\xd841\xd841\xdc41\x0000");
+ String8 string8(string16);
+
+ EXPECT_EQ(4U, string8.length());
+}
+
+TEST_F(String8Test, CheckUtf32Conversion) {
+ // Since bound checks were added, check the conversion can be done without fatal errors.
+ // The utf8 lengths of these are chars are 1 + 2 + 3 + 4 = 10.
+ const char32_t string32[] = U"\x0000007f\x000007ff\x0000911\x0010fffe";
+ String8 string8(string32);
+ EXPECT_EQ(10U, string8.length());
+}
+
}