LCOV - code coverage report
Current view: top level - g10 - t-keydb.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 30 41 73.2 %
Date: 2015-11-05 17:10:59 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /* t-keydb.c - Tests for keydb.c.
       2             :  * Copyright (C) 2015 g10 Code GmbH
       3             :  *
       4             :  * This file is part of GnuPG.
       5             :  *
       6             :  * GnuPG is free software; you can redistribute it and/or modify
       7             :  * it under the terms of the GNU General Public License as published by
       8             :  * the Free Software Foundation; either version 3 of the License, or
       9             :  * (at your option) any later version.
      10             :  *
      11             :  * GnuPG is distributed in the hope that it will be useful,
      12             :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      13             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14             :  * GNU General Public License for more details.
      15             :  *
      16             :  * You should have received a copy of the GNU General Public License
      17             :  * along with this program; if not, see <http://www.gnu.org/licenses/>.
      18             :  */
      19             : 
      20             : #include "test.c"
      21             : 
      22             : #include "keydb.h"
      23             : 
      24             : static void
      25           1 : do_test (int argc, char *argv[])
      26             : {
      27             :   int rc;
      28             :   KEYDB_HANDLE hd1, hd2;
      29             :   KEYDB_SEARCH_DESC desc1, desc2;
      30             :   KBNODE kb1, kb2;
      31             :   char *uid1;
      32             :   char *uid2;
      33             :   char *fname;
      34             : 
      35             :   (void) argc;
      36             :   (void) argv;
      37             : 
      38           1 :   fname = prepend_srcdir ("t-keydb-keyring.kbx");
      39           1 :   rc = keydb_add_resource (fname, 0);
      40           1 :   test_free (fname);
      41           1 :   if (rc)
      42           0 :     ABORT ("Failed to open keyring.");
      43             : 
      44           1 :   hd1 = keydb_new ();
      45           1 :   hd2 = keydb_new ();
      46             : 
      47           1 :   rc = classify_user_id ("2689 5E25 E844 6D44 A26D  8FAF 2F79 98F3 DBFC 6AD9",
      48             :                          &desc1, 0);
      49           1 :   if (rc)
      50           0 :     ABORT ("Failed to convert fingerprint for DBFC6AD9");
      51             : 
      52           1 :   rc = keydb_search (hd1, &desc1, 1, NULL);
      53           1 :   if (rc)
      54           0 :     ABORT ("Failed to lookup key associated with DBFC6AD9");
      55             : 
      56             : 
      57           1 :   classify_user_id ("8061 5870 F5BA D690 3336  86D0 F2AD 85AC 1E42 B367",
      58             :                     &desc2, 0);
      59           1 :   if (rc)
      60           0 :     ABORT ("Failed to convert fingerprint for 1E42B367");
      61             : 
      62           1 :   rc = keydb_search (hd2, &desc2, 1, NULL);
      63           1 :   if (rc)
      64           0 :     ABORT ("Failed to lookup key associated with 1E42B367");
      65             : 
      66           1 :   rc = keydb_get_keyblock (hd2, &kb2);
      67           1 :   if (rc)
      68           0 :     ABORT ("Failed to get keyblock for 1E42B367");
      69             : 
      70           1 :   rc = keydb_get_keyblock (hd1, &kb1);
      71           1 :   if (rc)
      72           0 :     ABORT ("Failed to get keyblock for DBFC6AD9");
      73             : 
      74           3 :   while (kb1 && kb1->pkt->pkttype != PKT_USER_ID)
      75           1 :     kb1 = kb1->next;
      76           1 :   if (! kb1)
      77           0 :     ABORT ("DBFC6AD9 has no user id packet");
      78           1 :   uid1 = kb1->pkt->pkt.user_id->name;
      79             : 
      80           3 :   while (kb2 && kb2->pkt->pkttype != PKT_USER_ID)
      81           1 :     kb2 = kb2->next;
      82           1 :   if (! kb2)
      83           0 :     ABORT ("1E42B367 has no user id packet");
      84           1 :   uid2 = kb2->pkt->pkt.user_id->name;
      85             : 
      86           1 :   if (verbose)
      87             :     {
      88           0 :       printf ("user id for DBFC6AD9: %s\n", uid1);
      89           0 :       printf ("user id for 1E42B367: %s\n", uid2);
      90             :     }
      91             : 
      92           1 :   TEST_P ("cache consistency", strcmp (uid1, uid2) != 0);
      93           1 : }

Generated by: LCOV version 1.11