|
@@ -256,17 +256,17 @@ START_TEST(String)
|
|
|
ASSERT_EQUAL(string_getBufferUseCount(c), 3);
|
|
ASSERT_EQUAL(string_getBufferUseCount(c), 3);
|
|
|
}
|
|
}
|
|
|
{ // String splitting by shared reference counted buffer
|
|
{ // String splitting by shared reference counted buffer
|
|
|
- String source = U"a . b . c . d";
|
|
|
|
|
- String source2 = U"a . b .\tc";
|
|
|
|
|
|
|
+ String source = U" a . b . c . d ";
|
|
|
|
|
+ String source2 = U" a . b .\tc ";
|
|
|
ASSERT_EQUAL(string_getBufferUseCount(source), 1);
|
|
ASSERT_EQUAL(string_getBufferUseCount(source), 1);
|
|
|
ASSERT_EQUAL(string_getBufferUseCount(source2), 1);
|
|
ASSERT_EQUAL(string_getBufferUseCount(source2), 1);
|
|
|
List<String> result;
|
|
List<String> result;
|
|
|
result = string_split(source, U'.', false);
|
|
result = string_split(source, U'.', false);
|
|
|
ASSERT_EQUAL(result.length(), 4);
|
|
ASSERT_EQUAL(result.length(), 4);
|
|
|
- ASSERT_MATCH(result[0], U"a ");
|
|
|
|
|
|
|
+ ASSERT_MATCH(result[0], U" a ");
|
|
|
ASSERT_MATCH(result[1], U" b ");
|
|
ASSERT_MATCH(result[1], U" b ");
|
|
|
ASSERT_MATCH(result[2], U" c ");
|
|
ASSERT_MATCH(result[2], U" c ");
|
|
|
- ASSERT_MATCH(result[3], U" d");
|
|
|
|
|
|
|
+ ASSERT_MATCH(result[3], U" d ");
|
|
|
ASSERT_EQUAL(string_getBufferUseCount(source), 5);
|
|
ASSERT_EQUAL(string_getBufferUseCount(source), 5);
|
|
|
ASSERT_EQUAL(string_getBufferUseCount(source2), 1);
|
|
ASSERT_EQUAL(string_getBufferUseCount(source2), 1);
|
|
|
result = string_split(source2, U'.', true);
|
|
result = string_split(source2, U'.', true);
|
|
@@ -277,6 +277,24 @@ START_TEST(String)
|
|
|
ASSERT_EQUAL(string_getBufferUseCount(source), 1);
|
|
ASSERT_EQUAL(string_getBufferUseCount(source), 1);
|
|
|
ASSERT_EQUAL(string_getBufferUseCount(source2), 4);
|
|
ASSERT_EQUAL(string_getBufferUseCount(source2), 4);
|
|
|
}
|
|
}
|
|
|
|
|
+ { // Automatically allocating a shared buffer for many elements
|
|
|
|
|
+ List<String> result = string_split(U" a . b . c . d ", U'.', true);
|
|
|
|
|
+ ASSERT_MATCH(result[0], U"a");
|
|
|
|
|
+ ASSERT_MATCH(result[1], U"b");
|
|
|
|
|
+ ASSERT_MATCH(result[2], U"c");
|
|
|
|
|
+ ASSERT_MATCH(result[3], U"d");
|
|
|
|
|
+ ASSERT_EQUAL(string_getBufferUseCount(result[0]), 4);
|
|
|
|
|
+ ASSERT_EQUAL(string_getBufferUseCount(result[1]), 4);
|
|
|
|
|
+ ASSERT_EQUAL(string_getBufferUseCount(result[2]), 4);
|
|
|
|
|
+ ASSERT_EQUAL(string_getBufferUseCount(result[3]), 4);
|
|
|
|
|
+ result = string_split(U" a . b . c ", U'.', false);
|
|
|
|
|
+ ASSERT_MATCH(result[0], U" a ");
|
|
|
|
|
+ ASSERT_MATCH(result[1], U" b ");
|
|
|
|
|
+ ASSERT_MATCH(result[2], U" c ");
|
|
|
|
|
+ ASSERT_EQUAL(string_getBufferUseCount(result[0]), 3);
|
|
|
|
|
+ ASSERT_EQUAL(string_getBufferUseCount(result[1]), 3);
|
|
|
|
|
+ ASSERT_EQUAL(string_getBufferUseCount(result[2]), 3);
|
|
|
|
|
+ }
|
|
|
{ // Callback splitting
|
|
{ // Callback splitting
|
|
|
String numbers = U"1, 3, 5, 7, 9";
|
|
String numbers = U"1, 3, 5, 7, 9";
|
|
|
List<int> result;
|
|
List<int> result;
|