From 87f26c4e54abcb5546c623c56d849bcaa5297a35 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 19 Nov 2003 15:15:33 +0000 Subject: [PATCH] * gpg/t-support.h (DIM): Added. * gpg/t-verify.c (check_result): Rewrote test for notations because the order of notaions is not guaranteed. * gpgsm/t-support.h (fail_if_err): Also print the numeric values. --- trunk/tests/ChangeLog | 9 +++++ trunk/tests/gpg/t-support.h | 4 ++ trunk/tests/gpg/t-verify.c | 73 +++++++++++++++++++++++++---------- trunk/tests/gpgsm/t-support.h | 5 ++- trunk/tests/gpgsm/t-verify.c | 6 ++- 5 files changed, 73 insertions(+), 24 deletions(-) diff --git a/trunk/tests/ChangeLog b/trunk/tests/ChangeLog index 8f6a2d7..1ca2e37 100644 --- a/trunk/tests/ChangeLog +++ b/trunk/tests/ChangeLog @@ -1,3 +1,12 @@ +2003-11-19 Werner Koch + + * gpg/t-support.h (DIM): Added. + + * gpg/t-verify.c (check_result): Rewrote test for notations + because the order of notaions is not guaranteed. + + * gpgsm/t-support.h (fail_if_err): Also print the numeric values. + 2003-10-06 Marcus Brinkmann * gpg/t-eventloop.c: Include for old systems. diff --git a/trunk/tests/gpg/t-support.h b/trunk/tests/gpg/t-support.h index 929a5d1..5488055 100644 --- a/trunk/tests/gpg/t-support.h +++ b/trunk/tests/gpg/t-support.h @@ -25,6 +25,10 @@ #include +#ifndef DIM +#define DIM(v) (sizeof(v)/sizeof((v)[0])) +#endif + #define fail_if_err(err) \ do \ { \ diff --git a/trunk/tests/gpg/t-verify.c b/trunk/tests/gpg/t-verify.c index 83e942f..0df8991 100644 --- a/trunk/tests/gpg/t-verify.c +++ b/trunk/tests/gpg/t-verify.c @@ -85,8 +85,9 @@ check_result (gpgme_verify_result_t result, unsigned int summary, char *fpr, } if (sig->summary != summary) { - fprintf (stderr, "%s:%i: Unexpected signature summary: 0x%x\n", - __FILE__, __LINE__, sig->summary); + fprintf (stderr, "%s:%i: Unexpected signature summary: " + "want=0x%x have=0x%x\n", + __FILE__, __LINE__, summary, sig->summary); exit (1); } if (strcmp (sig->fpr, fpr)) @@ -103,24 +104,56 @@ check_result (gpgme_verify_result_t result, unsigned int summary, char *fpr, } if (notation) { - if (!sig->notations - || strcmp (sig->notations->name, "bar") - || strcmp (sig->notations->value, "\xc3\xb6\xc3\xa4\xc3\xbc\xc3\x9f" - " das waren Umlaute und jetzt ein prozent%-Zeichen") - || !sig->notations->next - || strcmp (sig->notations->next->name, "foobar.1") - || strcmp (sig->notations->next->value, - "this is a notation data with 2 lines") - || !sig->notations->next->next - || sig->notations->next->next->name != NULL - || strcmp (sig->notations->next->next->value, - "http://www.gu.org/policy/") - || sig->notations->next->next->next) - { - fprintf (stderr, "%s:%i: Unexpected notation data\n", - __FILE__, __LINE__); - exit (1); - } + static struct { + const char *name; + const char *value; + int seen; + } expected_notations[] = { + { "bar", + "\xc3\xb6\xc3\xa4\xc3\xbc\xc3\x9f" + " das waren Umlaute und jetzt ein prozent%-Zeichen" }, + { "foobar.1", + "this is a notation data with 2 lines" }, + { NULL, + "http://www.gu.org/policy/" } + }; + int i; + gpgme_sig_notation_t r; + + for (i=0; i < DIM(expected_notations); i++ ) + expected_notations[i].seen = 0; + + for (r = sig->notations; r; r = r->next) + { + int any = 0; + for (i=0; i < DIM(expected_notations); i++) + { + if ( ((r->name && expected_notations[i].name + && !strcmp (r->name, expected_notations[i].name)) + || (!r->name && !expected_notations[i].name)) + && r->value + && !strcmp (r->value, expected_notations[i].value)) + { + expected_notations[i].seen++; + any++; + } + } + if (!any) + { + fprintf (stderr, "%s:%i: Unexpected notation data\n", + __FILE__, __LINE__); + exit (1); + } + } + for (i=0; i < DIM(expected_notations); i++ ) + { + if (expected_notations[i].seen != 1) + { + fprintf (stderr, "%s:%i: Missing or duplicate notation data\n", + __FILE__, __LINE__); + exit (1); + } + } } if (sig->wrong_key_usage) { diff --git a/trunk/tests/gpgsm/t-support.h b/trunk/tests/gpgsm/t-support.h index 3199b05..32a7b19 100644 --- a/trunk/tests/gpgsm/t-support.h +++ b/trunk/tests/gpgsm/t-support.h @@ -30,9 +30,10 @@ { \ if (err) \ { \ - fprintf (stderr, "%s:%d: %s: %s\n", \ + fprintf (stderr, "%s:%d: %s: %s (%d.%d)\n", \ __FILE__, __LINE__, gpg_strsource (err), \ - gpg_strerror (err)); \ + gpg_strerror (err), \ + gpg_err_source (err), gpg_err_code (err)); \ exit (1); \ } \ } \ diff --git a/trunk/tests/gpgsm/t-verify.c b/trunk/tests/gpgsm/t-verify.c index 304fc2c..6fb32a9 100644 --- a/trunk/tests/gpgsm/t-verify.c +++ b/trunk/tests/gpgsm/t-verify.c @@ -57,8 +57,9 @@ check_result (gpgme_verify_result_t result, int summary, char *fpr, } if (sig->summary != summary) { - fprintf (stderr, "%s:%i: Unexpected signature summary: 0x%x\n", - __FILE__, __LINE__, sig->summary); + fprintf (stderr, "%s:%i: Unexpected signature summary: " + "want=0x%x have=0x%x\n", + __FILE__, __LINE__, summary, sig->summary); exit (1); } if (strcmp (sig->fpr, fpr)) @@ -119,6 +120,7 @@ main (int argc, char **argv) fail_if_err (err); err = gpgme_data_new_from_mem (&sig, test_sig1, strlen (test_sig1), 0); fail_if_err (err); + err = gpgme_op_verify (ctx, sig, text, NULL); fail_if_err (err); result = gpgme_op_verify_result (ctx); -- 2.26.2