diff options
author | Dave Davenport <qball@gmpclient.org> | 2017-09-29 18:44:21 +0200 |
---|---|---|
committer | Dave Davenport <qball@gmpclient.org> | 2017-09-29 18:44:21 +0200 |
commit | 21e2e674129adb7f579b4edfe37bbeb75f936cc4 (patch) | |
tree | 35228c9b7e1ef8333f8a1ca0e1e2a55ab06f644b /test | |
parent | ebffe5503d1709f00d4d7d85f0db4f8fe1dc4f42 (diff) |
Make tokenize test use libcheck.
- Add some tests for negate.
Diffstat (limited to 'test')
-rw-r--r-- | test/helper-tokenize.c | 640 |
1 files changed, 430 insertions, 210 deletions
diff --git a/test/helper-tokenize.c b/test/helper-tokenize.c index b4635df8..6fdc43be 100644 --- a/test/helper-tokenize.c +++ b/test/helper-tokenize.c @@ -39,12 +39,8 @@ #include "settings.h" #include "rofi-types.h" -static int test = 0; +#include <check.h> -#define TASSERT( a ) { \ - assert ( a ); \ - printf ( "Test %i passed (%s)\n", ++test, # a ); \ -} void rofi_add_error_message ( G_GNUC_UNUSED GString *msg ) { } @@ -61,221 +57,445 @@ int monitor_active ( G_GNUC_UNUSED workarea *mon ) void display_startup_notification ( G_GNUC_UNUSED RofiHelperExecuteContext *context, G_GNUC_UNUSED GSpawnChildSetupFunc *child_setup, G_GNUC_UNUSED gpointer *user_data ) { } +START_TEST(test_tokenizer_free ) +{ + tokenize_free ( NULL ); +} +END_TEST +START_TEST ( test_tokenizer_match_normal_single_ci ) +{ + config.matching_method = MM_NORMAL; + rofi_int_matcher **tokens = tokenize ( "noot", FALSE ); -int main ( G_GNUC_UNUSED int argc, G_GNUC_UNUSED char ** argv ) + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap Noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "Nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noOTap mies") , TRUE ); + + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_normal_single_cs ) { - if ( setlocale ( LC_ALL, "" ) == NULL ) { - fprintf ( stderr, "Failed to set locale.\n" ); - return EXIT_FAILURE; - } - // Pid test. - // Tests basic functionality of writing it, locking, seeing if I can write same again - // And close/reopen it again. + config.matching_method = MM_NORMAL; + rofi_int_matcher **tokens = NULL; + tokens = tokenize ( "noot", TRUE ); + + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap Noot mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "Nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noOTap mies") , FALSE ); + + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_normal_multiple_ci ) +{ + config.matching_method = MM_NORMAL; + rofi_int_matcher **tokens = NULL; + + tokens = tokenize ( "no ot", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , TRUE ); + tokenize_free ( tokens ); + +} +END_TEST + +START_TEST ( test_tokenizer_match_normal_single_ci_negate ) +{ + config.matching_method = MM_NORMAL; + rofi_int_matcher **tokens = NULL; + tokens = tokenize ( "-noot", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , TRUE ); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_normal_multiple_ci_negate ) +{ + config.matching_method = MM_NORMAL; + rofi_int_matcher **tokens = NULL; + + tokens = tokenize ( "-noot aap", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , FALSE ); + tokenize_free ( tokens ); + +} +END_TEST + +START_TEST ( test_tokenizer_match_glob_single_ci ) +{ + config.matching_method = MM_GLOB; + rofi_int_matcher **tokens = NULL; + tokens = tokenize ( "noot", FALSE ); + + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap Noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "Nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noOTap mies") , TRUE ); + + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_glob_single_cs ) +{ + config.matching_method = MM_GLOB; + rofi_int_matcher **tokens = NULL; + tokens = tokenize ( "noot", TRUE ); + + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap Noot mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "Nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noOTap mies") , FALSE ); + tokenize_free ( tokens ); + +} +END_TEST + +START_TEST ( test_tokenizer_match_glob_multiple_ci ) +{ + config.matching_method = MM_GLOB; + rofi_int_matcher **tokens = NULL; + tokens = tokenize ( "no ot", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , TRUE ); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_glob_single_ci_question ) +{ + config.matching_method = MM_GLOB; + rofi_int_matcher **tokens = NULL; + + tokens = tokenize ( "n?ot", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , FALSE); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_glob_single_ci_star ) +{ + config.matching_method = MM_GLOB; + rofi_int_matcher **tokens = NULL; + tokens = tokenize ( "n*ot", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , TRUE); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_glob_multiple_ci_star ) +{ + config.matching_method = MM_GLOB; + rofi_int_matcher **tokens = NULL; + + tokens = tokenize ( "n* ot", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , TRUE); + ck_assert_int_eq ( helper_token_match ( tokens, "ot nap mies") , TRUE); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_fuzzy_single_ci ) +{ + config.matching_method = MM_FUZZY; + rofi_int_matcher **tokens = NULL; + tokens = tokenize ( "noot", FALSE ); + + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap Noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "Nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noOTap mies") , TRUE ); + + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_fuzzy_single_cs ) +{ + config.matching_method = MM_FUZZY; + rofi_int_matcher **tokens = NULL; + + tokens = tokenize ( "noot", TRUE ); + + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap Noot mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "Nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noOTap mies") , FALSE ); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_fuzzy_multiple_ci ) +{ + config.matching_method = MM_FUZZY; + rofi_int_matcher **tokens = NULL; + + tokens = tokenize ( "no ot", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , TRUE ); + tokenize_free ( tokens ); + + tokens = tokenize ( "n ot", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , TRUE); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_fuzzy_single_ci_split ) +{ + config.matching_method = MM_FUZZY; + rofi_int_matcher **tokens = NULL; + tokens = tokenize ( "ont", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , FALSE); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap nmiest") , TRUE ); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_fuzzy_multiple_ci_split ) +{ + config.matching_method = MM_FUZZY; + rofi_int_matcher **tokens = NULL; + + tokens = tokenize ( "o n t", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , TRUE); + ck_assert_int_eq ( helper_token_match ( tokens, "ot nap mies") , TRUE); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_regex_single_ci ) +{ + config.matching_method = MM_REGEX; + rofi_int_matcher **tokens = NULL; + tokens = tokenize ( "noot", FALSE ); + + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap Noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "Nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noOTap mies") , TRUE ); + + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_regex_single_cs ) +{ + config.matching_method = MM_REGEX; + rofi_int_matcher **tokens = NULL; + + tokens = tokenize ( "noot", TRUE ); + + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap Noot mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "Nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noOTap mies") , FALSE ); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_regex_multiple_ci ) +{ + config.matching_method = MM_REGEX; + rofi_int_matcher **tokens = NULL; + + tokens = tokenize ( "no ot", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , TRUE ); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_regex_single_ci_dq ) +{ + config.matching_method = MM_REGEX; + rofi_int_matcher **tokens = NULL; + + tokens = tokenize ( "n.?ot", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , FALSE); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_regex_single_two_char ) +{ + config.matching_method = MM_REGEX; + rofi_int_matcher **tokens = NULL; + tokens = tokenize ( "n[oa]{2}t", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , TRUE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noat miesot") , TRUE); + ck_assert_int_eq ( helper_token_match ( tokens, "noaat miesot") , FALSE); + tokenize_free ( tokens ); +} +END_TEST + +START_TEST ( test_tokenizer_match_regex_single_two_word_till_end ) +{ + config.matching_method = MM_REGEX; + rofi_int_matcher **tokens = NULL; + + tokens = tokenize ( "^(aap|noap)\\sMie.*", FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap noot mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "aap mies") , TRUE); + ck_assert_int_eq ( helper_token_match ( tokens, "nooaap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "nootap mies") , FALSE ); + ck_assert_int_eq ( helper_token_match ( tokens, "noap miesot") , TRUE); + ck_assert_int_eq ( helper_token_match ( tokens, "ot nap mies") , FALSE ); + tokenize_free ( tokens ); +} +END_TEST + +static Suite * tokenizer_suite (void) +{ + Suite *s; + + s = suite_create("Tokenizer"); + + /* Core test case */ { - tokenize_free ( NULL ); + TCase *tc_core; + tc_core = tcase_create("Core"); + tcase_add_test(tc_core, test_tokenizer_free); + suite_add_tcase(s, tc_core); } { - config.matching_method = MM_NORMAL; - rofi_int_matcher **tokens = tokenize ( "noot", FALSE ); - - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap Noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "Nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "noOTap mies") == TRUE ); - - tokenize_free ( tokens ); - - tokens = tokenize ( "noot", TRUE ); - - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap Noot mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "Nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "noOTap mies") == FALSE ); - - tokenize_free ( tokens ); - tokens = tokenize ( "no ot", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "noap miesot") == TRUE ); - tokenize_free ( tokens ); + TCase *tc_normal = tcase_create ("Normal"); + tcase_add_test(tc_normal, test_tokenizer_match_normal_single_ci ); + tcase_add_test(tc_normal, test_tokenizer_match_normal_single_cs ); + tcase_add_test(tc_normal, test_tokenizer_match_normal_multiple_ci ); + tcase_add_test(tc_normal, test_tokenizer_match_normal_single_ci_negate ); + tcase_add_test(tc_normal, test_tokenizer_match_normal_multiple_ci_negate); + suite_add_tcase(s, tc_normal); } { - config.matching_method = MM_GLOB; - rofi_int_matcher **tokens = tokenize ( "noot", FALSE ); - - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap Noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "Nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "noOTap mies") == TRUE ); - - tokenize_free ( tokens ); - - tokens = tokenize ( "noot", TRUE ); - - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap Noot mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "Nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "noOTap mies") == FALSE ); - tokenize_free ( tokens ); - - tokens = tokenize ( "no ot", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "noap miesot") == TRUE ); - tokenize_free ( tokens ); - - tokens = tokenize ( "n?ot", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "noap miesot") == FALSE); - tokenize_free ( tokens ); - tokens = tokenize ( "n*ot", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "noap miesot") == TRUE); - tokenize_free ( tokens ); - - tokens = tokenize ( "n* ot", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "noap miesot") == TRUE); - TASSERT ( helper_token_match ( tokens, "ot nap mies") == TRUE); - tokenize_free ( tokens ); + TCase *tc_glob = tcase_create ("Glob"); + tcase_add_test(tc_glob, test_tokenizer_match_glob_single_ci); + tcase_add_test(tc_glob, test_tokenizer_match_glob_single_cs); + tcase_add_test(tc_glob, test_tokenizer_match_glob_multiple_ci); + tcase_add_test(tc_glob, test_tokenizer_match_glob_single_ci_question); + tcase_add_test(tc_glob, test_tokenizer_match_glob_single_ci_star); + tcase_add_test(tc_glob, test_tokenizer_match_glob_multiple_ci_star); + suite_add_tcase(s, tc_glob); } { - config.matching_method = MM_FUZZY; - rofi_int_matcher **tokens = tokenize ( "noot", FALSE ); - - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap Noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "Nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "noOTap mies") == TRUE ); - - tokenize_free ( tokens ); - - tokens = tokenize ( "noot", TRUE ); - - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap Noot mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "Nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "noOTap mies") == FALSE ); - tokenize_free ( tokens ); - - tokens = tokenize ( "no ot", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "noap miesot") == TRUE ); - tokenize_free ( tokens ); - - tokens = tokenize ( "n ot", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "noap miesot") == TRUE); - tokenize_free ( tokens ); - tokens = tokenize ( "ont", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == FALSE); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap nmiest") == TRUE ); - tokenize_free ( tokens ); - - tokens = tokenize ( "o n t", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "noap miesot") == TRUE); - TASSERT ( helper_token_match ( tokens, "ot nap mies") == TRUE); - tokenize_free ( tokens ); + TCase *tc_fuzzy = tcase_create ("Fuzzy"); + tcase_add_test(tc_fuzzy, test_tokenizer_match_fuzzy_single_ci); + tcase_add_test(tc_fuzzy, test_tokenizer_match_fuzzy_single_cs); + tcase_add_test(tc_fuzzy, test_tokenizer_match_fuzzy_single_ci_split); + tcase_add_test(tc_fuzzy, test_tokenizer_match_fuzzy_multiple_ci); + tcase_add_test(tc_fuzzy, test_tokenizer_match_fuzzy_multiple_ci_split); + suite_add_tcase(s, tc_fuzzy); } { - config.matching_method = MM_REGEX; - rofi_int_matcher **tokens = tokenize ( "noot", FALSE ); - - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap Noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "Nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "noOTap mies") == TRUE ); - - tokenize_free ( tokens ); - - tokens = tokenize ( "noot", TRUE ); - - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap Noot mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "Nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "noOTap mies") == FALSE ); - tokenize_free ( tokens ); - - tokens = tokenize ( "no ot", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "noap miesot") == TRUE ); - tokenize_free ( tokens ); - - tokens = tokenize ( "n.?ot", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "noap miesot") == FALSE); - tokenize_free ( tokens ); - tokens = tokenize ( "n[oa]{2}t", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == TRUE ); - TASSERT ( helper_token_match ( tokens, "noat miesot") == TRUE); - TASSERT ( helper_token_match ( tokens, "noaat miesot") == FALSE); - tokenize_free ( tokens ); - - tokens = tokenize ( "^(aap|noap)\\sMie.*", FALSE ); - TASSERT ( helper_token_match ( tokens, "aap noot mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "aap mies") == TRUE); - TASSERT ( helper_token_match ( tokens, "nooaap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "nootap mies") == FALSE ); - TASSERT ( helper_token_match ( tokens, "noap miesot") == TRUE); - TASSERT ( helper_token_match ( tokens, "ot nap mies") == FALSE ); - tokenize_free ( tokens ); + TCase *tc_regex = tcase_create ("Regex"); + tcase_add_test(tc_regex, test_tokenizer_match_regex_single_ci); + tcase_add_test(tc_regex, test_tokenizer_match_regex_single_cs); + tcase_add_test(tc_regex, test_tokenizer_match_regex_single_ci_dq); + tcase_add_test(tc_regex, test_tokenizer_match_regex_single_two_char); + tcase_add_test(tc_regex, test_tokenizer_match_regex_single_two_word_till_end); + tcase_add_test(tc_regex, test_tokenizer_match_regex_multiple_ci); + suite_add_tcase(s, tc_regex); + } + + + return s; +} + +int main ( G_GNUC_UNUSED int argc, G_GNUC_UNUSED char ** argv ) +{ + if ( setlocale ( LC_ALL, "" ) == NULL ) { + fprintf ( stderr, "Failed to set locale.\n" ); + return EXIT_FAILURE; } + + int number_failed = 0; + Suite *s; + SRunner *sr; + + s = tokenizer_suite(); + sr = srunner_create(s); + + srunner_run_all(sr, CK_NORMAL); + number_failed = srunner_ntests_failed(sr); + srunner_free(sr); + return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; + } |