diff options
author | Patrick Steinhardt <ps@pks.im> | 2017-07-07 17:10:57 +0200 |
---|---|---|
committer | Patrick Steinhardt <ps@pks.im> | 2017-08-25 18:00:34 +0200 |
commit | 38b44c3b360e9831178f2a8b21afbd6d1b6990df (patch) | |
tree | a022c6e20006a9f7d508f1b5ecb78a5ac160deb7 | |
parent | b8922fc8f4a903b8c40614852e87bae07454f295 (diff) | |
download | libgit2-38b44c3b360e9831178f2a8b21afbd6d1b6990df.tar.gz |
tests: status: additional test for negative ignores with pattern
This test is by Carlos MartÃn Nieto.
-rw-r--r-- | tests/status/ignore.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/status/ignore.c b/tests/status/ignore.c index 23384fb1d..dc58e8b45 100644 --- a/tests/status/ignore.c +++ b/tests/status/ignore.c @@ -1155,3 +1155,30 @@ void test_status_ignore__subdir_ignore_everything_except_certain_files(void) refute_is_ignored("project/src/foo.c"); refute_is_ignored("project/src/foo/foo.c"); } + +void test_status_ignore__deeper(void) +{ + int ignored; + + g_repo = cl_git_sandbox_init("empty_standard_repo"); + + cl_git_mkfile("empty_standard_repo/.gitignore", + "*.data\n" + "!dont_ignore/*.data\n"); + + cl_git_pass(p_mkdir("empty_standard_repo/dont_ignore", 0777)); + cl_git_mkfile("empty_standard_repo/foo.data", ""); + cl_git_mkfile("empty_standard_repo/bar.data", ""); + cl_git_mkfile("empty_standard_repo/dont_ignore/foo.data", ""); + cl_git_mkfile("empty_standard_repo/dont_ignore/bar.data", ""); + + cl_git_pass(git_ignore_path_is_ignored(&ignored, g_repo, "foo.data")); + cl_assert_equal_i(1, ignored); + cl_git_pass(git_ignore_path_is_ignored(&ignored, g_repo, "bar.data")); + cl_assert_equal_i(1, ignored); + + cl_git_pass(git_ignore_path_is_ignored(&ignored, g_repo, "dont_ignore/foo.data")); + cl_assert_equal_i(0, ignored); + cl_git_pass(git_ignore_path_is_ignored(&ignored, g_repo, "dont_ignore/bar.data")); + cl_assert_equal_i(0, ignored); +} |