diff options
Diffstat (limited to 'tests/filter/query.c')
-rw-r--r-- | tests/filter/query.c | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/tests/filter/query.c b/tests/filter/query.c deleted file mode 100644 index 6889d715b..000000000 --- a/tests/filter/query.c +++ /dev/null @@ -1,91 +0,0 @@ -#include "clar_libgit2.h" -#include "git2/sys/filter.h" -#include "crlf.h" -#include "buffer.h" - -static git_repository *g_repo = NULL; - -void test_filter_query__initialize(void) -{ - g_repo = cl_git_sandbox_init("crlf"); - - cl_git_mkfile("crlf/.gitattributes", - "*.txt text\n" - "*.bin binary\n" - "*.crlf text eol=crlf\n" - "*.lf text eol=lf\n" - "*.binident binary ident\n" - "*.ident text ident\n" - "*.identcrlf ident text eol=crlf\n" - "*.identlf ident text eol=lf\n" - "*.custom custom ident text\n"); -} - -void test_filter_query__cleanup(void) -{ - cl_git_sandbox_cleanup(); -} - -static int filter_for(const char *filename, const char *filter) -{ - git_filter_list *fl; - int filtered; - - cl_git_pass(git_filter_list_load( - &fl, g_repo, NULL, filename, GIT_FILTER_TO_WORKTREE, 0)); - filtered = git_filter_list_contains(fl, filter); - git_filter_list_free(fl); - - return filtered; -} - -void test_filter_query__filters(void) -{ - cl_assert_equal_i(1, filter_for("text.txt", "crlf")); - cl_assert_equal_i(0, filter_for("binary.bin", "crlf")); - - cl_assert_equal_i(1, filter_for("foo.lf", "crlf")); - cl_assert_equal_i(0, filter_for("foo.lf", "ident")); - - cl_assert_equal_i(1, filter_for("id.ident", "crlf")); - cl_assert_equal_i(1, filter_for("id.ident", "ident")); - - cl_assert_equal_i(0, filter_for("id.binident", "crlf")); - cl_assert_equal_i(1, filter_for("id.binident", "ident")); -} - -void test_filter_query__autocrlf_true_implies_crlf(void) -{ - cl_repo_set_bool(g_repo, "core.autocrlf", true); - cl_assert_equal_i(1, filter_for("not_in_gitattributes", "crlf")); - cl_assert_equal_i(1, filter_for("foo.txt", "crlf")); - cl_assert_equal_i(0, filter_for("foo.bin", "crlf")); - cl_assert_equal_i(1, filter_for("foo.lf", "crlf")); - - cl_repo_set_bool(g_repo, "core.autocrlf", false); - cl_assert_equal_i(0, filter_for("not_in_gitattributes", "crlf")); - cl_assert_equal_i(1, filter_for("foo.txt", "crlf")); - cl_assert_equal_i(0, filter_for("foo.bin", "crlf")); - cl_assert_equal_i(1, filter_for("foo.lf", "crlf")); -} - -void test_filter_query__unknown(void) -{ - cl_assert_equal_i(1, filter_for("foo.custom", "crlf")); - cl_assert_equal_i(1, filter_for("foo.custom", "ident")); - cl_assert_equal_i(0, filter_for("foo.custom", "custom")); -} - -void test_filter_query__custom(void) -{ - git_filter custom = { GIT_FILTER_VERSION }; - - cl_git_pass(git_filter_register( - "custom", &custom, 42)); - - cl_assert_equal_i(1, filter_for("foo.custom", "crlf")); - cl_assert_equal_i(1, filter_for("foo.custom", "ident")); - cl_assert_equal_i(1, filter_for("foo.custom", "custom")); - - git_filter_unregister("custom"); -} |