summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2019-06-14 10:36:23 +0100
committerGitHub <noreply@github.com>2019-06-14 10:36:23 +0100
commit231ccbeb1df01715646c788b6316046dfecda4c7 (patch)
tree0d5f37dbcb5f64afb36bfc4bf3d09744a937c6ef /tests
parent1ab0523df7b6377f4162cc35c4ad71ef01bb9c15 (diff)
parent70fae43c6ce804f0669ba68b17fe9087e6bd58f5 (diff)
downloadlibgit2-231ccbeb1df01715646c788b6316046dfecda4c7.tar.gz
Merge pull request #5109 from pks-t/pks/test-mergeanalysis-variant
tests: merge::analysis: use test variants to avoid duplicated test suites
Diffstat (limited to 'tests')
-rw-r--r--tests/merge/analysis.c46
-rw-r--r--tests/merge/analysis.h16
-rw-r--r--tests/merge/trees/analysis.c87
-rw-r--r--tests/merge/workdir/analysis.c80
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();
-}