]>
Commit | Line | Data |
---|---|---|
ac250c56 BS |
1 | #include "clar_libgit2.h" |
2 | ||
3 | #include "git2/revparse.h" | |
4 | ||
5 | static git_repository *g_repo; | |
6 | static git_object *g_obj; | |
7 | ||
8 | ||
9 | ||
10 | // Hepers | |
11 | static 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 | ||
19 | void test_refs_revparse__initialize(void) | |
20 | { | |
21 | g_repo = cl_git_sandbox_init("testrepo.git"); | |
22 | } | |
23 | ||
24 | void test_refs_revparse__cleanup(void) | |
25 | { | |
26 | cl_git_sandbox_cleanup(); | |
27 | g_obj = NULL; | |
28 | } | |
29 | ||
30 | ||
31 | void 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 | ||
40 | void 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 | ||
47 | void 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 | ||
58 | void 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 | ||
69 | void 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 |