diff options
author | Patrick Steinhardt <ps@pks.im> | 2019-06-13 11:57:16 +0200 |
---|---|---|
committer | Patrick Steinhardt <ps@pks.im> | 2019-06-13 11:59:50 +0200 |
commit | 70fae43c6ce804f0669ba68b17fe9087e6bd58f5 (patch) | |
tree | 82cd400d1ff5a4c1c63862d22a48f21ec8080fdb /tests/merge | |
parent | 0c1029be9828cf3a6876efc9e2b1d315b7754d77 (diff) | |
download | libgit2-70fae43c6ce804f0669ba68b17fe9087e6bd58f5.tar.gz |
tests: merge::analysis: use variants to deduplicate test suites
Since commit 394951ad4 (tests: allow for simple data-driven
tests, 2019-06-07), we have the ability to run a given test suite
with multiple variants. Use this new feature to deduplicate the
test suites for merge::{trees,workdir}::analysis into a single
test suite.
Diffstat (limited to 'tests/merge')
-rw-r--r-- | tests/merge/analysis.c | 46 | ||||
-rw-r--r-- | tests/merge/analysis.h | 16 | ||||
-rw-r--r-- | tests/merge/trees/analysis.c | 87 | ||||
-rw-r--r-- | tests/merge/workdir/analysis.c | 80 |
4 files changed, 27 insertions, 202 deletions
diff --git a/tests/merge/analysis.c b/tests/merge/analysis.c index b3c7b0326..1432a7d11 100644 --- a/tests/merge/analysis.c +++ b/tests/merge/analysis.c @@ -13,8 +13,7 @@ You probably want to make changes to both files. #include "refs.h" #include "posix.h" -static git_repository *repo; -static git_index *repo_index; +#define TEST_REPO_PATH "merge-resolve" #define UPTODATE_BRANCH "master" #define PREVIOUS_BRANCH "previous" @@ -25,18 +24,27 @@ static git_index *repo_index; #define NOFASTFORWARD_BRANCH "branch" #define NOFASTFORWARD_ID "7cb63eed597130ba4abb87b3e544b85021905520" +static git_repository *sandbox; +static git_repository *repo; + +void test_merge_analysis__initialize_with_bare_repository(void) +{ + sandbox = cl_git_sandbox_init(TEST_REPO_PATH); + cl_git_pass(git_repository_open_ext(&repo, git_repository_path(sandbox), + GIT_REPOSITORY_OPEN_BARE, NULL)); +} -/* Fixture setup and teardown */ -void testimpl_merge_analysis__initialize(git_repository *t_repo, git_index *t_repo_index) +void test_merge_analysis__initialize_with_nonbare_repository(void) { - repo = t_repo; - repo_index = t_repo_index; + sandbox = cl_git_sandbox_init(TEST_REPO_PATH); + cl_git_pass(git_repository_open_ext(&repo, git_repository_workdir(sandbox), + 0, NULL)); } -void testimpl_merge_analysis__cleanup(void) +void test_merge_analysis__cleanup(void) { - repo_index = NULL; - repo = NULL; + git_repository_free(repo); + cl_git_sandbox_cleanup(); } static void analysis_from_branch( @@ -72,7 +80,7 @@ static void analysis_from_branch( git_reference_free(their_ref); } -void testimpl_merge_analysis__fastforward(void) +void test_merge_analysis__fastforward(void) { git_merge_analysis_t merge_analysis; git_merge_preference_t merge_pref; @@ -81,7 +89,7 @@ void testimpl_merge_analysis__fastforward(void) cl_assert_equal_i(GIT_MERGE_ANALYSIS_NORMAL|GIT_MERGE_ANALYSIS_FASTFORWARD, merge_analysis); } -void testimpl_merge_analysis__no_fastforward(void) +void test_merge_analysis__no_fastforward(void) { git_merge_analysis_t merge_analysis; git_merge_preference_t merge_pref; @@ -90,7 +98,7 @@ void testimpl_merge_analysis__no_fastforward(void) cl_assert_equal_i(GIT_MERGE_ANALYSIS_NORMAL, merge_analysis); } -void testimpl_merge_analysis__uptodate(void) +void test_merge_analysis__uptodate(void) { git_merge_analysis_t merge_analysis; git_merge_preference_t merge_pref; @@ -99,7 +107,7 @@ void testimpl_merge_analysis__uptodate(void) cl_assert_equal_i(GIT_MERGE_ANALYSIS_UP_TO_DATE, merge_analysis); } -void testimpl_merge_analysis__uptodate_merging_prev_commit(void) +void test_merge_analysis__uptodate_merging_prev_commit(void) { git_merge_analysis_t merge_analysis; git_merge_preference_t merge_pref; @@ -108,14 +116,14 @@ void testimpl_merge_analysis__uptodate_merging_prev_commit(void) cl_assert_equal_i(GIT_MERGE_ANALYSIS_UP_TO_DATE, merge_analysis); } -void testimpl_merge_analysis__unborn(void) +void test_merge_analysis__unborn(void) { git_merge_analysis_t merge_analysis; git_merge_preference_t merge_pref; git_buf master = GIT_BUF_INIT; cl_git_pass(git_buf_joinpath(&master, git_repository_path(repo), "refs/heads/master")); - p_unlink(git_buf_cstr(&master)); + cl_must_pass(p_unlink(git_buf_cstr(&master))); analysis_from_branch(&merge_analysis, &merge_pref, NULL, NOFASTFORWARD_BRANCH); cl_assert_equal_i(GIT_MERGE_ANALYSIS_FASTFORWARD|GIT_MERGE_ANALYSIS_UNBORN, merge_analysis); @@ -123,7 +131,7 @@ void testimpl_merge_analysis__unborn(void) git_buf_dispose(&master); } -void testimpl_merge_analysis__fastforward_with_config_noff(void) +void test_merge_analysis__fastforward_with_config_noff(void) { git_config *config; git_merge_analysis_t merge_analysis; @@ -140,7 +148,7 @@ void testimpl_merge_analysis__fastforward_with_config_noff(void) git_config_free(config); } -void testimpl_merge_analysis__no_fastforward_with_config_ffonly(void) +void test_merge_analysis__no_fastforward_with_config_ffonly(void) { git_config *config; git_merge_analysis_t merge_analysis; @@ -157,7 +165,7 @@ void testimpl_merge_analysis__no_fastforward_with_config_ffonly(void) git_config_free(config); } -void testimpl_merge_analysis__between_uptodate_refs(void) +void test_merge_analysis__between_uptodate_refs(void) { git_merge_analysis_t merge_analysis; git_merge_preference_t merge_pref; @@ -166,7 +174,7 @@ void testimpl_merge_analysis__between_uptodate_refs(void) cl_assert_equal_i(GIT_MERGE_ANALYSIS_UP_TO_DATE, merge_analysis); } -void testimpl_merge_analysis__between_noff_refs(void) +void test_merge_analysis__between_noff_refs(void) { git_merge_analysis_t merge_analysis; git_merge_preference_t merge_pref; diff --git a/tests/merge/analysis.h b/tests/merge/analysis.h deleted file mode 100644 index f97e73ea7..000000000 --- a/tests/merge/analysis.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef INCLUDE_cl_merge_analysis_h__ -#define INCLUDE_cl_merge_analysis_h__ - -void testimpl_merge_analysis__initialize(git_repository *t_repo, git_index *t_repo_index); -void testimpl_merge_analysis__cleanup(void); -void testimpl_merge_analysis__fastforward(void); -void testimpl_merge_analysis__no_fastforward(void); -void testimpl_merge_analysis__uptodate(void); -void testimpl_merge_analysis__uptodate_merging_prev_commit(void); -void testimpl_merge_analysis__unborn(void); -void testimpl_merge_analysis__fastforward_with_config_noff(void); -void testimpl_merge_analysis__no_fastforward_with_config_ffonly(void); -void testimpl_merge_analysis__between_uptodate_refs(void); -void testimpl_merge_analysis__between_noff_refs(void); - -#endif diff --git a/tests/merge/trees/analysis.c b/tests/merge/trees/analysis.c deleted file mode 100644 index ce61085e3..000000000 --- a/tests/merge/trees/analysis.c +++ /dev/null @@ -1,87 +0,0 @@ -/* -NOTE: this is essentially duplicated from tests/merge/workdir/analysis.c -You probably want to make changes to both files. -*/ - -#include "clar_libgit2.h" -#include "git2/repository.h" -#include "../analysis.h" - -static git_repository *repo; -static git_repository *bare_repo; -static git_index *repo_index; - -#define TEST_REPO_PATH "merge-resolve" -#define TEST_INDEX_PATH TEST_REPO_PATH "/index" - - -/* Fixture setup and teardown */ -void test_merge_trees_analysis__initialize(void) -{ - repo = cl_git_sandbox_init(TEST_REPO_PATH); - - cl_git_pass(git_repository_open_ext(&bare_repo, TEST_REPO_PATH "/.git", GIT_REPOSITORY_OPEN_BARE, NULL)); - - git_repository_index(&repo_index, bare_repo); - - testimpl_merge_analysis__initialize(bare_repo, repo_index); -} - -void test_merge_trees_analysis__cleanup(void) -{ - testimpl_merge_analysis__cleanup(); - - git_index_free(repo_index); - repo_index = NULL; - - git_repository_free(bare_repo); - bare_repo = NULL; - - cl_git_sandbox_cleanup(); - repo = NULL; -} - -void test_merge_trees_analysis__fastforward(void) -{ - testimpl_merge_analysis__fastforward(); -} - -void test_merge_trees_analysis__no_fastforward(void) -{ - testimpl_merge_analysis__no_fastforward(); -} - -void test_merge_trees_analysis__uptodate(void) -{ - testimpl_merge_analysis__uptodate(); -} - -void test_merge_trees_analysis__uptodate_merging_prev_commit(void) -{ - testimpl_merge_analysis__uptodate_merging_prev_commit(); -} - -void test_merge_trees_analysis__unborn(void) -{ - testimpl_merge_analysis__unborn(); -} - -void test_merge_trees_analysis__fastforward_with_config_noff(void) -{ - testimpl_merge_analysis__fastforward_with_config_noff(); -} - -void test_merge_trees_analysis__no_fastforward_with_config_ffonly(void) -{ - testimpl_merge_analysis__no_fastforward_with_config_ffonly(); -} - -void test_merge_trees_analysis__between_uptodate_refs(void) -{ - testimpl_merge_analysis__between_uptodate_refs(); -} - -void test_merge_trees_analysis__between_noff_refs(void) -{ - testimpl_merge_analysis__between_noff_refs(); -} diff --git a/tests/merge/workdir/analysis.c b/tests/merge/workdir/analysis.c deleted file mode 100644 index 08158f8bd..000000000 --- a/tests/merge/workdir/analysis.c +++ /dev/null @@ -1,80 +0,0 @@ -/* -NOTE: this is essentially duplicated with tests/merge/trees/analysis.c -You probably want to make changes to both files. -*/ - -#include "clar_libgit2.h" -#include "git2/repository.h" -#include "../analysis.h" - -static git_repository *repo; -static git_index *repo_index; - -#define TEST_REPO_PATH "merge-resolve" -#define TEST_INDEX_PATH TEST_REPO_PATH "/.git/index" - - -/* Fixture setup and teardown */ -void test_merge_workdir_analysis__initialize(void) -{ - repo = cl_git_sandbox_init(TEST_REPO_PATH); - git_repository_index(&repo_index, repo); - - testimpl_merge_analysis__initialize(repo, repo_index); -} - -void test_merge_workdir_analysis__cleanup(void) -{ - testimpl_merge_analysis__cleanup(); - - git_index_free(repo_index); - repo_index = NULL; - - cl_git_sandbox_cleanup(); - repo = NULL; -} - -void test_merge_workdir_analysis__fastforward(void) -{ - testimpl_merge_analysis__fastforward(); -} - -void test_merge_workdir_analysis__no_fastforward(void) -{ - testimpl_merge_analysis__no_fastforward(); -} - -void test_merge_workdir_analysis__uptodate(void) -{ - testimpl_merge_analysis__uptodate(); -} - -void test_merge_workdir_analysis__uptodate_merging_prev_commit(void) -{ - testimpl_merge_analysis__uptodate_merging_prev_commit(); -} - -void test_merge_workdir_analysis__unborn(void) -{ - testimpl_merge_analysis__unborn(); -} - -void test_merge_workdir_analysis__fastforward_with_config_noff(void) -{ - testimpl_merge_analysis__fastforward_with_config_noff(); -} - -void test_merge_workdir_analysis__no_fastforward_with_config_ffonly(void) -{ - testimpl_merge_analysis__no_fastforward_with_config_ffonly(); -} - -void test_merge_workdir_analysis__between_uptodate_refs(void) -{ - testimpl_merge_analysis__between_uptodate_refs(); -} - -void test_merge_workdir_analysis__between_noff_refs(void) -{ - testimpl_merge_analysis__between_noff_refs(); -} |