summaryrefslogtreecommitdiff
path: root/tests-clar/diff
diff options
context:
space:
mode:
authorVicent Martí <vicent@github.com>2013-03-19 11:47:23 -0700
committerVicent Martí <vicent@github.com>2013-03-19 11:47:23 -0700
commit7dbf4039ae0881407fc9ead24c09c1d7cfd4103a (patch)
tree25e24ee5bcb31f8845a18eece7255b450fe04af2 /tests-clar/diff
parent0b0ecbec2b576400980b22cf2c8fb4d9ab76c423 (diff)
parent65025cb8934a289460bc64f82c27027c68a85be6 (diff)
downloadlibgit2-7dbf4039ae0881407fc9ead24c09c1d7cfd4103a.tar.gz
Merge pull request #1423 from arrbee/submodule-status-errors
Three submodule status bug fixes
Diffstat (limited to 'tests-clar/diff')
-rw-r--r--tests-clar/diff/iterator.c12
-rw-r--r--tests-clar/diff/workdir.c14
2 files changed, 16 insertions, 10 deletions
diff --git a/tests-clar/diff/iterator.c b/tests-clar/diff/iterator.c
index f1efdfbba..15b10465a 100644
--- a/tests-clar/diff/iterator.c
+++ b/tests-clar/diff/iterator.c
@@ -720,13 +720,13 @@ void test_diff_iterator__workdir_builtin_ignores(void)
{ "root_test2", false },
{ "root_test3", false },
{ "root_test4.txt", false },
- { "sub/", false },
+ { "sub", false },
{ "sub/.gitattributes", false },
{ "sub/abc", false },
{ "sub/dir/", true },
{ "sub/file", false },
{ "sub/ign/", true },
- { "sub/sub/", false },
+ { "sub/sub", false },
{ "sub/sub/.gitattributes", false },
{ "sub/sub/dir", false }, /* file is not actually a dir */
{ "sub/sub/file", false },
@@ -746,9 +746,13 @@ void test_diff_iterator__workdir_builtin_ignores(void)
cl_assert_equal_s(expected[idx].path, entry->path);
cl_assert_(ignored == expected[idx].ignored, expected[idx].path);
- if (!ignored && S_ISDIR(entry->mode))
+ if (!ignored &&
+ (entry->mode == GIT_FILEMODE_TREE ||
+ entry->mode == GIT_FILEMODE_COMMIT))
+ {
+ /* it is possible to advance "into" a submodule */
cl_git_pass(git_iterator_advance_into(&entry, i));
- else
+ } else
cl_git_pass(git_iterator_advance(&entry, i));
}
diff --git a/tests-clar/diff/workdir.c b/tests-clar/diff/workdir.c
index 7e8915c4b..983465b29 100644
--- a/tests-clar/diff/workdir.c
+++ b/tests-clar/diff/workdir.c
@@ -936,7 +936,8 @@ void test_diff_workdir__submodules(void)
p_rename("submod2_target/.gitted", "submod2_target/.git");
rewrite_gitmodules(git_repository_workdir(g_repo));
- p_rename("submod2/not_submodule/.gitted", "submod2/not_submodule/.git");
+ p_rename("submod2/not-submodule/.gitted", "submod2/not-submodule/.git");
+ p_rename("submod2/not/.gitted", "submod2/not/.git");
cl_fixture_cleanup("submod2_target");
@@ -954,21 +955,22 @@ void test_diff_workdir__submodules(void)
/* essentially doing: git diff 873585b94bdeabccea991ea5e3ec1a277895b698 */
memset(&exp, 0, sizeof(exp));
+
cl_git_pass(git_diff_foreach(
diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
- /* the following differs from "git diff 873585" by one "untracked" file
- * because the diff list includes the "not_submodule/" directory which
- * is not displayed in the text diff.
+ /* the following differs from "git diff 873585" by two "untracked" file
+ * because the diff list includes the "not" and "not-submodule" dirs which
+ * are not displayed in the text diff.
*/
- cl_assert_equal_i(10, exp.files);
+ cl_assert_equal_i(11, exp.files);
cl_assert_equal_i(0, exp.file_status[GIT_DELTA_ADDED]);
cl_assert_equal_i(0, exp.file_status[GIT_DELTA_DELETED]);
cl_assert_equal_i(1, exp.file_status[GIT_DELTA_MODIFIED]);
cl_assert_equal_i(0, exp.file_status[GIT_DELTA_IGNORED]);
- cl_assert_equal_i(9, exp.file_status[GIT_DELTA_UNTRACKED]);
+ cl_assert_equal_i(10, exp.file_status[GIT_DELTA_UNTRACKED]);
/* the following numbers match "git diff 873585" exactly */