]> git.proxmox.com Git - libgit2.git/blame - tests-clar/refs/revparse.c
First stab at implementation of rev-parse.
[libgit2.git] / tests-clar / refs / revparse.c
CommitLineData
ac250c56
BS
1#include "clar_libgit2.h"
2
3#include "git2/revparse.h"
4
5static git_repository *g_repo;
6static git_object *g_obj;
7
8
9
10// Hepers
11static void oid_str_cmp(const git_oid *oid, const char *str)
12{
13 git_oid oid2;
14 cl_git_pass(git_oid_fromstr(&oid2, str));
15 cl_assert(0 == git_oid_cmp(oid, &oid2));
16}
17
18
19void test_refs_revparse__initialize(void)
20{
21 g_repo = cl_git_sandbox_init("testrepo.git");
22}
23
24void test_refs_revparse__cleanup(void)
25{
26 cl_git_sandbox_cleanup();
27 g_obj = NULL;
28}
29
30
31void test_refs_revparse__shas(void)
32{
33 // Full SHA should return a valid object
34 cl_git_pass(git_revparse_single(&g_obj, g_repo, "c47800c7266a2be04c571c04d5a6614691ea99bd"));
35 oid_str_cmp(git_object_id(g_obj), "c47800c7266a2be04c571c04d5a6614691ea99bd");
36 cl_git_pass(git_revparse_single(&g_obj, g_repo, "c47800c"));
37 oid_str_cmp(git_object_id(g_obj), "c47800c7266a2be04c571c04d5a6614691ea99bd");
38}
39
40void test_refs_revparse__head(void)
41{
42 // Named head should return a valid object
43 cl_git_pass(git_revparse_single(&g_obj, g_repo, "HEAD"));
44 oid_str_cmp(git_object_id(g_obj), "a65fedf39aefe402d3bb6e24df4d4f5fe4547750");
45}
46
47void test_refs_revparse__full_refs(void)
48{
49 // Fully-qualified refs should return valid objects
50 cl_git_pass(git_revparse_single(&g_obj, g_repo, "refs/heads/master"));
51 oid_str_cmp(git_object_id(g_obj), "a65fedf39aefe402d3bb6e24df4d4f5fe4547750");
52 cl_git_pass(git_revparse_single(&g_obj, g_repo, "refs/heads/test"));
53 oid_str_cmp(git_object_id(g_obj), "e90810b8df3e80c413d903f631643c716887138d");
54 cl_git_pass(git_revparse_single(&g_obj, g_repo, "refs/tags/test"));
55 oid_str_cmp(git_object_id(g_obj), "b25fa35b38051e4ae45d4222e795f9df2e43f1d1");
56}
57
58void test_refs_revparse__partial_refs(void)
59{
60 // Partially-qualified refs should return valid objects
61 cl_git_pass(git_revparse_single(&g_obj, g_repo, "point_to_blob"));
62 oid_str_cmp(git_object_id(g_obj), "1385f264afb75a56a5bec74243be9b367ba4ca08");
63 cl_git_pass(git_revparse_single(&g_obj, g_repo, "packed-test"));
64 oid_str_cmp(git_object_id(g_obj), "4a202b346bb0fb0db7eff3cffeb3c70babbd2045");
65 cl_git_pass(git_revparse_single(&g_obj, g_repo, "br2"));
66 oid_str_cmp(git_object_id(g_obj), "a4a7dce85cf63874e984719f4fdd239f5145052f");
67}
68
69void test_refs_revparse__describe_output(void)
70{
71 cl_git_pass(git_revparse_single(&g_obj, g_repo, "blah-7-gc47800c"));
72 oid_str_cmp(git_object_id(g_obj), "c47800c7266a2be04c571c04d5a6614691ea99bd");
73}
74