Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
git2
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
git2
Commits
e526fbc7
Commit
e526fbc7
authored
7 years ago
by
Patrick Steinhardt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tests: add test suite for opening submodules
parent
924f5d12
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
71 additions
and
0 deletions
+71
-0
tests/submodule/open.c
+71
-0
No files found.
tests/submodule/open.c
0 → 100644
View file @
e526fbc7
#include "clar_libgit2.h"
#include "submodule_helpers.h"
#include "path.h"
static
git_repository
*
g_parent
;
static
git_repository
*
g_child
;
static
git_submodule
*
g_module
;
void
test_submodule_open__initialize
(
void
)
{
g_parent
=
setup_fixture_submod2
();
}
void
test_submodule_open__cleanup
(
void
)
{
git_submodule_free
(
g_module
);
git_repository_free
(
g_child
);
cl_git_sandbox_cleanup
();
g_parent
=
NULL
;
g_child
=
NULL
;
g_module
=
NULL
;
}
static
void
assert_sm_valid
(
git_repository
*
parent
,
git_repository
*
child
,
const
char
*
sm_name
)
{
git_buf
expected
=
GIT_BUF_INIT
,
actual
=
GIT_BUF_INIT
;
/* assert working directory */
cl_git_pass
(
git_buf_joinpath
(
&
expected
,
git_repository_workdir
(
parent
),
sm_name
));
cl_git_pass
(
git_path_prettify_dir
(
&
expected
,
expected
.
ptr
,
NULL
));
cl_git_pass
(
git_buf_sets
(
&
actual
,
git_repository_workdir
(
child
)));
cl_git_pass
(
git_path_prettify_dir
(
&
actual
,
actual
.
ptr
,
NULL
));
cl_assert_equal_s
(
expected
.
ptr
,
actual
.
ptr
);
git_buf_clear
(
&
expected
);
git_buf_clear
(
&
actual
);
/* assert common directory */
cl_git_pass
(
git_buf_joinpath
(
&
expected
,
git_repository_commondir
(
parent
),
"modules"
));
cl_git_pass
(
git_buf_joinpath
(
&
expected
,
expected
.
ptr
,
sm_name
));
cl_git_pass
(
git_path_prettify_dir
(
&
expected
,
expected
.
ptr
,
NULL
));
cl_git_pass
(
git_buf_sets
(
&
actual
,
git_repository_commondir
(
child
)));
cl_git_pass
(
git_path_prettify_dir
(
&
actual
,
actual
.
ptr
,
NULL
));
cl_assert_equal_s
(
expected
.
ptr
,
actual
.
ptr
);
/* assert git directory */
cl_git_pass
(
git_buf_sets
(
&
actual
,
git_repository_path
(
child
)));
cl_git_pass
(
git_path_prettify_dir
(
&
actual
,
actual
.
ptr
,
NULL
));
cl_assert_equal_s
(
expected
.
ptr
,
actual
.
ptr
);
git_buf_free
(
&
expected
);
git_buf_free
(
&
actual
);
}
void
test_submodule_open__opening_via_lookup_succeeds
(
void
)
{
cl_git_pass
(
git_submodule_lookup
(
&
g_module
,
g_parent
,
"sm_unchanged"
));
cl_git_pass
(
git_submodule_open
(
&
g_child
,
g_module
));
assert_sm_valid
(
g_parent
,
g_child
,
"sm_unchanged"
);
}
void
test_submodule_open__direct_open_succeeds
(
void
)
{
git_buf
path
=
GIT_BUF_INIT
;
cl_git_pass
(
git_buf_joinpath
(
&
path
,
git_repository_workdir
(
g_parent
),
"sm_unchanged"
));
cl_git_pass
(
git_repository_open
(
&
g_child
,
path
.
ptr
));
assert_sm_valid
(
g_parent
,
g_child
,
"sm_unchanged"
);
git_buf_free
(
&
path
);
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment