Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicent Martí <vicent@github.com>2013-08-28 20:38:14 +0400
committerVicent Martí <vicent@github.com>2013-08-28 20:38:14 +0400
commitdbecec37a74a04a350e7c2ef6aee49d5d833d768 (patch)
tree5d911cac3bd602a3eab4c095ef8e96b84db332b3 /tests-clar/refs
parent1ef05e3f0ea8fa8db2167307101c8c43d1c1784b (diff)
parentb2d3efcbce2d12cfa9736ab4f9283c91600a8a75 (diff)
Merge pull request #1805 from libgit2/threading-packed-load
Thread safety for the refdb_fs
Diffstat (limited to 'tests-clar/refs')
-rw-r--r--tests-clar/refs/pack.c30
1 files changed, 28 insertions, 2 deletions
diff --git a/tests-clar/refs/pack.c b/tests-clar/refs/pack.c
index d8d5cc6d0..849a052aa 100644
--- a/tests-clar/refs/pack.c
+++ b/tests-clar/refs/pack.c
@@ -32,7 +32,7 @@ static void packall(void)
void test_refs_pack__empty(void)
{
- // create a packfile for an empty folder
+ /* create a packfile for an empty folder */
git_buf temp_path = GIT_BUF_INIT;
cl_git_pass(git_buf_join_n(&temp_path, '/', 3, git_repository_path(g_repo), GIT_REFS_HEADS_DIR, "empty_dir"));
@@ -44,7 +44,7 @@ void test_refs_pack__empty(void)
void test_refs_pack__loose(void)
{
- // create a packfile from all the loose rn a repo
+ /* create a packfile from all the loose refs in a repo */
git_reference *reference;
git_buf temp_path = GIT_BUF_INIT;
@@ -77,3 +77,29 @@ void test_refs_pack__loose(void)
git_reference_free(reference);
git_buf_free(&temp_path);
}
+
+void test_refs_pack__symbolic(void)
+{
+ /* create a packfile from loose refs skipping symbolic refs */
+ int i;
+ git_oid head;
+ git_reference *ref;
+ char name[128];
+
+ cl_git_pass(git_reference_name_to_id(&head, g_repo, "HEAD"));
+
+ /* make a bunch of references */
+
+ for (i = 0; i < 100; ++i) {
+ snprintf(name, sizeof(name), "refs/heads/symbolic-%03d", i);
+ cl_git_pass(git_reference_symbolic_create(
+ &ref, g_repo, name, "refs/heads/master", 0));
+ git_reference_free(ref);
+
+ snprintf(name, sizeof(name), "refs/heads/direct-%03d", i);
+ cl_git_pass(git_reference_create(&ref, g_repo, name, &head, 0));
+ git_reference_free(ref);
+ }
+
+ packall();
+}