summaryrefslogtreecommitdiffstats
path: root/tests/libgit2/object/shortid.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/libgit2/object/shortid.c')
-rw-r--r--tests/libgit2/object/shortid.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/libgit2/object/shortid.c b/tests/libgit2/object/shortid.c
new file mode 100644
index 0000000..69fceee
--- /dev/null
+++ b/tests/libgit2/object/shortid.c
@@ -0,0 +1,51 @@
+#include "clar_libgit2.h"
+
+git_repository *_repo;
+
+void test_object_shortid__initialize(void)
+{
+ cl_git_pass(git_repository_open(&_repo, cl_fixture("duplicate.git")));
+}
+
+void test_object_shortid__cleanup(void)
+{
+ git_repository_free(_repo);
+ _repo = NULL;
+}
+
+void test_object_shortid__select(void)
+{
+ git_oid full;
+ git_object *obj;
+ git_buf shorty = {0};
+
+ git_oid__fromstr(&full, "ce013625030ba8dba906f756967f9e9ca394464a", GIT_OID_SHA1);
+ cl_git_pass(git_object_lookup(&obj, _repo, &full, GIT_OBJECT_ANY));
+ cl_git_pass(git_object_short_id(&shorty, obj));
+ cl_assert_equal_i(7, shorty.size);
+ cl_assert_equal_s("ce01362", shorty.ptr);
+ git_object_free(obj);
+
+ git_oid__fromstr(&full, "038d718da6a1ebbc6a7780a96ed75a70cc2ad6e2", GIT_OID_SHA1);
+ cl_git_pass(git_object_lookup(&obj, _repo, &full, GIT_OBJECT_ANY));
+ cl_git_pass(git_object_short_id(&shorty, obj));
+ cl_assert_equal_i(7, shorty.size);
+ cl_assert_equal_s("038d718", shorty.ptr);
+ git_object_free(obj);
+
+ git_oid__fromstr(&full, "dea509d097ce692e167dfc6a48a7a280cc5e877e", GIT_OID_SHA1);
+ cl_git_pass(git_object_lookup(&obj, _repo, &full, GIT_OBJECT_ANY));
+ cl_git_pass(git_object_short_id(&shorty, obj));
+ cl_assert_equal_i(9, shorty.size);
+ cl_assert_equal_s("dea509d09", shorty.ptr);
+ git_object_free(obj);
+
+ git_oid__fromstr(&full, "dea509d0b3cb8ee0650f6ca210bc83f4678851ba", GIT_OID_SHA1);
+ cl_git_pass(git_object_lookup(&obj, _repo, &full, GIT_OBJECT_ANY));
+ cl_git_pass(git_object_short_id(&shorty, obj));
+ cl_assert_equal_i(9, shorty.size);
+ cl_assert_equal_s("dea509d0b", shorty.ptr);
+ git_object_free(obj);
+
+ git_buf_dispose(&shorty);
+}