diff options
| author | Vicent Martà <vicent@github.com> | 2013-03-19 11:47:23 -0700 |
|---|---|---|
| committer | Vicent Martà <vicent@github.com> | 2013-03-19 11:47:23 -0700 |
| commit | 7dbf4039ae0881407fc9ead24c09c1d7cfd4103a (patch) | |
| tree | 25e24ee5bcb31f8845a18eece7255b450fe04af2 /tests-clar/diff | |
| parent | 0b0ecbec2b576400980b22cf2c8fb4d9ab76c423 (diff) | |
| parent | 65025cb8934a289460bc64f82c27027c68a85be6 (diff) | |
| download | libgit2-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.c | 12 | ||||
| -rw-r--r-- | tests-clar/diff/workdir.c | 14 |
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 */ |
