summaryrefslogtreecommitdiff
path: root/tests/revwalk/basic.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/revwalk/basic.c')
-rw-r--r--tests/revwalk/basic.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/revwalk/basic.c b/tests/revwalk/basic.c
index 7e50452c9..d8236ce72 100644
--- a/tests/revwalk/basic.c
+++ b/tests/revwalk/basic.c
@@ -437,3 +437,38 @@ void test_revwalk_basic__mimic_git_rev_list(void)
cl_git_fail_with(git_revwalk_next(&oid, _walk), GIT_ITEROVER);
}
+
+void test_revwalk_basic__big_timestamp(void)
+{
+ git_reference *head;
+ git_commit *tip;
+ git_signature *sig;
+ git_tree *tree;
+ git_oid id;
+ int error;
+
+ revwalk_basic_setup_walk("testrepo.git");
+
+ cl_git_pass(git_repository_head(&head, _repo));
+ cl_git_pass(git_reference_peel((git_object **) &tip, head, GIT_OBJ_COMMIT));
+
+ /* Commit with a far-ahead timestamp, we should be able to parse it in the revwalk */
+ cl_git_pass(git_signature_new(&sig, "Joe", "joe@example.com", 2399662595, 0));
+ cl_git_pass(git_commit_tree(&tree, tip));
+
+ cl_git_pass(git_commit_create(&id, _repo, "HEAD", sig, sig, NULL, "some message", tree, 1, &tip));
+
+ cl_git_pass(git_revwalk_push_head(_walk));
+
+ while ((error = git_revwalk_next(&id, _walk)) == 0) {
+ /* nothing */
+ }
+
+ cl_assert_equal_i(GIT_ITEROVER, error);
+
+ git_tree_free(tree);
+ git_commit_free(tip);
+ git_reference_free(head);
+ git_signature_free(sig);
+
+}