forked from bartvdbraak/blender
GTests for new 'end' option of BLI_str_partition_ex()
.
This commit is contained in:
parent
4d043c99dc
commit
ff7a46cfad
@ -150,6 +150,37 @@ TEST(string, StrRPartition)
|
||||
}
|
||||
}
|
||||
|
||||
/* BLI_str_partition_ex */
|
||||
TEST(string, StrPartitionEx)
|
||||
{
|
||||
const char delim[] = {'-', '.', '_', '~', '\\', '\0'};
|
||||
char *sep, *suf;
|
||||
size_t pre_ln;
|
||||
|
||||
/* Only considering 'from_right' cases here. */
|
||||
|
||||
{
|
||||
const char *str = "mat.e-r_ia.l";
|
||||
|
||||
/* "mat.e-r_ia.l" over "mat.e-r" -> "mat.e", '.', "r_ia.l", 3 */
|
||||
pre_ln = BLI_str_partition_ex(str, str + 6, delim, &sep, &suf, true);
|
||||
EXPECT_EQ(5, pre_ln);
|
||||
EXPECT_EQ(&str[5], sep);
|
||||
EXPECT_STREQ("r_ia.l", suf);
|
||||
}
|
||||
|
||||
/* Corner cases. */
|
||||
{
|
||||
const char *str = "mate.rial";
|
||||
|
||||
/* "mate.rial" over "mate" -> "mate.rial", NULL, NULL, 4 */
|
||||
pre_ln = BLI_str_partition_ex(str, str + 4, delim, &sep, &suf, true);
|
||||
EXPECT_EQ(4, pre_ln);
|
||||
EXPECT_EQ(NULL, sep);
|
||||
EXPECT_EQ(NULL, suf);
|
||||
}
|
||||
}
|
||||
|
||||
/* BLI_str_partition_utf8 */
|
||||
TEST(string, StrPartitionUtf8)
|
||||
{
|
||||
@ -268,6 +299,37 @@ TEST(string, StrRPartitionUtf8)
|
||||
}
|
||||
}
|
||||
|
||||
/* BLI_str_partition_ex_utf8 */
|
||||
TEST(string, StrPartitionExUtf8)
|
||||
{
|
||||
const unsigned int delim[] = {'-', '.', '_', 0x00F1 /* n tilde */, 0x262F /* ying-yang */, '\0'};
|
||||
char *sep, *suf;
|
||||
size_t pre_ln;
|
||||
|
||||
/* Only considering 'from_right' cases here. */
|
||||
|
||||
{
|
||||
const char *str = "ma\xc3\xb1te-r\xe2\x98\xafial";
|
||||
|
||||
/* "ma\xc3\xb1te-r\xe2\x98\xafial" over "ma\xc3\xb1te" -> "ma", '\xc3\xb1', "te-r\xe2\x98\xafial", 2 */
|
||||
pre_ln = BLI_str_partition_ex_utf8(str, str + 6, delim, &sep, &suf, true);
|
||||
EXPECT_EQ(2, pre_ln);
|
||||
EXPECT_EQ(&str[2], sep);
|
||||
EXPECT_STREQ("te-r\xe2\x98\xafial", suf);
|
||||
}
|
||||
|
||||
/* Corner cases. */
|
||||
{
|
||||
const char *str = "mate\xe2\x98\xafrial";
|
||||
|
||||
/* "mate\xe2\x98\xafrial" over "mate" -> "mate\xe2\x98\xafrial", NULL, NULL, 4 */
|
||||
pre_ln = BLI_str_partition_ex_utf8(str, str + 4, delim, &sep, &suf, true);
|
||||
EXPECT_EQ(4, pre_ln);
|
||||
EXPECT_EQ(NULL, sep);
|
||||
EXPECT_EQ(NULL, suf);
|
||||
}
|
||||
}
|
||||
|
||||
/* BLI_str_format_int_grouped */
|
||||
TEST(string, StrFormatIntGrouped)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user