| ... | ... |
@@ -56,7 +56,7 @@ static void setup_match_struct(struct match_struct *match, const char *needle, c |
| 56 | 56 |
match->needle_len = strlen(needle); |
| 57 | 57 |
match->haystack_len = strlen(haystack); |
| 58 | 58 |
|
| 59 |
- if (match->needle_len > MATCH_MAX_LEN || match->needle_len > match->haystack_len) {
|
|
| 59 |
+ if (match->haystack_len > MATCH_MAX_LEN || match->needle_len > match->haystack_len) {
|
|
| 60 | 60 |
return; |
| 61 | 61 |
} |
| 62 | 62 |
|
| ... | ... |
@@ -131,6 +131,18 @@ TEST score_dot() {
|
| 131 | 131 |
PASS(); |
| 132 | 132 |
} |
| 133 | 133 |
|
| 134 |
+TEST score_long_string() {
|
|
| 135 |
+ char string[4096]; |
|
| 136 |
+ memset(string, 'a', sizeof(string) - 1); |
|
| 137 |
+ string[sizeof(string) - 1] = '\0'; |
|
| 138 |
+ |
|
| 139 |
+ ASSERT_SCORE_EQ(SCORE_MIN, match("aa", string));
|
|
| 140 |
+ ASSERT_SCORE_EQ(SCORE_MIN, match(string, "aa")); |
|
| 141 |
+ ASSERT_SCORE_EQ(SCORE_MIN, match(string, string)); |
|
| 142 |
+ |
|
| 143 |
+ PASS(); |
|
| 144 |
+} |
|
| 145 |
+ |
|
| 134 | 146 |
TEST positions_consecutive() {
|
| 135 | 147 |
size_t positions[3]; |
| 136 | 148 |
match_positions("amo", "app/models/foo", positions);
|
| ... | ... |
@@ -210,6 +222,7 @@ SUITE(match_suite) {
|
| 210 | 222 |
RUN_TEST(score_slash); |
| 211 | 223 |
RUN_TEST(score_capital); |
| 212 | 224 |
RUN_TEST(score_dot); |
| 225 |
+ RUN_TEST(score_long_string); |
|
| 213 | 226 |
|
| 214 | 227 |
RUN_TEST(positions_consecutive); |
| 215 | 228 |
RUN_TEST(positions_start_of_word); |