summaryrefslogtreecommitdiff
path: root/tools/aapt2/StringPool_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/aapt2/StringPool_test.cpp')
-rw-r--r--tools/aapt2/StringPool_test.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/tools/aapt2/StringPool_test.cpp b/tools/aapt2/StringPool_test.cpp
index c722fbeca690..e93c2fba7f3c 100644
--- a/tools/aapt2/StringPool_test.cpp
+++ b/tools/aapt2/StringPool_test.cpp
@@ -180,6 +180,22 @@ TEST(StringPoolTest, FlattenEmptyStringPoolUtf8) {
ASSERT_EQ(test.setTo(data.get(), buffer.size()), android::NO_ERROR);
}
+TEST(StringPoolTest, FlattenOddCharactersUtf16) {
+ StringPool pool;
+ pool.makeRef(u"\u093f");
+ BigBuffer buffer(1024);
+ StringPool::flattenUtf16(&buffer, pool);
+
+ std::unique_ptr<uint8_t[]> data = util::copy(buffer);
+ android::ResStringPool test;
+ ASSERT_EQ(test.setTo(data.get(), buffer.size()), android::NO_ERROR);
+ size_t len = 0;
+ const char16_t* str = test.stringAt(0, &len);
+ EXPECT_EQ(1u, len);
+ EXPECT_EQ(u'\u093f', *str);
+ EXPECT_EQ(0u, str[1]);
+}
+
constexpr const char16_t* sLongString = u"バッテリーを長持ちさせるため、バッテリーセーバーは端末のパフォーマンスを抑え、バイブレーション、位置情報サービス、大半のバックグラウンドデータを制限します。メール、SMSや、同期を使 用するその他のアプリは、起動しても更新されないことがあります。バッテリーセーバーは端末の充電中は自動的にOFFになります。";
TEST(StringPoolTest, FlattenUtf8) {