]> git.proxmox.com Git - libgit2.git/blobdiff - tests/refs/read.c
New upstream version 1.4.3+dfsg.1
[libgit2.git] / tests / refs / read.c
index 35cf17e9e20facbed3a61d92a71d21a097415a8e..a622c770b806dcf57d73addd1618772de71b4b4f 100644 (file)
@@ -28,24 +28,24 @@ void test_refs_read__cleanup(void)
 
 void test_refs_read__loose_tag(void)
 {
-   // lookup a loose tag reference
+       /* lookup a loose tag reference */
        git_reference *reference;
        git_object *object;
-       git_buf ref_name_from_tag_name = GIT_BUF_INIT;
+       git_str ref_name_from_tag_name = GIT_STR_INIT;
 
        cl_git_pass(git_reference_lookup(&reference, g_repo, loose_tag_ref_name));
-       cl_assert(git_reference_type(reference) & GIT_REF_OID);
+       cl_assert(git_reference_type(reference) & GIT_REFERENCE_DIRECT);
        cl_assert(reference_is_packed(reference) == 0);
        cl_assert_equal_s(reference->name, loose_tag_ref_name);
 
-       cl_git_pass(git_object_lookup(&object, g_repo, git_reference_target(reference), GIT_OBJ_ANY));
+       cl_git_pass(git_object_lookup(&object, g_repo, git_reference_target(reference), GIT_OBJECT_ANY));
        cl_assert(object != NULL);
-       cl_assert(git_object_type(object) == GIT_OBJ_TAG);
+       cl_assert(git_object_type(object) == GIT_OBJECT_TAG);
 
        /* Ensure the name of the tag matches the name of the reference */
-       cl_git_pass(git_buf_joinpath(&ref_name_from_tag_name, GIT_REFS_TAGS_DIR, git_tag_name((git_tag *)object)));
+       cl_git_pass(git_str_joinpath(&ref_name_from_tag_name, GIT_REFS_TAGS_DIR, git_tag_name((git_tag *)object)));
        cl_assert_equal_s(ref_name_from_tag_name.ptr, loose_tag_ref_name);
-       git_buf_free(&ref_name_from_tag_name);
+       git_str_dispose(&ref_name_from_tag_name);
 
        git_object_free(object);
 
@@ -54,7 +54,7 @@ void test_refs_read__loose_tag(void)
 
 void test_refs_read__nonexisting_tag(void)
 {
-   // lookup a loose tag reference that doesn't exist
+       /* lookup a loose tag reference that doesn't exist */
        git_reference *reference;
 
        cl_git_fail(git_reference_lookup(&reference, g_repo, non_existing_tag_ref_name));
@@ -65,25 +65,25 @@ void test_refs_read__nonexisting_tag(void)
 
 void test_refs_read__symbolic(void)
 {
-   // lookup a symbolic reference
+       /* lookup a symbolic reference */
        git_reference *reference, *resolved_ref;
        git_object *object;
        git_oid id;
 
        cl_git_pass(git_reference_lookup(&reference, g_repo, GIT_HEAD_FILE));
-       cl_assert(git_reference_type(reference) & GIT_REF_SYMBOLIC);
+       cl_assert(git_reference_type(reference) & GIT_REFERENCE_SYMBOLIC);
        cl_assert(reference_is_packed(reference) == 0);
        cl_assert_equal_s(reference->name, GIT_HEAD_FILE);
 
        cl_git_pass(git_reference_resolve(&resolved_ref, reference));
-       cl_assert(git_reference_type(resolved_ref) == GIT_REF_OID);
+       cl_assert(git_reference_type(resolved_ref) == GIT_REFERENCE_DIRECT);
 
-       cl_git_pass(git_object_lookup(&object, g_repo, git_reference_target(resolved_ref), GIT_OBJ_ANY));
+       cl_git_pass(git_object_lookup(&object, g_repo, git_reference_target(resolved_ref), GIT_OBJECT_ANY));
        cl_assert(object != NULL);
-       cl_assert(git_object_type(object) == GIT_OBJ_COMMIT);
+       cl_assert(git_object_type(object) == GIT_OBJECT_COMMIT);
 
        git_oid_fromstr(&id, current_master_tip);
-       cl_assert(git_oid_cmp(&id, git_object_id(object)) == 0);
+       cl_assert_equal_oid(&id, git_object_id(object));
 
        git_object_free(object);
 
@@ -93,25 +93,25 @@ void test_refs_read__symbolic(void)
 
 void test_refs_read__nested_symbolic(void)
 {
-   // lookup a nested symbolic reference
+       /* lookup a nested symbolic reference */
        git_reference *reference, *resolved_ref;
        git_object *object;
        git_oid id;
 
        cl_git_pass(git_reference_lookup(&reference, g_repo, head_tracker_sym_ref_name));
-       cl_assert(git_reference_type(reference) & GIT_REF_SYMBOLIC);
+       cl_assert(git_reference_type(reference) & GIT_REFERENCE_SYMBOLIC);
        cl_assert(reference_is_packed(reference) == 0);
        cl_assert_equal_s(reference->name, head_tracker_sym_ref_name);
 
        cl_git_pass(git_reference_resolve(&resolved_ref, reference));
-       cl_assert(git_reference_type(resolved_ref) == GIT_REF_OID);
+       cl_assert(git_reference_type(resolved_ref) == GIT_REFERENCE_DIRECT);
 
-       cl_git_pass(git_object_lookup(&object, g_repo, git_reference_target(resolved_ref), GIT_OBJ_ANY));
+       cl_git_pass(git_object_lookup(&object, g_repo, git_reference_target(resolved_ref), GIT_OBJECT_ANY));
        cl_assert(object != NULL);
-       cl_assert(git_object_type(object) == GIT_OBJ_COMMIT);
+       cl_assert(git_object_type(object) == GIT_OBJECT_COMMIT);
 
        git_oid_fromstr(&id, current_master_tip);
-       cl_assert(git_oid_cmp(&id, git_object_id(object)) == 0);
+       cl_assert_equal_oid(&id, git_object_id(object));
 
        git_object_free(object);
 
@@ -121,7 +121,7 @@ void test_refs_read__nested_symbolic(void)
 
 void test_refs_read__head_then_master(void)
 {
-   // lookup the HEAD and resolve the master branch
+       /* lookup the HEAD and resolve the master branch */
        git_reference *reference, *resolved_ref, *comp_base_ref;
 
        cl_git_pass(git_reference_lookup(&reference, g_repo, head_tracker_sym_ref_name));
@@ -130,13 +130,13 @@ void test_refs_read__head_then_master(void)
 
        cl_git_pass(git_reference_lookup(&reference, g_repo, GIT_HEAD_FILE));
        cl_git_pass(git_reference_resolve(&resolved_ref, reference));
-       cl_git_pass(git_oid_cmp(git_reference_target(comp_base_ref), git_reference_target(resolved_ref)));
+       cl_assert_equal_oid(git_reference_target(comp_base_ref), git_reference_target(resolved_ref));
        git_reference_free(reference);
        git_reference_free(resolved_ref);
 
        cl_git_pass(git_reference_lookup(&reference, g_repo, current_head_target));
        cl_git_pass(git_reference_resolve(&resolved_ref, reference));
-       cl_git_pass(git_oid_cmp(git_reference_target(comp_base_ref), git_reference_target(resolved_ref)));
+       cl_assert_equal_oid(git_reference_target(comp_base_ref), git_reference_target(resolved_ref));
        git_reference_free(reference);
        git_reference_free(resolved_ref);
 
@@ -145,14 +145,14 @@ void test_refs_read__head_then_master(void)
 
 void test_refs_read__master_then_head(void)
 {
-   // lookup the master branch and then the HEAD
+       /* lookup the master branch and then the HEAD */
        git_reference *reference, *master_ref, *resolved_ref;
 
        cl_git_pass(git_reference_lookup(&master_ref, g_repo, current_head_target));
        cl_git_pass(git_reference_lookup(&reference, g_repo, GIT_HEAD_FILE));
 
        cl_git_pass(git_reference_resolve(&resolved_ref, reference));
-       cl_git_pass(git_oid_cmp(git_reference_target(master_ref), git_reference_target(resolved_ref)));
+       cl_assert_equal_oid(git_reference_target(master_ref), git_reference_target(resolved_ref));
 
        git_reference_free(reference);
        git_reference_free(resolved_ref);
@@ -162,18 +162,18 @@ void test_refs_read__master_then_head(void)
 
 void test_refs_read__packed(void)
 {
-   // lookup a packed reference
+       /* lookup a packed reference */
        git_reference *reference;
        git_object *object;
 
        cl_git_pass(git_reference_lookup(&reference, g_repo, packed_head_name));
-       cl_assert(git_reference_type(reference) & GIT_REF_OID);
+       cl_assert(git_reference_type(reference) & GIT_REFERENCE_DIRECT);
        cl_assert(reference_is_packed(reference));
        cl_assert_equal_s(reference->name, packed_head_name);
 
-       cl_git_pass(git_object_lookup(&object, g_repo, git_reference_target(reference), GIT_OBJ_ANY));
+       cl_git_pass(git_object_lookup(&object, g_repo, git_reference_target(reference), GIT_OBJECT_ANY));
        cl_assert(object != NULL);
-       cl_assert(git_object_type(object) == GIT_OBJ_COMMIT);
+       cl_assert(git_object_type(object) == GIT_OBJECT_COMMIT);
 
        git_object_free(object);
 
@@ -182,13 +182,13 @@ void test_refs_read__packed(void)
 
 void test_refs_read__loose_first(void)
 {
-   // assure that a loose reference is looked up before a packed reference
+       /* assure that a loose reference is looked up before a packed reference */
        git_reference *reference;
 
        cl_git_pass(git_reference_lookup(&reference, g_repo, packed_head_name));
        git_reference_free(reference);
        cl_git_pass(git_reference_lookup(&reference, g_repo, packed_test_head_name));
-       cl_assert(git_reference_type(reference) & GIT_REF_OID);
+       cl_assert(git_reference_type(reference) & GIT_REFERENCE_DIRECT);
        cl_assert(reference_is_packed(reference) == 0);
        cl_assert_equal_s(reference->name, packed_test_head_name);
 
@@ -201,7 +201,7 @@ void test_refs_read__chomped(void)
 
        cl_git_pass(git_reference_lookup(&test, g_repo, "refs/heads/test"));
        cl_git_pass(git_reference_lookup(&chomped, g_repo, "refs/heads/chomped"));
-       cl_git_pass(git_oid_cmp(git_reference_target(test), git_reference_target(chomped)));
+       cl_assert_equal_oid(git_reference_target(test), git_reference_target(chomped));
 
        git_reference_free(test);
        git_reference_free(chomped);
@@ -213,7 +213,7 @@ void test_refs_read__trailing(void)
 
        cl_git_pass(git_reference_lookup(&test, g_repo, "refs/heads/test"));
        cl_git_pass(git_reference_lookup(&trailing, g_repo, "refs/heads/trailing"));
-       cl_git_pass(git_oid_cmp(git_reference_target(test), git_reference_target(trailing)));
+       cl_assert_equal_oid(git_reference_target(test), git_reference_target(trailing));
        git_reference_free(trailing);
        cl_git_pass(git_reference_lookup(&trailing, g_repo, "FETCH_HEAD"));
 
@@ -271,6 +271,21 @@ void test_refs_read__can_determine_if_a_reference_is_a_tag(void)
        assert_is_tag("refs/remotes/test/master", false);
 }
 
+static void assert_is_note(const char *name, bool expected_noteness)
+{
+       git_reference *reference;
+       cl_git_pass(git_reference_lookup(&reference, g_repo, name));
+       cl_assert_equal_i(expected_noteness, git_reference_is_note(reference));
+       git_reference_free(reference);
+}
+
+void test_refs_read__can_determine_if_a_reference_is_a_note(void)
+{
+       assert_is_note("refs/notes/fanout", true);
+       assert_is_note("refs/heads/packed", false);
+       assert_is_note("refs/remotes/test/master", false);
+}
+
 void test_refs_read__invalid_name_returns_EINVALIDSPEC(void)
 {
        git_reference *reference;