diff options
author | David Turner <dturner@twopensource.com> | 2016-05-17 15:40:32 -0400 |
---|---|---|
committer | David Turner <dturner@twosigma.com> | 2016-08-10 14:19:30 -0400 |
commit | 5625d86b994fd81f1b0d887890e8168d7b5f46cc (patch) | |
tree | 9c229286979e8fc8f98657a821faf591072ff636 /tests | |
parent | aeb5ee5ab50a062aac02ca084b02582430669808 (diff) | |
download | libgit2-5625d86b994fd81f1b0d887890e8168d7b5f46cc.tar.gz |
index: support index v4
Support reading and writing index v4. Index v4 uses a very simple
compression scheme for pathnames, but is otherwise similar to index v3.
Signed-off-by: David Turner <dturner@twitter.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/index/version.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/index/version.c b/tests/index/version.c new file mode 100644 index 000000000..3fd240d3c --- /dev/null +++ b/tests/index/version.c @@ -0,0 +1,41 @@ +#include "clar_libgit2.h" +#include "index.h" + +static git_repository *g_repo = NULL; + +void test_index_version__can_write_v4(void) +{ + git_index *index; + const git_index_entry *entry; + + g_repo = cl_git_sandbox_init("filemodes"); + cl_git_pass(git_repository_index(&index, g_repo)); + + cl_assert(index->on_disk); + cl_assert(git_index_version(index) == 2); + + cl_assert(git_index_entrycount(index) == 6); + + cl_git_pass(git_index_set_version(index, 4)); + + cl_git_pass(git_index_write(index)); + git_index_free(index); + + cl_git_pass(git_repository_index(&index, g_repo)); + cl_assert(git_index_version(index) == 4); + + entry = git_index_get_bypath(index, "exec_off", 0); + cl_assert(entry); + entry = git_index_get_bypath(index, "exec_off2on_staged", 0); + cl_assert(entry); + entry = git_index_get_bypath(index, "exec_on", 0); + cl_assert(entry); + + git_index_free(index); +} + +void test_index_version__cleanup(void) +{ + cl_git_sandbox_cleanup(); + g_repo = NULL; +} |