summaryrefslogtreecommitdiff
path: root/tests/object
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2016-04-25 12:16:05 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2016-04-25 12:18:32 +0200
commiteb39284babba00c763911b93aa9219803612b965 (patch)
treef34949b3e3a53b513c8cffb57d971a83dcda78a4 /tests/object
parent512bd2c78f700186f92271e502b123ea27f75614 (diff)
downloadlibgit2-eb39284babba00c763911b93aa9219803612b965.tar.gz
tag: ignore extra header fieldscmn/silly-tags
While no extra header fields are defined for tags, git accepts them by ignoring them and continuing the search for the message. There are a few tags like this in the wild which git parses just fine, so we should do the same.
Diffstat (limited to 'tests/object')
-rw-r--r--tests/object/tag/read.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/object/tag/read.c b/tests/object/tag/read.c
index c9787a413..8f28afd54 100644
--- a/tests/object/tag/read.c
+++ b/tests/object/tag/read.c
@@ -140,3 +140,40 @@ void test_object_tag_read__without_tagger_nor_message(void)
git_tag_free(tag);
git_repository_free(repo);
}
+
+static const char *silly_tag = "object c054ccaefbf2da31c3b19178f9e3ef20a3867924\n\
+type commit\n\
+tag v1_0_1\n\
+tagger Jamis Buck <jamis@37signals.com> 1107717917\n\
+diff --git a/lib/sqlite3/version.rb b/lib/sqlite3/version.rb\n\
+index 0b3bf69..4ee8fc2 100644\n\
+--- a/lib/sqlite3/version.rb\n\
++++ b/lib/sqlite3/version.rb\n\
+@@ -36,7 +36,7 @@ module SQLite3\n\
+ \n\
+ MAJOR = 1\n\
+ MINOR = 0\n\
+- TINY = 0\n\
++ TINY = 1\n\
+ \n\
+ STRING = [ MAJOR, MINOR, TINY ].join( \".\" )\n\
+ \n\
+ -0600\n\
+\n\
+v1_0_1 release\n";
+
+void test_object_tag_read__extra_header_fields(void)
+{
+ git_tag *tag;
+ git_odb *odb;
+ git_oid id;
+
+ cl_git_pass(git_repository_odb__weakptr(&odb, g_repo));
+
+ cl_git_pass(git_odb_write(&id, odb, silly_tag, strlen(silly_tag), GIT_OBJ_TAG));
+ cl_git_pass(git_tag_lookup(&tag, g_repo, &id));
+
+ cl_assert_equal_s("v1_0_1 release\n", git_tag_message(tag));
+
+ git_tag_free(tag);
+}