Blame tests/core/memmem.c

Packit Service 20376f
#include "clar_libgit2.h"
Packit Service 20376f
Packit Service 20376f
static void assert_found(const char *haystack, const char *needle, size_t expected_pos)
Packit Service 20376f
{
Packit Service 20376f
	cl_assert_equal_p(git__memmem(haystack, haystack ? strlen(haystack) : 0,
Packit Service 20376f
				      needle, needle ? strlen(needle) : 0),
Packit Service 20376f
			  haystack + expected_pos);
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
static void assert_absent(const char *haystack, const char *needle)
Packit Service 20376f
{
Packit Service 20376f
	cl_assert_equal_p(git__memmem(haystack, haystack ? strlen(haystack) : 0,
Packit Service 20376f
				      needle, needle ? strlen(needle) : 0),
Packit Service 20376f
			  NULL);
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
void test_core_memmem__found(void)
Packit Service 20376f
{
Packit Service 20376f
	assert_found("a", "a", 0);
Packit Service 20376f
	assert_found("ab", "a", 0);
Packit Service 20376f
	assert_found("ba", "a", 1);
Packit Service 20376f
	assert_found("aa", "a", 0);
Packit Service 20376f
	assert_found("aab", "aa", 0);
Packit Service 20376f
	assert_found("baa", "aa", 1);
Packit Service 20376f
	assert_found("dabc", "abc", 1);
Packit Service 20376f
	assert_found("abababc", "abc", 4);
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
void test_core_memmem__absent(void)
Packit Service 20376f
{
Packit Service 20376f
	assert_absent("a", "b");
Packit Service 20376f
	assert_absent("a", "aa");
Packit Service 20376f
	assert_absent("ba", "ab");
Packit Service 20376f
	assert_absent("ba", "ab");
Packit Service 20376f
	assert_absent("abc", "abcd");
Packit Service 20376f
	assert_absent("abcabcabc", "bcac");
Packit Service 20376f
}
Packit Service 20376f
Packit Service 20376f
void test_core_memmem__edgecases(void)
Packit Service 20376f
{
Packit Service 20376f
	assert_absent(NULL, NULL);
Packit Service 20376f
	assert_absent("a", NULL);
Packit Service 20376f
	assert_absent(NULL, "a");
Packit Service 20376f
	assert_absent("", "a");
Packit Service 20376f
	assert_absent("a", "");
Packit Service 20376f
}