summaryrefslogtreecommitdiff
path: root/tests-clar/submodule/status.c
diff options
context:
space:
mode:
authorVicent Martí <vicent@github.com>2013-04-30 10:29:46 -0700
committerVicent Martí <vicent@github.com>2013-04-30 10:29:46 -0700
commit5e2261aca86310aa180eab5ccdc345b1539b024d (patch)
treed32c330bd2b6e74bc22d9dc9b519c10cb7d0066e /tests-clar/submodule/status.c
parent7dcda3aa3780292e33bb9229ff998ffe4edc07bf (diff)
parent5fa7e469848bef4eab19cc069df9aa3b0134c9f7 (diff)
downloadlibgit2-5e2261aca86310aa180eab5ccdc345b1539b024d.tar.gz
Merge pull request #1507 from arrbee/fix-look-inside-untracked-directory
Update diff handling of "untracked" directories
Diffstat (limited to 'tests-clar/submodule/status.c')
-rw-r--r--tests-clar/submodule/status.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests-clar/submodule/status.c b/tests-clar/submodule/status.c
index 282e82758..fca84af63 100644
--- a/tests-clar/submodule/status.c
+++ b/tests-clar/submodule/status.c
@@ -383,3 +383,30 @@ void test_submodule_status__iterator(void)
cl_git_pass(git_status_foreach_ext(g_repo, &opts, confirm_submodule_status, &exp));
}
+
+void test_submodule_status__untracked_dirs_containing_ignored_files(void)
+{
+ git_buf path = GIT_BUF_INIT;
+ unsigned int status, expected;
+ git_submodule *sm;
+
+ cl_git_pass(git_buf_joinpath(&path, git_repository_path(g_repo), "modules/sm_unchanged/info/exclude"));
+ cl_git_append2file(git_buf_cstr(&path), "\n*.ignored\n");
+
+ cl_git_pass(git_buf_joinpath(&path, git_repository_workdir(g_repo), "sm_unchanged/directory"));
+ cl_git_pass(git_futils_mkdir(git_buf_cstr(&path), NULL, 0755, 0));
+ cl_git_pass(git_buf_joinpath(&path, git_buf_cstr(&path), "i_am.ignored"));
+ cl_git_mkfile(git_buf_cstr(&path), "ignored this file, please\n");
+
+ cl_git_pass(git_submodule_lookup(&sm, g_repo, "sm_unchanged"));
+ cl_git_pass(git_submodule_status(&status, sm));
+
+ cl_assert(GIT_SUBMODULE_STATUS_IS_UNMODIFIED(status));
+
+ expected = GIT_SUBMODULE_STATUS_IN_HEAD |
+ GIT_SUBMODULE_STATUS_IN_INDEX |
+ GIT_SUBMODULE_STATUS_IN_CONFIG |
+ GIT_SUBMODULE_STATUS_IN_WD;
+
+ cl_assert(status == expected);
+}