Blame tests/path/dotgit.c

Packit ae9e2a
#include "clar_libgit2.h"
Packit ae9e2a
#include "path.h"
Packit ae9e2a
Packit ae9e2a
static char *gitmodules_altnames[] = {
Packit ae9e2a
	".gitmodules",
Packit ae9e2a
Packit ae9e2a
	/*
Packit ae9e2a
	 * Equivalent to the ".git\u200cmodules" string from git but hard-coded
Packit ae9e2a
	 * as a UTF-8 sequence
Packit ae9e2a
	 */
Packit ae9e2a
	".git\xe2\x80\x8cmodules",
Packit ae9e2a
Packit ae9e2a
	".Gitmodules",
Packit ae9e2a
	".gitmoduleS",
Packit ae9e2a
Packit ae9e2a
	".gitmodules ",
Packit ae9e2a
	".gitmodules.",
Packit ae9e2a
	".gitmodules  ",
Packit ae9e2a
	".gitmodules. ",
Packit ae9e2a
	".gitmodules .",
Packit ae9e2a
	".gitmodules..",
Packit ae9e2a
	".gitmodules   ",
Packit ae9e2a
	".gitmodules.  ",
Packit ae9e2a
	".gitmodules . ",
Packit ae9e2a
	".gitmodules  .",
Packit ae9e2a
Packit ae9e2a
	".Gitmodules ",
Packit ae9e2a
	".Gitmodules.",
Packit ae9e2a
	".Gitmodules  ",
Packit ae9e2a
	".Gitmodules. ",
Packit ae9e2a
	".Gitmodules .",
Packit ae9e2a
	".Gitmodules..",
Packit ae9e2a
	".Gitmodules   ",
Packit ae9e2a
	".Gitmodules.  ",
Packit ae9e2a
	".Gitmodules . ",
Packit ae9e2a
	".Gitmodules  .",
Packit ae9e2a
Packit ae9e2a
	"GITMOD~1",
Packit ae9e2a
	"gitmod~1",
Packit ae9e2a
	"GITMOD~2",
Packit ae9e2a
	"gitmod~3",
Packit ae9e2a
	"GITMOD~4",
Packit ae9e2a
Packit ae9e2a
	"GITMOD~1 ",
Packit ae9e2a
	"gitmod~2.",
Packit ae9e2a
	"GITMOD~3  ",
Packit ae9e2a
	"gitmod~4. ",
Packit ae9e2a
	"GITMOD~1 .",
Packit ae9e2a
	"gitmod~2   ",
Packit ae9e2a
	"GITMOD~3.  ",
Packit ae9e2a
	"gitmod~4 . ",
Packit ae9e2a
Packit ae9e2a
	"GI7EBA~1",
Packit ae9e2a
	"gi7eba~9",
Packit ae9e2a
Packit ae9e2a
	"GI7EB~10",
Packit ae9e2a
	"GI7EB~11",
Packit ae9e2a
	"GI7EB~99",
Packit ae9e2a
	"GI7EB~10",
Packit ae9e2a
	"GI7E~100",
Packit ae9e2a
	"GI7E~101",
Packit ae9e2a
	"GI7E~999",
Packit ae9e2a
	"~1000000",
Packit ae9e2a
	"~9999999",
Packit ae9e2a
};
Packit ae9e2a
Packit ae9e2a
static char *gitmodules_not_altnames[] = {
Packit ae9e2a
	".gitmodules x",
Packit ae9e2a
	".gitmodules .x",
Packit ae9e2a
Packit ae9e2a
	" .gitmodules",
Packit ae9e2a
Packit ae9e2a
	"..gitmodules",
Packit ae9e2a
Packit ae9e2a
	"gitmodules",
Packit ae9e2a
Packit ae9e2a
	".gitmodule",
Packit ae9e2a
Packit ae9e2a
	".gitmodules x ",
Packit ae9e2a
	".gitmodules .x",
Packit ae9e2a
Packit ae9e2a
	"GI7EBA~",
Packit ae9e2a
	"GI7EBA~0",
Packit ae9e2a
	"GI7EBA~~1",
Packit ae9e2a
	"GI7EBA~X",
Packit ae9e2a
	"Gx7EBA~1",
Packit ae9e2a
	"GI7EBX~1",
Packit ae9e2a
Packit ae9e2a
	"GI7EB~1",
Packit ae9e2a
	"GI7EB~01",
Packit ae9e2a
	"GI7EB~1",
Packit ae9e2a
};
Packit ae9e2a
Packit ae9e2a
void test_path_dotgit__dotgit_modules(void)
Packit ae9e2a
{
Packit ae9e2a
	size_t i;
Packit ae9e2a
	cl_assert_equal_i(1, git_path_is_dotgit_modules(".gitmodules", strlen(".gitmodules")));
Packit ae9e2a
	cl_assert_equal_i(1, git_path_is_dotgit_modules(".git\xe2\x80\x8cmodules", strlen(".git\xe2\x80\x8cmodules")));
Packit ae9e2a
Packit ae9e2a
	for (i = 0; i < ARRAY_SIZE(gitmodules_altnames); i++) {
Packit ae9e2a
		const char *name = gitmodules_altnames[i];
Packit ae9e2a
		if (!git_path_is_dotgit_modules(name, strlen(name)))
Packit ae9e2a
			cl_fail(name);
Packit ae9e2a
	}
Packit ae9e2a
Packit ae9e2a
	for (i = 0; i < ARRAY_SIZE(gitmodules_not_altnames); i++) {
Packit ae9e2a
		const char *name = gitmodules_not_altnames[i];
Packit ae9e2a
		if (git_path_is_dotgit_modules(name, strlen(name)))
Packit ae9e2a
			cl_fail(name);
Packit ae9e2a
	}
Packit ae9e2a
Packit ae9e2a
}
Packit ae9e2a
Packit ae9e2a
void test_path_dotgit__dotgit_modules_symlink(void)
Packit ae9e2a
{
Packit ae9e2a
	cl_assert_equal_b(true, git_path_isvalid(NULL, ".gitmodules", 0, GIT_PATH_REJECT_DOT_GIT_HFS|GIT_PATH_REJECT_DOT_GIT_NTFS));
Packit ae9e2a
	cl_assert_equal_b(false, git_path_isvalid(NULL, ".gitmodules", S_IFLNK, GIT_PATH_REJECT_DOT_GIT_HFS));
Packit ae9e2a
	cl_assert_equal_b(false, git_path_isvalid(NULL, ".gitmodules", S_IFLNK, GIT_PATH_REJECT_DOT_GIT_NTFS));
Packit ae9e2a
}