Mercurial > dovecot > core-2.2
changeset 18637:44a87e17f988
lib-fts: Fixed/improved test-fts-filter unit tests for previous changes.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 11 May 2015 16:01:13 +0300 |
parents | d4541fd7a531 |
children | bb7d35fa9b43 |
files | src/lib-fts/test-fts-filter.c |
diffstat | 1 files changed, 31 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-fts/test-fts-filter.c Mon May 11 16:00:53 2015 +0300 +++ b/src/lib-fts/test-fts-filter.c Mon May 11 16:01:13 2015 +0300 @@ -322,8 +322,6 @@ { struct fts_filter *norm = NULL; const char *input[] = { - NULL, - "", "Vem", "Å", "ÅÄÖ", @@ -331,8 +329,6 @@ "\xC3\x85\xC3\x84\xC3\x96\xC3\xB6\xC3\xA4\xC3\xA5" }; const char *expected_output[] = { - NULL, - "", "vem", "a", "aao", @@ -349,11 +345,9 @@ T_BEGIN { test_assert(fts_filter_create(fts_filter_normalizer_icu, NULL, NULL, settings, &norm, &error) == 0); for (i = 0; i < N_ELEMENTS(input); i++) { - if (input[i] != NULL) { - token = input[i]; - test_assert_idx(fts_filter_filter(norm, &token, &error) == 1, i); - test_assert_idx(null_strcmp(token, expected_output[i]) == 0, i); - } + token = input[i]; + test_assert_idx(fts_filter_filter(norm, &token, &error) == 1, i); + test_assert_idx(null_strcmp(token, expected_output[i]) == 0, i); } fts_filter_unref(&norm); } T_END; @@ -365,8 +359,6 @@ { struct fts_filter *norm = NULL; const char *input[] = { - NULL, - "", "Vem", "Å", "ÅÄÖ", @@ -374,8 +366,6 @@ "\xC3\x85\xC3\x84\xC3\x96\xC3\xB6\xC3\xA4\xC3\xA5" }; const char *expected_output[] = { - NULL, - "", "vem", "a", "aao", @@ -390,11 +380,9 @@ T_BEGIN { test_assert(fts_filter_create(fts_filter_normalizer_icu, NULL, NULL, NULL, &norm, &error) == 0); for (i = 0; i < N_ELEMENTS(input); i++) { - if (input[i] != NULL) { - token = input[i]; - test_assert_idx(fts_filter_filter(norm, &token, &error) == 1, i); - test_assert_idx(null_strcmp(token, expected_output[i]) == 0, i); - } + token = input[i]; + test_assert_idx(fts_filter_filter(norm, &token, &error) == 1, i); + test_assert_idx(null_strcmp(token, expected_output[i]) == 0, i); } fts_filter_unref(&norm); } T_END; @@ -451,6 +439,30 @@ test_end(); } +static void test_fts_filter_normalizer_empty(void) +{ + /* test just a couple of these */ + static const char *empty_tokens[] = { + "\xCC\x80", /* U+0300 */ + "\xF3\xA0\x87\xAF", /* U+E01EF */ + "\xCC\x80\xF3\xA0\x87\xAF" /* U+0300 U+E01EF */ + }; + const char * const settings[] = + {"id", "Any-Lower; NFKD; [: Nonspacing Mark :] Remove", NULL}; + struct fts_filter *norm; + const char *error; + unsigned int i; + + test_begin("fts filter normalizer empty tokens"); + test_assert(fts_filter_create(fts_filter_normalizer_icu, NULL, NULL, settings, &norm, &error) == 0); + for (i = 0; i < N_ELEMENTS(empty_tokens); i++) { + const char *token = empty_tokens[i]; + test_assert_idx(fts_filter_filter(norm, &token, &error) == 0, i); + } + fts_filter_unref(&norm); + test_end(); +} + static void test_fts_filter_normalizer_invalid_id(void) { struct fts_filter *norm = NULL; @@ -543,6 +555,7 @@ test_fts_filter_normalizer_swedish_short, test_fts_filter_normalizer_swedish_short_default_id, test_fts_filter_normalizer_french, + test_fts_filter_normalizer_empty, test_fts_filter_normalizer_invalid_id, test_fts_filter_normalizer_stopwords_stemmer_eng, #endif