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
bea1b024
Commit
bea1b024
authored
4 years ago
by
punkymaniac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add test for fetch proxy memleak
parent
d07a0dc1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
0 deletions
+40
-0
tests/online/fetch.c
+40
-0
No files found.
tests/online/fetch.c
View file @
bea1b024
...
...
@@ -3,9 +3,19 @@
static
git_repository
*
_repo
;
static
int
counter
;
static
char
*
_remote_proxy_scheme
=
NULL
;
static
char
*
_remote_proxy_host
=
NULL
;
static
char
*
_remote_proxy_user
=
NULL
;
static
char
*
_remote_proxy_pass
=
NULL
;
void
test_online_fetch__initialize
(
void
)
{
cl_git_pass
(
git_repository_init
(
&
_repo
,
"./fetch"
,
0
));
_remote_proxy_scheme
=
cl_getenv
(
"GITTEST_REMOTE_PROXY_SCHEME"
);
_remote_proxy_host
=
cl_getenv
(
"GITTEST_REMOTE_PROXY_HOST"
);
_remote_proxy_user
=
cl_getenv
(
"GITTEST_REMOTE_PROXY_USER"
);
_remote_proxy_pass
=
cl_getenv
(
"GITTEST_REMOTE_PROXY_PASS"
);
}
void
test_online_fetch__cleanup
(
void
)
...
...
@@ -14,6 +24,11 @@ void test_online_fetch__cleanup(void)
_repo
=
NULL
;
cl_fixture_cleanup
(
"./fetch"
);
git__free
(
_remote_proxy_scheme
);
git__free
(
_remote_proxy_host
);
git__free
(
_remote_proxy_user
);
git__free
(
_remote_proxy_pass
);
}
static
int
update_tips
(
const
char
*
refname
,
const
git_oid
*
a
,
const
git_oid
*
b
,
void
*
data
)
...
...
@@ -207,3 +222,28 @@ void test_online_fetch__twice(void)
git_remote_free
(
remote
);
}
void
test_online_fetch__proxy
(
void
)
{
git_remote
*
remote
;
git_buf
url
=
GIT_BUF_INIT
;
git_fetch_options
fetch_opts
;
if
(
!
_remote_proxy_host
||
!
_remote_proxy_user
||
!
_remote_proxy_pass
)
cl_skip
();
cl_git_pass
(
git_buf_printf
(
&
url
,
"%s://%s:%s@%s/"
,
_remote_proxy_scheme
?
_remote_proxy_scheme
:
"http"
,
_remote_proxy_user
,
_remote_proxy_pass
,
_remote_proxy_host
));
cl_git_pass
(
git_fetch_options_init
(
&
fetch_opts
,
GIT_FETCH_OPTIONS_VERSION
));
fetch_opts
.
proxy_opts
.
type
=
GIT_PROXY_SPECIFIED
;
fetch_opts
.
proxy_opts
.
url
=
url
.
ptr
;
cl_git_pass
(
git_remote_create
(
&
remote
,
_repo
,
"test"
,
"https://github.com/libgit2/TestGitRepository.git"
));
cl_git_pass
(
git_remote_connect
(
remote
,
GIT_DIRECTION_FETCH
,
NULL
,
&
fetch_opts
.
proxy_opts
,
NULL
));
cl_git_pass
(
git_remote_fetch
(
remote
,
NULL
,
&
fetch_opts
,
NULL
));
git_remote_free
(
remote
);
git_buf_dispose
(
&
url
);
}
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