summaryrefslogtreecommitdiff
path: root/tests/t04-commit.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/t04-commit.c')
-rw-r--r--tests/t04-commit.c75
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