From: Timo Sirainen Date: Tue, 22 Nov 2016 15:31:02 +0000 (+0200) Subject: lib-fts: Fix fts_tokenizer_delete_trailing_partial_char() unit test X-Git-Tag: 2.3.0.rc1~2546 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=edc654a35c3368dfb529ba784aee41dff6f45149;p=thirdparty%2Fdovecot%2Fcore.git lib-fts: Fix fts_tokenizer_delete_trailing_partial_char() unit test --- diff --git a/src/lib-fts/test-fts-tokenizer.c b/src/lib-fts/test-fts-tokenizer.c index 06fa79041c..55aef40e26 100644 --- a/src/lib-fts/test-fts-tokenizer.c +++ b/src/lib-fts/test-fts-tokenizer.c @@ -424,16 +424,32 @@ static void test_fts_tokenizer_address_search(void) test_end(); } -static void test_fts_tokenizer_delete_trailing_partial_char() +static void test_fts_tokenizer_delete_trailing_partial_char(void) { - const char* str[] = {"\x7f", "\xC2\x80", "\xE0\x80\x80","\xF0\x80\x80\x80"}; + const struct { + const char *str; + unsigned int truncated_len; + } tests[] = { + /* non-truncated */ + { "\x7f", 1 }, + { "\xC2\x80", 2 }, + { "\xE0\x80\x80", 3 }, + { "\xF0\x80\x80\x80", 4 }, + + /* truncated */ + { "\xF0\x80\x80", 0 }, + { "x\xF0\x80\x80", 1 }, + }; unsigned int i; - size_t new_size; - for (i = 0; i < 4; i++) { - new_size = i+1; - fts_tokenizer_delete_trailing_partial_char((unsigned char*)str[i], &new_size); - test_assert( i+1 == new_size); + size_t size; + + test_begin("fts tokenizer delete trailing partial char"); + for (i = 0; i < N_ELEMENTS(tests); i++) { + size = strlen(tests[i].str); + fts_tokenizer_delete_trailing_partial_char((const unsigned char *)tests[i].str, &size); + test_assert(size == tests[i].truncated_len); } + test_end(); } int main(void)