Skip blame libgit2 test if not in libgit2 repo One blame test replies on being run from within the libgit2 repository to leverage having a longer history to play with, but some bundled versions of libgit2 don't have the whole libgit2 history. This just skips that test if the repository can't be opened.
diff --git a/tests/blame/simple.c b/tests/blame/simple.c
index 11ff4cd..c0d9105 100644
--- a/tests/blame/simple.c
+++ b/tests/blame/simple.c
@@ -135,13 +135,22 @@ void test_blame_simple__trivial_libgit2(void)
git_blame_options opts = GIT_BLAME_OPTIONS_INIT;
git_object *obj;
- cl_git_pass(git_repository_open(&g_repo, cl_fixture("../..")));
+ /* If we can't open the libgit2 repo, just skip this test */
+ if (git_repository_open(&g_repo, cl_fixture("../..")) < 0) {
+ giterr_clear();
+ return;
+ }
/* This test can't work on a shallow clone */
if (git_repository_is_shallow(g_repo))
return;
- cl_git_pass(git_revparse_single(&obj, g_repo, "359fc2d"));
+ /* If somehow it is not a valid libgit2 repo, just move along */
+ if (git_revparse_single(&obj, g_repo, "359fc2d") < 0) {
+ giterr_clear();
+ return;
+ }
+
git_oid_cpy(&opts.newest_commit, git_object_id(obj));
git_object_free(obj);