1 /* t-keydb.c - Tests for keydb.c.
2 * Copyright (C) 2015 g10 Code GmbH
4 * This file is part of GnuPG.
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.
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.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, see <https://www.gnu.org/licenses/>.
25 do_test (int argc, char *argv[])
28 KEYDB_HANDLE hd1, hd2;
29 KEYDB_SEARCH_DESC desc1, desc2;
38 fname = prepend_srcdir ("t-keydb-keyring.kbx");
39 rc = keydb_add_resource (fname, 0);
42 ABORT ("Failed to open keyring.");
51 rc = classify_user_id ("2689 5E25 E844 6D44 A26D 8FAF 2F79 98F3 DBFC 6AD9",
54 ABORT ("Failed to convert fingerprint for DBFC6AD9");
56 rc = keydb_search (hd1, &desc1, 1, NULL);
58 ABORT ("Failed to lookup key associated with DBFC6AD9");
61 classify_user_id ("8061 5870 F5BA D690 3336 86D0 F2AD 85AC 1E42 B367",
64 ABORT ("Failed to convert fingerprint for 1E42B367");
66 rc = keydb_search (hd2, &desc2, 1, NULL);
68 ABORT ("Failed to lookup key associated with 1E42B367");
70 rc = keydb_get_keyblock (hd2, &kb2);
72 ABORT ("Failed to get keyblock for 1E42B367");
74 rc = keydb_get_keyblock (hd1, &kb1);
76 ABORT ("Failed to get keyblock for DBFC6AD9");
79 while (p && p->pkt->pkttype != PKT_USER_ID)
82 ABORT ("DBFC6AD9 has no user id packet");
83 uid1 = p->pkt->pkt.user_id->name;
86 while (p && p->pkt->pkttype != PKT_USER_ID)
89 ABORT ("1E42B367 has no user id packet");
90 uid2 = p->pkt->pkt.user_id->name;
94 printf ("user id for DBFC6AD9: %s\n", uid1);
95 printf ("user id for 1E42B367: %s\n", uid2);
98 TEST_P ("cache consistency", strcmp (uid1, uid2) != 0);
100 release_kbnode (kb1);
101 release_kbnode (kb2);