mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-09 22:39:38 +00:00
object: make git_object_lookup() return GIT_ENOTFOUND when searching for an existing object by specifying an incorrect type
This commit is contained in:
parent
9fb70f378a
commit
cb0ce16bbe
@ -150,8 +150,8 @@ int git_object_lookup_prefix(
|
||||
|
||||
if (type != GIT_OBJ_ANY && type != odb_obj->raw.type) {
|
||||
git_odb_object_free(odb_obj);
|
||||
giterr_set(GITERR_INVALID, "The given type does not match the type on the ODB");
|
||||
return -1;
|
||||
giterr_set(GITERR_ODB, "The given type does not match the type on the ODB");
|
||||
return GIT_ENOTFOUND;
|
||||
}
|
||||
|
||||
type = odb_obj->raw.type;
|
||||
|
35
tests-clar/object/lookup.c
Normal file
35
tests-clar/object/lookup.c
Normal file
@ -0,0 +1,35 @@
|
||||
#include "clar_libgit2.h"
|
||||
|
||||
#include "repository.h"
|
||||
|
||||
static git_repository *g_repo;
|
||||
|
||||
void test_object_lookup__initialize(void)
|
||||
{
|
||||
cl_git_pass(git_repository_open(&g_repo, cl_fixture("testrepo.git")));
|
||||
}
|
||||
|
||||
void test_object_lookup__cleanup(void)
|
||||
{
|
||||
git_repository_free(g_repo);
|
||||
}
|
||||
|
||||
void test_object_lookup__looking_up_an_exisiting_object_by_its_wrong_type_returns_ENOTFOUND(void)
|
||||
{
|
||||
const char *commit = "e90810b8df3e80c413d903f631643c716887138d";
|
||||
git_oid oid;
|
||||
git_object *object;
|
||||
|
||||
cl_git_pass(git_oid_fromstr(&oid, commit));
|
||||
cl_assert_equal_i(GIT_ENOTFOUND, git_object_lookup(&object, g_repo, &oid, GIT_OBJ_TAG));
|
||||
}
|
||||
|
||||
void test_object_lookup__looking_up_a_non_exisiting_object_returns_ENOTFOUND(void)
|
||||
{
|
||||
const char *unknown = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef";
|
||||
git_oid oid;
|
||||
git_object *object;
|
||||
|
||||
cl_git_pass(git_oid_fromstr(&oid, unknown));
|
||||
cl_assert_equal_i(GIT_ENOTFOUND, git_object_lookup(&object, g_repo, &oid, GIT_OBJ_ANY));
|
||||
}
|
Loading…
Reference in New Issue
Block a user