dovecot-2.2: lib-fts: Fixed/improved test-fts-filter unit tests ...

dovecot at dovecot.org dovecot at dovecot.org
Mon May 11 13:03:14 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/44a87e17f988
changeset: 18637:44a87e17f988
user:      Timo Sirainen <tss at iki.fi>
date:      Mon May 11 16:01:13 2015 +0300
description:
lib-fts: Fixed/improved test-fts-filter unit tests for previous changes.

diffstat:

 src/lib-fts/test-fts-filter.c |  49 +++++++++++++++++++++++++++---------------
 1 files changed, 31 insertions(+), 18 deletions(-)

diffs (108 lines):

diff -r d4541fd7a531 -r 44a87e17f988 src/lib-fts/test-fts-filter.c
--- 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


More information about the dovecot-cvs mailing list