#include "clar_libgit2.h" #include "config_helpers.h" #include "repository.h" #include "buffer.h" void assert_config_entry_existence( git_repository *repo, const char *name, bool is_supposed_to_exist) { git_config *config; git_config_entry *entry = NULL; int result; cl_git_pass(git_repository_config__weakptr(&config, repo)); result = git_config_get_entry(&entry, config, name); git_config_entry_free(entry); if (is_supposed_to_exist) cl_git_pass(result); else cl_assert_equal_i(GIT_ENOTFOUND, result); } void assert_config_entry_value( git_repository *repo, const char *name, const char *expected_value) { git_config *config; git_buf buf = GIT_BUF_INIT; cl_git_pass(git_repository_config__weakptr(&config, repo)); cl_git_pass(git_config_get_string_buf(&buf, config, name)); cl_assert_equal_s(expected_value, git_buf_cstr(&buf)); git_buf_free(&buf); } static int count_config_entries_cb( const git_config_entry *entry, void *payload) { int *how_many = (int *)payload; GIT_UNUSED(entry); (*how_many)++; return 0; } int count_config_entries_match(git_repository *repo, const char *pattern) { git_config *config; int how_many = 0; cl_git_pass(git_repository_config(&config, repo)); cl_assert_equal_i(0, git_config_foreach_match( config, pattern, count_config_entries_cb, &how_many)); git_config_free(config); return how_many; }