[Pkg-gnupg-commit] [gpgme] 07/103: qt: Handle if gpg does not support tofu in test

Daniel Kahn Gillmor dkg at fifthhorseman.net
Thu Dec 14 18:52:58 UTC 2017


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gpgme.

commit 2c063a8d60418ee59ae80da221420c6f3fa19abb
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Thu Mar 30 14:36:49 2017 +0200

    qt: Handle if gpg does not support tofu in test
    
    * lang/qt/src/t-tofuinfo.cpp (TestTofuInfo::testSupported): Treat
    it as unsupported if secret keylisting already fails.
    
    --
    The likely cause of this is that the agent can't be started
    because the trust model is unsupported. Other tests check
    that keylisting actually works.
---
 lang/qt/tests/t-tofuinfo.cpp | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/lang/qt/tests/t-tofuinfo.cpp b/lang/qt/tests/t-tofuinfo.cpp
index e16b1fd..8d040bc 100644
--- a/lang/qt/tests/t-tofuinfo.cpp
+++ b/lang/qt/tests/t-tofuinfo.cpp
@@ -118,7 +118,24 @@ Q_SIGNALS:
 private:
     bool testSupported()
     {
-        return !(GpgME::engineInfo(GpgME::GpgEngine).engineVersion() < "2.1.16");
+        static bool initialized, supported;
+        if (initialized) {
+            return supported;
+        }
+        initialized = true;
+        if (GpgME::engineInfo(GpgME::GpgEngine).engineVersion() < "2.1.16") {
+            return false;
+        }
+        // If the keylist fails here this means that gnupg does not
+        // support tofu at all. It can be disabled at compile time. So no
+        // tests.
+        auto *job = openpgp()->keyListJob(false, false, false);
+        job->addMode(GpgME::WithTofu);
+        std::vector<GpgME::Key> keys;
+        job->exec(QStringList() << QStringLiteral("zulu at example.net"), true, keys);
+        delete job;
+        supported = !keys.empty();
+        return supported;
     }
 
     void testTofuCopy(TofuInfo other, const TofuInfo &orig)
@@ -402,6 +419,10 @@ private Q_SLOTS:
 
     void testTofuConflict()
     {
+        if (!testSupported()) {
+            return;
+        }
+
         if (GpgME::engineInfo(GpgME::GpgEngine).engineVersion() < "2.1.19") {
             return;
         }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gpgme.git



More information about the Pkg-gnupg-commit mailing list