| #include "clar_libgit2.h" |
| #include "repository.h" |
| #include "git2/sys/repository.h" |
| |
| static git_repository *_repo; |
| |
| void test_odb_backend_nobackend__initialize(void) |
| { |
| git_config *config; |
| git_odb *odb; |
| git_refdb *refdb; |
| |
| cl_git_pass(git_repository_new(&_repo)); |
| cl_git_pass(git_config_new(&config)); |
| cl_git_pass(git_odb_new(&odb)); |
| cl_git_pass(git_refdb_new(&refdb, _repo)); |
| |
| git_repository_set_config(_repo, config); |
| git_repository_set_odb(_repo, odb); |
| git_repository_set_refdb(_repo, refdb); |
| |
| /* The set increases the refcount and we don't want them anymore */ |
| git_config_free(config); |
| git_odb_free(odb); |
| git_refdb_free(refdb); |
| } |
| |
| void test_odb_backend_nobackend__cleanup(void) |
| { |
| git_repository_free(_repo); |
| } |
| |
| void test_odb_backend_nobackend__write_fails_gracefully(void) |
| { |
| git_oid id; |
| git_odb *odb; |
| const git_error *err; |
| |
| git_repository_odb(&odb, _repo); |
| cl_git_fail(git_odb_write(&id, odb, "Hello world!\n", 13, GIT_OBJ_BLOB)); |
| |
| err = giterr_last(); |
| cl_assert_equal_s(err->message, "cannot write object - unsupported in the loaded odb backends"); |
| |
| git_odb_free(odb); |
| } |