diff options
Diffstat (limited to 'tests/t04-commit.c')
-rw-r--r-- | tests/t04-commit.c | 75 |
1 files changed, 19 insertions, 56 deletions
diff --git a/tests/t04-commit.c b/tests/t04-commit.c index 855cf9859..1140d3319 100644 --- a/tests/t04-commit.c +++ b/tests/t04-commit.c @@ -407,39 +407,42 @@ This is a commit created in memory and it will be written back to disk\n" static const char *tree_oid = "1810dff58d8a660512d4832e740f692884338ccd"; + BEGIN_TEST(write0, "write a new commit object from memory to disk") git_repository *repo; - git_commit *commit, *parent; - git_tree *tree; - git_oid id; + git_commit *commit; + git_oid tree_id, parent_id, commit_id; const git_signature *author, *committer; /* char hex_oid[41]; */ must_pass(git_repository_open(&repo, REPOSITORY_FOLDER)); - /* Create commit in memory */ - must_pass(git_commit_new(&commit, repo)); - - /* Add new parent */ - git_oid_mkstr(&id, commit_ids[4]); - must_pass(git_commit_lookup(&parent, repo, &id)); - git_commit_add_parent(commit, parent); + git_oid_mkstr(&tree_id, tree_oid); + git_oid_mkstr(&parent_id, commit_ids[4]); - /* Set other attributes */ + /* create signatures */ committer = git_signature_new(COMMITTER_NAME, COMMITTER_EMAIL, 123456789, 60); must_be_true(committer != NULL); author = git_signature_new(COMMITTER_NAME, COMMITTER_EMAIL, 987654321, 90); must_be_true(author != NULL); - git_commit_set_committer(commit, committer); - git_commit_set_author(commit, author); - git_commit_set_message(commit, COMMIT_MESSAGE); + must_pass(git_commit_create_v( + &commit_id, /* out id */ + repo, + NULL, /* do not update the HEAD */ + author, + committer, + COMMIT_MESSAGE, + &tree_id, + 1, &parent_id)); git_signature_free((git_signature *)committer); git_signature_free((git_signature *)author); + must_pass(git_commit_lookup(&commit, repo, &commit_id)); + /* Check attributes were set correctly */ author = git_commit_author(commit); must_be_true(author != NULL); @@ -457,47 +460,6 @@ BEGIN_TEST(write0, "write a new commit object from memory to disk") must_be_true(strcmp(git_commit_message(commit), COMMIT_MESSAGE) == 0); - /* add new tree */ - git_oid_mkstr(&id, tree_oid); - must_pass(git_tree_lookup(&tree, repo, &id)); - - git_commit_set_tree(commit, tree); - - /* Test it has no OID */ - must_be_true(git_commit_id(commit) == NULL); - - /* Write to disk */ - must_pass(git_object_write((git_object *)commit)); - - must_pass(remove_loose_object(REPOSITORY_FOLDER, (git_object *)commit)); - - git_repository_free(repo); -END_TEST - -BEGIN_TEST(write1, "load a commit object, modify it and write it back") - git_repository *repo; - git_oid id; - git_commit *commit, *parent; - const char *message; - /* char hex_oid[41]; */ - - must_pass(git_repository_open(&repo, REPOSITORY_FOLDER)); - - git_oid_mkstr(&id, commit_ids[0]); - - must_pass(git_commit_lookup(&commit, repo, &id)); - - message = git_commit_message(commit); - - git_commit_set_message(commit, "This is a new test message. Cool!\n"); - - git_oid_mkstr(&id, commit_ids[4]); - must_pass(git_commit_lookup(&parent, repo, &id)); - - git_commit_add_parent(commit, parent); - - must_pass(git_object_write((git_object *)commit)); - must_pass(remove_loose_object(REPOSITORY_FOLDER, (git_object *)commit)); git_repository_free(repo); @@ -509,6 +471,7 @@ BEGIN_SUITE(commit) ADD_TEST(parse1); ADD_TEST(parse2); ADD_TEST(details0); + ADD_TEST(write0); - ADD_TEST(write1); + //ADD_TEST(write1); END_SUITE |