summaryrefslogtreecommitdiffstats
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.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/tools/aapt2/StringPool_test.cpp b/tools/aapt2/StringPool_test.cpp
index 85d101a..9552937 100644
--- a/tools/aapt2/StringPool_test.cpp
+++ b/tools/aapt2/StringPool_test.cpp
@@ -162,6 +162,16 @@ TEST(StringPoolTest, DoNotDedupeStyleWithSameStringAsNonStyle) {
EXPECT_NE(ref.getIndex(), styleRef.getIndex());
}
+TEST(StringPoolTest, FlattenEmptyStringPoolUtf8) {
+ StringPool pool;
+ BigBuffer buffer(1024);
+ StringPool::flattenUtf8(&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);
+}
+
constexpr const char16_t* sLongString = u"バッテリーを長持ちさせるため、バッテリーセーバーは端末のパフォーマンスを抑え、バイブレーション、位置情報サービス、大半のバックグラウンドデータを制限します。メール、SMSや、同期を使 用するその他のアプリは、起動しても更新されないことがあります。バッテリーセーバーは端末の充電中は自動的にOFFになります。";
TEST(StringPoolTest, FlattenUtf8) {
@@ -183,16 +193,10 @@ TEST(StringPoolTest, FlattenUtf8) {
BigBuffer buffer(1024);
StringPool::flattenUtf8(&buffer, pool);
- uint8_t* data = new uint8_t[buffer.size()];
- uint8_t* p = data;
- for (const auto& b : buffer) {
- memcpy(p, b.buffer.get(), b.size);
- p += b.size;
- }
-
+ std::unique_ptr<uint8_t[]> data = util::copy(buffer);
{
- ResStringPool test;
- ASSERT_TRUE(test.setTo(data, buffer.size()) == NO_ERROR);
+ android::ResStringPool test;
+ ASSERT_EQ(test.setTo(data.get(), buffer.size()), android::NO_ERROR);
EXPECT_EQ(util::getString(test, 0), u"hello");
EXPECT_EQ(util::getString(test, 1), u"goodbye");
@@ -214,7 +218,6 @@ TEST(StringPoolTest, FlattenUtf8) {
EXPECT_EQ(ResStringPool_span::END, span->name.index);
}
- delete[] data;
}
} // namespace aapt