diff options
author | Andre Heinecke <[email protected]> | 2017-03-30 12:36:49 +0000 |
---|---|---|
committer | Andre Heinecke <[email protected]> | 2017-03-30 12:44:42 +0000 |
commit | 2c063a8d60418ee59ae80da221420c6f3fa19abb (patch) | |
tree | 367c40aa6650ccfa357b35ae97ed7917afcfc779 /lang/qt/tests/t-tofuinfo.cpp | |
parent | python,build: Reinstate prepare target. (diff) | |
download | gpgme-2c063a8d60418ee59ae80da221420c6f3fa19abb.tar.gz gpgme-2c063a8d60418ee59ae80da221420c6f3fa19abb.zip |
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.
Diffstat (limited to '')
-rw-r--r-- | lang/qt/tests/t-tofuinfo.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/lang/qt/tests/t-tofuinfo.cpp b/lang/qt/tests/t-tofuinfo.cpp index e16b1fde..8d040bc3 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("[email protected]"), 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; } |