[PATCH] spellcheck.c: add test_find_closest_string
David Malcolm
dmalcolm@redhat.com
Mon Jun 6 20:37:00 GMT 2016
This adds another test case to -fself-test.
Successfully bootstrapped®rtested on x86_64-pc-linux-gnu.
OK for trunk?
gcc/ChangeLog:
* spellcheck.c (selftest::test_find_closest_string): New function.
(spellcheck_c_tests): Call the above.
---
gcc/spellcheck.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gcc/spellcheck.c b/gcc/spellcheck.c
index ceb6016..11018f0 100644
--- a/gcc/spellcheck.c
+++ b/gcc/spellcheck.c
@@ -198,6 +198,27 @@ levenshtein_distance_unit_test (const char *a, const char *b,
levenshtein_distance_unit_test_oneway (b, a, expected);
}
+/* Verify that find_closest_string is sane. */
+
+static void
+test_find_closest_string ()
+{
+ auto_vec<const char *> candidates;
+
+ /* Verify that it can handle an empty vec. */
+ ASSERT_EQ (NULL, find_closest_string ("", &candidates));
+
+ /* Verify that it works sanely for non-empty vecs. */
+ candidates.safe_push ("apple");
+ candidates.safe_push ("banana");
+ candidates.safe_push ("cherry");
+
+ ASSERT_STREQ ("apple", find_closest_string ("app", &candidates));
+ ASSERT_STREQ ("banana", find_closest_string ("banyan", &candidates));
+ ASSERT_STREQ ("cherry", find_closest_string ("berry", &candidates));
+ ASSERT_EQ (NULL, find_closest_string ("not like the others", &candidates));
+}
+
/* Verify levenshtein_distance for a variety of pairs of pre-canned
inputs, comparing against known-good values. */
@@ -218,6 +239,8 @@ spellcheck_c_tests ()
("Lorem ipsum dolor sit amet, consectetur adipiscing elit,",
"All your base are belong to us",
44);
+
+ test_find_closest_string ();
}
} // namespace selftest
--
1.8.5.3
More information about the Gcc-patches
mailing list