diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2019-11-06 06:04:55 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-06 06:04:55 -0500 |
commit | 01ea911b9e14a38f94a0018c13e5f308719aced6 (patch) | |
tree | 21ac8c90e47861aae567f7b2f1377ddd0a8ad766 | |
parent | a3d8a43755dae7292857a0afa847601d2a85a1af (diff) | |
parent | 146e5bf7b1740c0881057d1ca0233ca0852451ab (diff) | |
download | libgit2-01ea911b9e14a38f94a0018c13e5f308719aced6.tar.gz |
Merge pull request #5299 from pks-t/pks/config-mem-snapshots
config_mem: implement support for snapshots
-rw-r--r-- | src/config_mem.c | 10 | ||||
-rw-r--r-- | tests/config/snapshot.c | 17 |
2 files changed, 18 insertions, 9 deletions
diff --git a/src/config_mem.c b/src/config_mem.c index e4006db32..5b573a995 100644 --- a/src/config_mem.c +++ b/src/config_mem.c @@ -170,14 +170,6 @@ static int config_memory_unlock(git_config_backend *backend, int success) return config_error_readonly(); } -static int config_memory_snapshot(git_config_backend **out, git_config_backend *backend) -{ - GIT_UNUSED(out); - GIT_UNUSED(backend); - git_error_set(GIT_ERROR_CONFIG, "this backend does not support snapshots"); - return -1; -} - static void config_memory_free(git_config_backend *_backend) { config_memory_backend *backend = (config_memory_backend *)_backend; @@ -219,7 +211,7 @@ int git_config_backend_from_string(git_config_backend **out, const char *cfg, si backend->parent.iterator = config_memory_iterator; backend->parent.lock = config_memory_lock; backend->parent.unlock = config_memory_unlock; - backend->parent.snapshot = config_memory_snapshot; + backend->parent.snapshot = git_config_backend_snapshot; backend->parent.free = config_memory_free; *out = (git_config_backend *)backend; diff --git a/tests/config/snapshot.c b/tests/config/snapshot.c index 3b90cfe49..5cc08a721 100644 --- a/tests/config/snapshot.c +++ b/tests/config/snapshot.c @@ -1,5 +1,7 @@ #include "clar_libgit2.h" +#include "config_backend.h" + static git_config *cfg; static git_config *snapshot; @@ -120,3 +122,18 @@ void test_config_snapshot__snapshot(void) cl_git_pass(p_unlink("configfile")); } + +void test_config_snapshot__snapshot_from_in_memony(void) +{ + const char *configuration = "[section]\nkey = 1\n"; + git_config_backend *backend; + int i; + + cl_git_pass(git_config_new(&cfg)); + cl_git_pass(git_config_backend_from_string(&backend, configuration, strlen(configuration))); + cl_git_pass(git_config_add_backend(cfg, backend, 0, NULL, 0)); + + cl_git_pass(git_config_snapshot(&snapshot, cfg)); + cl_git_pass(git_config_get_int32(&i, snapshot, "section.key")); + cl_assert_equal_i(i, 1); +} |