summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2015-05-11 11:57:05 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2015-06-22 17:02:56 +0200
commit0496330004e64680903131cbae2ac27610517cd1 (patch)
treea766ea78e5c659defb0db7217a4cb1a9975425b7 /tests
parentc4e3a3dbfa3abbe155d47d3040ecbb2c46242a48 (diff)
downloadlibgit2-0496330004e64680903131cbae2ac27610517cd1.tar.gz
submodule: test unsetting config options
In addition to mapping enums to strings in the configuration, we need to know to delete the configuration option when given the "none" or "no" option.
Diffstat (limited to 'tests')
-rw-r--r--tests/submodule/modify.c42
1 files changed, 29 insertions, 13 deletions
diff --git a/tests/submodule/modify.c b/tests/submodule/modify.c
index 81c34de46..f7a089e72 100644
--- a/tests/submodule/modify.c
+++ b/tests/submodule/modify.c
@@ -128,42 +128,58 @@ void test_submodule_modify__sync(void)
git_submodule_free(sm3);
}
-void test_submodule_modify__set_ignore(void)
+void assert_ignore_change(git_submodule_ignore_t ignore)
{
git_submodule *sm;
- cl_git_pass(git_submodule_set_ignore(g_repo, "sm_changed_head", GIT_SUBMODULE_IGNORE_UNTRACKED));
+ cl_git_pass(git_submodule_set_ignore(g_repo, "sm_changed_head", ignore));
cl_git_pass(git_submodule_lookup(&sm, g_repo, "sm_changed_head"));
- cl_assert_equal_i(GIT_SUBMODULE_IGNORE_UNTRACKED, git_submodule_ignore(sm));
+ cl_assert_equal_i(ignore, git_submodule_ignore(sm));
git_submodule_free(sm);
}
-void test_submodule_modify__set_update(void)
+void test_submodule_modify__set_ignore(void)
+{
+ assert_ignore_change(GIT_SUBMODULE_IGNORE_UNTRACKED);
+ assert_ignore_change(GIT_SUBMODULE_IGNORE_NONE);
+ assert_ignore_change(GIT_SUBMODULE_IGNORE_ALL);
+}
+
+void assert_update_change(git_submodule_update_t update)
{
git_submodule *sm;
- cl_git_pass(git_submodule_set_update(g_repo, "sm_changed_head", GIT_SUBMODULE_UPDATE_REBASE));
+ cl_git_pass(git_submodule_set_update(g_repo, "sm_changed_head", update));
cl_git_pass(git_submodule_lookup(&sm, g_repo, "sm_changed_head"));
- cl_assert_equal_i(GIT_SUBMODULE_UPDATE_REBASE, git_submodule_update_strategy(sm));
+ cl_assert_equal_i(update, git_submodule_update_strategy(sm));
git_submodule_free(sm);
}
-void test_submodule_modify__set_fetch_recurse_submodules(void)
+void test_submodule_modify__set_update(void)
+{
+ assert_update_change(GIT_SUBMODULE_UPDATE_REBASE);
+ assert_update_change(GIT_SUBMODULE_UPDATE_NONE);
+ assert_update_change(GIT_SUBMODULE_UPDATE_CHECKOUT);
+}
+
+void assert_recurse_change(git_submodule_recurse_t recurse)
{
git_submodule *sm;
- cl_git_pass(git_submodule_set_fetch_recurse_submodules(g_repo, "sm_changed_head", GIT_SUBMODULE_RECURSE_YES));
+ cl_git_pass(git_submodule_set_fetch_recurse_submodules(g_repo, "sm_changed_head", recurse));
cl_git_pass(git_submodule_lookup(&sm, g_repo, "sm_changed_head"));
- cl_assert_equal_i(GIT_SUBMODULE_RECURSE_YES, git_submodule_fetch_recurse_submodules(sm));
+ cl_assert_equal_i(recurse, git_submodule_fetch_recurse_submodules(sm));
git_submodule_free(sm);
+}
- git_submodule_set_fetch_recurse_submodules(g_repo, "sm_changed_head", GIT_SUBMODULE_RECURSE_ONDEMAND);
- cl_git_pass(git_submodule_lookup(&sm, g_repo, "sm_changed_head"));
- cl_assert_equal_i(GIT_SUBMODULE_RECURSE_ONDEMAND, git_submodule_fetch_recurse_submodules(sm));
- git_submodule_free(sm);
+void test_submodule_modify__set_fetch_recurse_submodules(void)
+{
+ assert_recurse_change(GIT_SUBMODULE_RECURSE_YES);
+ assert_recurse_change(GIT_SUBMODULE_RECURSE_NO);
+ assert_recurse_change(GIT_SUBMODULE_RECURSE_ONDEMAND);
}
void test_submodule_modify__set_branch(void)