|
Packit Service |
20376f |
#include "clar_libgit2.h"
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
void test_core_init__returns_count(void)
|
|
Packit Service |
20376f |
{
|
|
Packit Service |
20376f |
/* libgit2_clar initializes us first, so we have an existing
|
|
Packit Service |
20376f |
* initialization.
|
|
Packit Service |
20376f |
*/
|
|
Packit Service |
20376f |
cl_assert_equal_i(2, git_libgit2_init());
|
|
Packit Service |
20376f |
cl_assert_equal_i(3, git_libgit2_init());
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
cl_assert_equal_i(2, git_libgit2_shutdown());
|
|
Packit Service |
20376f |
cl_assert_equal_i(1, git_libgit2_shutdown());
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
void test_core_init__reinit_succeeds(void)
|
|
Packit Service |
20376f |
{
|
|
Packit Service |
20376f |
cl_assert_equal_i(0, git_libgit2_shutdown());
|
|
Packit Service |
20376f |
cl_assert_equal_i(1, git_libgit2_init());
|
|
Packit Service |
20376f |
cl_sandbox_set_search_path_defaults();
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
#ifdef GIT_THREADS
|
|
Packit Service |
20376f |
static void *reinit(void *unused)
|
|
Packit Service |
20376f |
{
|
|
Packit Service |
20376f |
unsigned i;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
for (i = 0; i < 20; i++) {
|
|
Packit Service |
20376f |
cl_assert(git_libgit2_init() > 0);
|
|
Packit Service |
20376f |
cl_assert(git_libgit2_shutdown() >= 0);
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
return unused;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
#endif
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
void test_core_init__concurrent_init_succeeds(void)
|
|
Packit Service |
20376f |
{
|
|
Packit Service |
20376f |
#ifdef GIT_THREADS
|
|
Packit Service |
20376f |
git_thread threads[10];
|
|
Packit Service |
20376f |
unsigned i;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
cl_assert_equal_i(2, git_libgit2_init());
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
for (i = 0; i < ARRAY_SIZE(threads); i++)
|
|
Packit Service |
20376f |
git_thread_create(&threads[i], reinit, NULL);
|
|
Packit Service |
20376f |
for (i = 0; i < ARRAY_SIZE(threads); i++)
|
|
Packit Service |
20376f |
git_thread_join(&threads[i], NULL);
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
cl_assert_equal_i(1, git_libgit2_shutdown());
|
|
Packit Service |
20376f |
cl_sandbox_set_search_path_defaults();
|
|
Packit Service |
20376f |
#else
|
|
Packit Service |
20376f |
cl_skip();
|
|
Packit Service |
20376f |
#endif
|
|
Packit Service |
20376f |
}
|