@@ -298,3 +298,103 @@ void test_commit_write__can_validate_objects(void)
298
298
git_oid_fromstr (& parent_id , tree_id_str );
299
299
cl_git_fail (create_commit_from_ids (& commit_id , & tree_id , & parent_id ));
300
300
}
301
+
302
+ void test_commit_write__attach_singleline_signature (void )
303
+ {
304
+ const char * sig = "magic word: pretty please" ;
305
+
306
+ const char * data = "tree 6b79e22d69bf46e289df0345a14ca059dfc9bdf6\n\
307
+ parent 34734e478d6cf50c27c9d69026d93974d052c454\n\
308
+ author Ben Burkert <[email protected] > 1358451456 -0800\n\
309
+ committer Ben Burkert <[email protected] > 1358451456 -0800\n\
310
+ \n\
311
+ a simple commit which works\n" ;
312
+
313
+ const char * complete = "tree 6b79e22d69bf46e289df0345a14ca059dfc9bdf6\n\
314
+ parent 34734e478d6cf50c27c9d69026d93974d052c454\n\
315
+ author Ben Burkert <[email protected] > 1358451456 -0800\n\
316
+ committer Ben Burkert <[email protected] > 1358451456 -0800\n\
317
+ magicsig magic word: pretty please\n\
318
+ \n\
319
+ a simple commit which works\n" ;
320
+
321
+ git_oid id ;
322
+ git_odb * odb ;
323
+ git_odb_object * obj ;
324
+
325
+ cl_git_pass (git_commit_create_with_signature (& id , g_repo , data , sig , "magicsig" ));
326
+
327
+ cl_git_pass (git_repository_odb (& odb , g_repo ));
328
+ cl_git_pass (git_odb_read (& obj , odb , & id ));
329
+ cl_assert_equal_s (complete , git_odb_object_data (obj ));
330
+
331
+ git_odb_object_free (obj );
332
+ git_odb_free (odb );
333
+ }
334
+
335
+ void test_commit_write__attach_multiline_signature (void )
336
+ {
337
+ const char * gpgsig = "-----BEGIN PGP SIGNATURE-----\n\
338
+ Version: GnuPG v1.4.12 (Darwin)\n\
339
+ \n\
340
+ iQIcBAABAgAGBQJQ+FMIAAoJEH+LfPdZDSs1e3EQAJMjhqjWF+WkGLHju7pTw2al\n\
341
+ o6IoMAhv0Z/LHlWhzBd9e7JeCnanRt12bAU7yvYp9+Z+z+dbwqLwDoFp8LVuigl8\n\
342
+ JGLcnwiUW3rSvhjdCp9irdb4+bhKUnKUzSdsR2CK4/hC0N2i/HOvMYX+BRsvqweq\n\
343
+ AsAkA6dAWh+gAfedrBUkCTGhlNYoetjdakWqlGL1TiKAefEZrtA1TpPkGn92vbLq\n\
344
+ SphFRUY9hVn1ZBWrT3hEpvAIcZag3rTOiRVT1X1flj8B2vGCEr3RrcwOIZikpdaW\n\
345
+ who/X3xh/DGbI2RbuxmmJpxxP/8dsVchRJJzBwG+yhwU/iN3MlV2c5D69tls/Dok\n\
346
+ 6VbyU4lm/ae0y3yR83D9dUlkycOnmmlBAHKIZ9qUts9X7mWJf0+yy2QxJVpjaTGG\n\
347
+ cmnQKKPeNIhGJk2ENnnnzjEve7L7YJQF6itbx5VCOcsGh3Ocb3YR7DMdWjt7f8pu\n\
348
+ c6j+q1rP7EpE2afUN/geSlp5i3x8aXZPDj67jImbVCE/Q1X9voCtyzGJH7MXR0N9\n\
349
+ ZpRF8yzveRfMH8bwAJjSOGAFF5XkcR/RNY95o+J+QcgBLdX48h+ZdNmUf6jqlu3J\n\
350
+ 7KmTXXQcOVpN6dD3CmRFsbjq+x6RHwa8u1iGn+oIkX908r97ckfB/kHKH7ZdXIJc\n\
351
+ cpxtDQQMGYFpXK/71stq\n\
352
+ =ozeK\n\
353
+ -----END PGP SIGNATURE-----" ;
354
+
355
+ const char * data = "tree 6b79e22d69bf46e289df0345a14ca059dfc9bdf6\n\
356
+ parent 34734e478d6cf50c27c9d69026d93974d052c454\n\
357
+ author Ben Burkert <[email protected] > 1358451456 -0800\n\
358
+ committer Ben Burkert <[email protected] > 1358451456 -0800\n\
359
+ \n\
360
+ a simple commit which works\n" ;
361
+
362
+ const char * complete = "tree 6b79e22d69bf46e289df0345a14ca059dfc9bdf6\n\
363
+ parent 34734e478d6cf50c27c9d69026d93974d052c454\n\
364
+ author Ben Burkert <[email protected] > 1358451456 -0800\n\
365
+ committer Ben Burkert <[email protected] > 1358451456 -0800\n\
366
+ gpgsig -----BEGIN PGP SIGNATURE-----\n\
367
+ Version: GnuPG v1.4.12 (Darwin)\n\
368
+ \n\
369
+ iQIcBAABAgAGBQJQ+FMIAAoJEH+LfPdZDSs1e3EQAJMjhqjWF+WkGLHju7pTw2al\n\
370
+ o6IoMAhv0Z/LHlWhzBd9e7JeCnanRt12bAU7yvYp9+Z+z+dbwqLwDoFp8LVuigl8\n\
371
+ JGLcnwiUW3rSvhjdCp9irdb4+bhKUnKUzSdsR2CK4/hC0N2i/HOvMYX+BRsvqweq\n\
372
+ AsAkA6dAWh+gAfedrBUkCTGhlNYoetjdakWqlGL1TiKAefEZrtA1TpPkGn92vbLq\n\
373
+ SphFRUY9hVn1ZBWrT3hEpvAIcZag3rTOiRVT1X1flj8B2vGCEr3RrcwOIZikpdaW\n\
374
+ who/X3xh/DGbI2RbuxmmJpxxP/8dsVchRJJzBwG+yhwU/iN3MlV2c5D69tls/Dok\n\
375
+ 6VbyU4lm/ae0y3yR83D9dUlkycOnmmlBAHKIZ9qUts9X7mWJf0+yy2QxJVpjaTGG\n\
376
+ cmnQKKPeNIhGJk2ENnnnzjEve7L7YJQF6itbx5VCOcsGh3Ocb3YR7DMdWjt7f8pu\n\
377
+ c6j+q1rP7EpE2afUN/geSlp5i3x8aXZPDj67jImbVCE/Q1X9voCtyzGJH7MXR0N9\n\
378
+ ZpRF8yzveRfMH8bwAJjSOGAFF5XkcR/RNY95o+J+QcgBLdX48h+ZdNmUf6jqlu3J\n\
379
+ 7KmTXXQcOVpN6dD3CmRFsbjq+x6RHwa8u1iGn+oIkX908r97ckfB/kHKH7ZdXIJc\n\
380
+ cpxtDQQMGYFpXK/71stq\n\
381
+ =ozeK\n\
382
+ -----END PGP SIGNATURE-----\n\
383
+ \n\
384
+ a simple commit which works\n" ;
385
+
386
+ git_oid one , two ;
387
+ git_odb * odb ;
388
+ git_odb_object * obj ;
389
+
390
+ cl_git_pass (git_commit_create_with_signature (& one , g_repo , data , gpgsig , "gpgsig" ));
391
+ cl_git_pass (git_commit_create_with_signature (& two , g_repo , data , gpgsig , NULL ));
392
+
393
+ cl_assert (!git_oid_cmp (& one , & two ));
394
+ cl_git_pass (git_repository_odb (& odb , g_repo ));
395
+ cl_git_pass (git_odb_read (& obj , odb , & one ));
396
+ cl_assert_equal_s (complete , git_odb_object_data (obj ));
397
+
398
+ git_odb_object_free (obj );
399
+ git_odb_free (odb );
400
+ }
0 commit comments