diff options
author | David Malcolm <dmalcolm@redhat.com> | 2016-06-15 00:12:16 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2016-06-15 00:12:16 +0000 |
commit | f254671f2f9a83843b7b77b496689791bdfdb4fe (patch) | |
tree | cf61ac3757fd5bfdcfc0f5e53278cd0e3d0606c1 /gcc/spellcheck-tree.c | |
parent | ee62e30213a72a93ebee9bfbadc3612cef175957 (diff) | |
download | gcc-f254671f2f9a83843b7b77b496689791bdfdb4fe.zip gcc-f254671f2f9a83843b7b77b496689791bdfdb4fe.tar.gz gcc-f254671f2f9a83843b7b77b496689791bdfdb4fe.tar.bz2 |
Add more spellcheck selftests
gcc/ChangeLog:
* selftest-run-tests.c (selftest::run_tests): Call
selftest::spellcheck_tree_c_tests.
* selftest.h (selftest::spellcheck_tree_c_tests): New decl.
* spellcheck-tree.c: Include selftest.h and stringpool.h.
(selftest::test_find_closest_identifier): New function.
(selftest::spellcheck_tree_c_tests): New function.
* spellcheck.c (selftest::test_find_closest_string): Verify that
the order of the vec does not affect the results for this case.
(selftest::test_data): New array.
(selftest::test_metric_conditions): New function.
(selftest::spellcheck_c_tests): Add a test of case-comparison.
Call selftest::test_metric_conditions.
From-SVN: r237466
Diffstat (limited to 'gcc/spellcheck-tree.c')
-rw-r--r-- | gcc/spellcheck-tree.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/gcc/spellcheck-tree.c b/gcc/spellcheck-tree.c index eb6e72a..2d73b774 100644 --- a/gcc/spellcheck-tree.c +++ b/gcc/spellcheck-tree.c @@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "tree.h" #include "spellcheck.h" +#include "selftest.h" +#include "stringpool.h" /* Calculate Levenshtein distance between two identifiers. */ @@ -78,3 +80,50 @@ find_closest_identifier (tree target, const auto_vec<tree> *candidates) return best_identifier; } + +#if CHECKING_P + +namespace selftest { + +/* Selftests. */ + +/* Verify that find_closest_identifier is sane. */ + +static void +test_find_closest_identifier () +{ + auto_vec<tree> candidates; + + /* Verify that it can handle an empty vec. */ + ASSERT_EQ (NULL, find_closest_identifier (get_identifier (""), &candidates)); + + /* Verify that it works sanely for non-empty vecs. */ + tree apple = get_identifier ("apple"); + tree banana = get_identifier ("banana"); + tree cherry = get_identifier ("cherry"); + candidates.safe_push (apple); + candidates.safe_push (banana); + candidates.safe_push (cherry); + + ASSERT_EQ (apple, find_closest_identifier (get_identifier ("app"), + &candidates)); + ASSERT_EQ (banana, find_closest_identifier (get_identifier ("banyan"), + &candidates));; + ASSERT_EQ (cherry, find_closest_identifier (get_identifier ("berry"), + &candidates)); + ASSERT_EQ (NULL, + find_closest_identifier (get_identifier ("not like the others"), + &candidates)); +} + +/* Run all of the selftests within this file. */ + +void +spellcheck_tree_c_tests () +{ + test_find_closest_identifier (); +} + +} // namespace selftest + +#endif /* #if CHECKING_P */ |