Commit d1a0900442a235d8389d968a70b196a1b0f1ab7b

Russell Belfer 2014-04-01T21:58:48

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);