mirror of
https://git.proxmox.com/git/libgit2
synced 2025-07-09 11:15:57 +00:00
80 lines
1.9 KiB
C
80 lines
1.9 KiB
C
#include "clar_libgit2.h"
|
|
|
|
#include "path.h"
|
|
#include "git2/clone.h"
|
|
#include "git2/cred_helpers.h"
|
|
#include "remote.h"
|
|
#include "futils.h"
|
|
#include "refs.h"
|
|
|
|
/*
|
|
* Certificate one is in the `certs` folder; certificate two is in the
|
|
* `self-signed.pem` file.
|
|
*/
|
|
#define CUSTOM_CERT_ONE_URL "https://test.libgit2.org:1443/anonymous/test.git"
|
|
#define CUSTOM_CERT_ONE_PATH "certs"
|
|
|
|
#define CUSTOM_CERT_TWO_URL "https://test.libgit2.org:2443/anonymous/test.git"
|
|
#define CUSTOM_CERT_TWO_FILE "self-signed.pem"
|
|
|
|
#if (GIT_OPENSSL || GIT_MBEDTLS)
|
|
static git_repository *g_repo;
|
|
static int initialized = false;
|
|
#endif
|
|
|
|
void test_online_customcert__initialize(void)
|
|
{
|
|
#if (GIT_OPENSSL || GIT_MBEDTLS)
|
|
g_repo = NULL;
|
|
|
|
if (!initialized) {
|
|
git_buf path = GIT_BUF_INIT, file = GIT_BUF_INIT;
|
|
char cwd[GIT_PATH_MAX];
|
|
|
|
cl_fixture_sandbox(CUSTOM_CERT_ONE_PATH);
|
|
cl_fixture_sandbox(CUSTOM_CERT_TWO_FILE);
|
|
|
|
cl_must_pass(p_getcwd(cwd, GIT_PATH_MAX));
|
|
cl_git_pass(git_buf_joinpath(&path, cwd, CUSTOM_CERT_ONE_PATH));
|
|
cl_git_pass(git_buf_joinpath(&file, cwd, CUSTOM_CERT_TWO_FILE));
|
|
|
|
cl_git_pass(git_libgit2_opts(GIT_OPT_SET_SSL_CERT_LOCATIONS,
|
|
file.ptr, path.ptr));
|
|
initialized = true;
|
|
|
|
git_buf_dispose(&file);
|
|
git_buf_dispose(&path);
|
|
}
|
|
#endif
|
|
}
|
|
|
|
void test_online_customcert__cleanup(void)
|
|
{
|
|
#if (GIT_OPENSSL || GIT_MBEDTLS)
|
|
if (g_repo) {
|
|
git_repository_free(g_repo);
|
|
g_repo = NULL;
|
|
}
|
|
|
|
cl_fixture_cleanup("./cloned");
|
|
cl_fixture_cleanup(CUSTOM_CERT_ONE_PATH);
|
|
cl_fixture_cleanup(CUSTOM_CERT_TWO_FILE);
|
|
#endif
|
|
}
|
|
|
|
void test_online_customcert__file(void)
|
|
{
|
|
#if (GIT_OPENSSL || GIT_MBEDTLS)
|
|
cl_git_pass(git_clone(&g_repo, CUSTOM_CERT_ONE_URL, "./cloned", NULL));
|
|
cl_assert(git_path_exists("./cloned/master.txt"));
|
|
#endif
|
|
}
|
|
|
|
void test_online_customcert__path(void)
|
|
{
|
|
#if (GIT_OPENSSL || GIT_MBEDTLS)
|
|
cl_git_pass(git_clone(&g_repo, CUSTOM_CERT_TWO_URL, "./cloned", NULL));
|
|
cl_assert(git_path_exists("./cloned/master.txt"));
|
|
#endif
|
|
}
|