diff options
| author | Patrick Steinhardt <ps@pks.im> | 2018-10-26 12:33:59 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-26 12:33:59 +0200 |
| commit | 623647af9959e0ce8d265ef0060a01b0da6b5fd4 (patch) | |
| tree | c5e3b2209d42ad60231138f4e1eb8e913e1f92ba /tests/core | |
| parent | 814389d400b17cf5cce7862ca802d5a3eedba541 (diff) | |
| parent | 7655b2d89e8275853d9921dd903dcdad9b3d4a7b (diff) | |
| download | libgit2-623647af9959e0ce8d265ef0060a01b0da6b5fd4.tar.gz | |
Merge pull request #4864 from pks-t/pks/object-parse-fixes
Object parse fixes
Diffstat (limited to 'tests/core')
| -rw-r--r-- | tests/core/memmem.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/core/memmem.c b/tests/core/memmem.c new file mode 100644 index 000000000..fd9986d01 --- /dev/null +++ b/tests/core/memmem.c @@ -0,0 +1,46 @@ +#include "clar_libgit2.h" + +static void assert_found(const char *haystack, const char *needle, size_t expected_pos) +{ + cl_assert_equal_p(git__memmem(haystack, haystack ? strlen(haystack) : 0, + needle, needle ? strlen(needle) : 0), + haystack + expected_pos); +} + +static void assert_absent(const char *haystack, const char *needle) +{ + cl_assert_equal_p(git__memmem(haystack, haystack ? strlen(haystack) : 0, + needle, needle ? strlen(needle) : 0), + NULL); +} + +void test_core_memmem__found(void) +{ + assert_found("a", "a", 0); + assert_found("ab", "a", 0); + assert_found("ba", "a", 1); + assert_found("aa", "a", 0); + assert_found("aab", "aa", 0); + assert_found("baa", "aa", 1); + assert_found("dabc", "abc", 1); + assert_found("abababc", "abc", 4); +} + +void test_core_memmem__absent(void) +{ + assert_absent("a", "b"); + assert_absent("a", "aa"); + assert_absent("ba", "ab"); + assert_absent("ba", "ab"); + assert_absent("abc", "abcd"); + assert_absent("abcabcabc", "bcac"); +} + +void test_core_memmem__edgecases(void) +{ + assert_absent(NULL, NULL); + assert_absent("a", NULL); + assert_absent(NULL, "a"); + assert_absent("", "a"); + assert_absent("a", ""); +} |
