Skip to content

Commit

Permalink
tests: Cleanup & fix test suite
Browse files Browse the repository at this point in the history
  • Loading branch information
vmg committed Apr 3, 2012
1 parent 16eaa15 commit 471bb8b
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 200 deletions.
4 changes: 0 additions & 4 deletions tests-clar/commit/write.c
Expand Up @@ -77,10 +77,6 @@ void test_commit_write__from_memory(void)
cl_assert(committer1->when.offset == 60);

cl_assert(strcmp(git_commit_message(commit), commit_message) == 0);

#ifndef GIT_WIN32
cl_assert((loose_object_mode(REPOSITORY_FOLDER, (git_object *)commit) & 0777) == GIT_OBJECT_FILE_MODE);
#endif
}


Expand Down
1 change: 0 additions & 1 deletion tests-clar/index/tests.c
Expand Up @@ -30,7 +30,6 @@ static void copy_file(const char *src, const char *dst)
{
git_buf source_buf = GIT_BUF_INIT;
git_file dst_fd;
int error = GIT_ERROR;

cl_git_pass(git_futils_readbuffer(&source_buf, src));

Expand Down
68 changes: 4 additions & 64 deletions tests-clar/object/tag/write.c
Expand Up @@ -9,56 +9,6 @@ static const char *tagged_commit = "e90810b8df3e80c413d903f631643c716887138d";

static git_repository *g_repo;


// Helpers
#ifndef GIT_WIN32
#include "odb.h"

static void locate_loose_object(const char *repository_folder,
git_object *object,
char **out,
char **out_folder)
{
static const char *objects_folder = "objects/";

char *ptr, *full_path, *top_folder;
int path_length, objects_length;

assert(repository_folder && object);

objects_length = strlen(objects_folder);
path_length = strlen(repository_folder);
ptr = full_path = git__malloc(path_length + objects_length + GIT_OID_HEXSZ + 3);

strcpy(ptr, repository_folder);
strcpy(ptr + path_length, objects_folder);

ptr = top_folder = ptr + path_length + objects_length;
*ptr++ = '/';
git_oid_pathfmt(ptr, git_object_id(object));
ptr += GIT_OID_HEXSZ + 1;
*ptr = 0;

*out = full_path;

if (out_folder)
*out_folder = top_folder;
}

static void loose_object_mode(const char *repository_folder, git_object *object)
{
char *object_path;
struct stat st;

locate_loose_object(repository_folder, object, &object_path, NULL);
cl_git_pass(p_stat(object_path, &st));
free(object_path);
cl_assert((st.st_mode & 0777) == GIT_OBJECT_FILE_MODE);
}
#endif



// Fixture setup and teardown
void test_object_tag_write__initialize(void)
{
Expand All @@ -70,8 +20,6 @@ void test_object_tag_write__cleanup(void)
cl_git_sandbox_cleanup();
}



void test_object_tag_write__basic(void)
{
// write a tag to the repository and read it again
Expand All @@ -88,14 +36,10 @@ void test_object_tag_write__basic(void)
/* create signature */
cl_git_pass(git_signature_new(&tagger, tagger_name, tagger_email, 123456789, 60));

cl_git_pass(git_tag_create(
&tag_id, /* out id */
g_repo,
"the-tag",
target,
tagger,
tagger_message,
0));
cl_git_pass(
git_tag_create(&tag_id, g_repo,
"the-tag", target, tagger, tagger_message, 0)
);

git_object_free(target);
git_signature_free(tagger);
Expand All @@ -116,10 +60,6 @@ void test_object_tag_write__basic(void)
cl_git_pass(git_reference_lookup(&ref_tag, g_repo, "refs/tags/the-tag"));
cl_assert(git_oid_cmp(git_reference_oid(ref_tag), &tag_id) == 0);
cl_git_pass(git_reference_delete(ref_tag));
#ifndef GIT_WIN32
// TODO: Get this to work on Linux
//loose_object_mode("testrepo/", (git_object *)tag);
#endif

git_tag_free(tag);
}
Expand Down
88 changes: 0 additions & 88 deletions tests-clar/object/tree/write.c
Expand Up @@ -39,74 +39,6 @@ static int print_tree(git_repository *repo, const git_oid *tree_oid, int depth)
return GIT_SUCCESS;
}

static void locate_loose_object(const char *repository_folder,
git_object *object,
char **out,
char **out_folder)
{
static const char *objects_folder = "objects/";

char *ptr, *full_path, *top_folder;
int path_length, objects_length;

assert(repository_folder && object);

objects_length = strlen(objects_folder);
path_length = strlen(repository_folder);
ptr = full_path = git__malloc(path_length + objects_length + GIT_OID_HEXSZ + 3);

strcpy(ptr, repository_folder);
strcpy(ptr + path_length, objects_folder);

ptr = top_folder = ptr + path_length + objects_length;
*ptr++ = '/';
git_oid_pathfmt(ptr, git_object_id(object));
ptr += GIT_OID_HEXSZ + 1;
*ptr = 0;

*out = full_path;

if (out_folder)
*out_folder = top_folder;
}

static int loose_object_mode(const char *repository_folder, git_object *object)
{
char *object_path;
struct stat st;

locate_loose_object(repository_folder, object, &object_path, NULL);
if (p_stat(object_path, &st) < 0)
return 0;
free(object_path);

return st.st_mode;
}

static int loose_object_dir_mode(const char *repository_folder, git_object *object)
{
char *object_path;
size_t pos;
struct stat st;

locate_loose_object(repository_folder, object, &object_path, NULL);

pos = strlen(object_path);
while (pos--) {
if (object_path[pos] == '/') {
object_path[pos] = 0;
break;
}
}

if (p_stat(object_path, &st) < 0)
return 0;
free(object_path);

return st.st_mode;
}


// Fixture setup and teardown
void test_object_tree_write__initialize(void)
{
Expand All @@ -118,21 +50,6 @@ void test_object_tree_write__cleanup(void)
cl_git_sandbox_cleanup();
}


#if 0
void xtest_object_tree_write__print(void)
{
// write a tree from an index
git_index *index;
git_oid tree_oid;

cl_git_pass(git_repository_index(&index, g_repo));

cl_git_pass(git_tree_create_fromindex(&tree_oid, index));
cl_git_pass(print_tree(g_repo, &tree_oid, 0));
}
#endif

void test_object_tree_write__from_memory(void)
{
// write a tree from a memory
Expand Down Expand Up @@ -193,10 +110,5 @@ void test_object_tree_write__subtree(void)
// check data is correct
cl_git_pass(git_tree_lookup(&tree, g_repo, &id_hiearar));
cl_assert(2 == git_tree_entrycount(tree));
#ifndef GIT_WIN32
// TODO: fix these
//cl_assert((loose_object_dir_mode("testrepo", (git_object *)tree) & 0777) == GIT_OBJECT_DIR_MODE);
//cl_assert((loose_object_mode("testrespo", (git_object *)tree) & 0777) == GIT_OBJECT_FILE_MODE);
#endif
git_tree_free(tree);
}
16 changes: 6 additions & 10 deletions tests-clar/refs/create.c
Expand Up @@ -9,21 +9,17 @@ static const char *current_head_target = "refs/heads/master";

static git_repository *g_repo;



void test_ref_create__initialize(void)
void test_refs_create__initialize(void)
{
g_repo = cl_git_sandbox_init("testrepo");
}

void test_ref_create__cleanup(void)
void test_refs_create__cleanup(void)
{
cl_git_sandbox_cleanup();
}



void test_ref_create__symbolic(void)
void test_refs_create__symbolic(void)
{
// create a new symbolic reference
git_reference *new_reference, *looked_up_ref, *resolved_ref;
Expand Down Expand Up @@ -71,7 +67,7 @@ void test_ref_create__symbolic(void)
git_reference_free(resolved_ref);
}

void test_ref_create__deep_symbolic(void)
void test_refs_create__deep_symbolic(void)
{
// create a deep symbolic reference
git_reference *new_reference, *looked_up_ref, *resolved_ref;
Expand All @@ -94,7 +90,7 @@ void test_ref_create__deep_symbolic(void)
git_buf_free(&ref_path);
}

void test_ref_create__oid(void)
void test_refs_create__oid(void)
{
// create a new OID reference
git_reference *new_reference, *looked_up_ref;
Expand Down Expand Up @@ -135,7 +131,7 @@ void test_ref_create__oid(void)
git_buf_free(&ref_path);
}

void test_ref_create__oid_unknown(void)
void test_refs_create__oid_unknown(void)
{
// Can not create a new OID reference which targets at an unknown id
git_reference *new_reference, *looked_up_ref;
Expand Down
16 changes: 6 additions & 10 deletions tests-clar/refs/overwrite.c
Expand Up @@ -11,21 +11,17 @@ static const char *ref_test_name = "refs/heads/test";

static git_repository *g_repo;



void test_ref_overwrite__initialize(void)
void test_refs_overwrite__initialize(void)
{
g_repo = cl_git_sandbox_init("testrepo");
}

void test_ref_overwrite__cleanup(void)
void test_refs_overwrite__cleanup(void)
{
cl_git_sandbox_cleanup();
}



void test_ref_overwrite__symbolic(void)
void test_refs_overwrite__symbolic(void)
{
// Overwrite an existing symbolic reference
git_reference *ref, *branch_ref;
Expand Down Expand Up @@ -55,7 +51,7 @@ void test_ref_overwrite__symbolic(void)
git_reference_free(branch_ref);
}

void test_ref_overwrite__object_id(void)
void test_refs_overwrite__object_id(void)
{
// Overwrite an existing object id reference
git_reference *ref;
Expand Down Expand Up @@ -87,7 +83,7 @@ void test_ref_overwrite__object_id(void)
git_reference_free(ref);
}

void test_ref_overwrite__object_id_with_symbolic(void)
void test_refs_overwrite__object_id_with_symbolic(void)
{
// Overwrite an existing object id reference with a symbolic one
git_reference *ref;
Expand All @@ -112,7 +108,7 @@ void test_ref_overwrite__object_id_with_symbolic(void)
git_reference_free(ref);
}

void test_ref_overwrite__symbolic_with_object_id(void)
void test_refs_overwrite__symbolic_with_object_id(void)
{
// Overwrite an existing symbolic reference with an object id one
git_reference *ref;
Expand Down
12 changes: 4 additions & 8 deletions tests-clar/refs/pack.c
Expand Up @@ -8,21 +8,17 @@ static const char *loose_tag_ref_name = "refs/tags/e90810b";

static git_repository *g_repo;



void test_ref_pack__initialize(void)
void test_refs_pack__initialize(void)
{
g_repo = cl_git_sandbox_init("testrepo");
}

void test_ref_pack__cleanup(void)
void test_refs_pack__cleanup(void)
{
cl_git_sandbox_cleanup();
}



void test_ref_pack__empty(void)
void test_refs_pack__empty(void)
{
// create a packfile for an empty folder
git_buf temp_path = GIT_BUF_INIT;
Expand All @@ -34,7 +30,7 @@ void test_ref_pack__empty(void)
cl_git_pass(git_reference_packall(g_repo));
}

void test_ref_pack__loose(void)
void test_refs_pack__loose(void)
{
// create a packfile from all the loose rn a repo
git_reference *reference;
Expand Down

0 comments on commit 471bb8b

Please sign in to comment.