qt, tests: Add check for supported versions
* lang/qt/tests/t-encrypt.cpp (decryptSupported): Moved to t-support as loopbackSupported. * lang/qt/tests/t-remarks.cpp: Check for loopbackSupported. * lang/qt/tests/t-support.cpp, lang/qt/tests/t-support.h (loopbackSupported): New. -- This ensures that the tests do not fail with GnuPG 2.0.x
This commit is contained in:
parent
024edbbd3c
commit
e7b5c6405d
@ -57,22 +57,7 @@
|
|||||||
using namespace QGpgME;
|
using namespace QGpgME;
|
||||||
using namespace GpgME;
|
using namespace GpgME;
|
||||||
|
|
||||||
static bool decryptSupported()
|
|
||||||
{
|
|
||||||
/* With GnuPG 2.0.x (at least 2.0.26 by default on jessie)
|
|
||||||
* the passphrase_cb does not work. So the test popped up
|
|
||||||
* a pinentry. So tests requiring decryption don't work. */
|
|
||||||
static auto version = GpgME::engineInfo(GpgME::GpgEngine).engineVersion();
|
|
||||||
if (version < "2.0.0") {
|
|
||||||
/* With 1.4 it just works */
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (version < "2.1.0") {
|
|
||||||
/* With 2.1 it works with loopback mode */
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
class EncryptionTest : public QGpgMETest
|
class EncryptionTest : public QGpgMETest
|
||||||
{
|
{
|
||||||
@ -103,7 +88,7 @@ private Q_SLOTS:
|
|||||||
QVERIFY(cipherString.startsWith("-----BEGIN PGP MESSAGE-----"));
|
QVERIFY(cipherString.startsWith("-----BEGIN PGP MESSAGE-----"));
|
||||||
|
|
||||||
/* Now decrypt */
|
/* Now decrypt */
|
||||||
if (!decryptSupported()) {
|
if (!loopbackSupported()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto decJob = openpgp()->decryptJob();
|
auto decJob = openpgp()->decryptJob();
|
||||||
@ -174,7 +159,7 @@ private Q_SLOTS:
|
|||||||
|
|
||||||
void testSymmetricEncryptDecrypt()
|
void testSymmetricEncryptDecrypt()
|
||||||
{
|
{
|
||||||
if (!decryptSupported()) {
|
if (!loopbackSupported()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto job = openpgp()->encryptJob();
|
auto job = openpgp()->encryptJob();
|
||||||
@ -207,7 +192,7 @@ private Q_SLOTS:
|
|||||||
void testEncryptDecryptNowrap()
|
void testEncryptDecryptNowrap()
|
||||||
{
|
{
|
||||||
/* Now decrypt */
|
/* Now decrypt */
|
||||||
if (!decryptSupported()) {
|
if (!loopbackSupported()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto listjob = openpgp()->keyListJob(false, false, false);
|
auto listjob = openpgp()->keyListJob(false, false, false);
|
||||||
@ -235,7 +220,7 @@ private Q_SLOTS:
|
|||||||
QVERIFY(cipherString.startsWith("-----BEGIN PGP MESSAGE-----"));
|
QVERIFY(cipherString.startsWith("-----BEGIN PGP MESSAGE-----"));
|
||||||
|
|
||||||
/* Now decrypt */
|
/* Now decrypt */
|
||||||
if (!decryptSupported()) {
|
if (!loopbackSupported()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -272,7 +257,7 @@ private:
|
|||||||
* So this test is disabled until gnupg(?) is fixed for this. */
|
* So this test is disabled until gnupg(?) is fixed for this. */
|
||||||
void testMixedEncryptDecrypt()
|
void testMixedEncryptDecrypt()
|
||||||
{
|
{
|
||||||
if (!decryptSupported()) {
|
if (!loopbackSupported()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto listjob = openpgp()->keyListJob(false, false, false);
|
auto listjob = openpgp()->keyListJob(false, false, false);
|
||||||
|
@ -62,6 +62,9 @@ public:
|
|||||||
// case in the UI
|
// case in the UI
|
||||||
void testRemarkOwnKey()
|
void testRemarkOwnKey()
|
||||||
{
|
{
|
||||||
|
if (!loopbackSupported()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// Get the signing key (alfa)
|
// Get the signing key (alfa)
|
||||||
auto ctx = Context::create(OpenPGP);
|
auto ctx = Context::create(OpenPGP);
|
||||||
QVERIFY (ctx);
|
QVERIFY (ctx);
|
||||||
@ -109,6 +112,9 @@ private Q_SLOTS:
|
|||||||
|
|
||||||
void testRemarkReplaceSingleUIDExportable()
|
void testRemarkReplaceSingleUIDExportable()
|
||||||
{
|
{
|
||||||
|
if (!loopbackSupported()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// Get the signing key (alfa)
|
// Get the signing key (alfa)
|
||||||
auto ctx = Context::create(OpenPGP);
|
auto ctx = Context::create(OpenPGP);
|
||||||
QVERIFY (ctx);
|
QVERIFY (ctx);
|
||||||
@ -197,6 +203,9 @@ private Q_SLOTS:
|
|||||||
|
|
||||||
void testMultipleRemarks()
|
void testMultipleRemarks()
|
||||||
{
|
{
|
||||||
|
if (!loopbackSupported()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// Get the signing key1 (alfa)
|
// Get the signing key1 (alfa)
|
||||||
auto ctx = Context::create(OpenPGP);
|
auto ctx = Context::create(OpenPGP);
|
||||||
QVERIFY (ctx);
|
QVERIFY (ctx);
|
||||||
@ -285,6 +294,9 @@ private Q_SLOTS:
|
|||||||
|
|
||||||
void testRemarkReplaceSingleUID()
|
void testRemarkReplaceSingleUID()
|
||||||
{
|
{
|
||||||
|
if (!loopbackSupported()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// Get the signing key (alfa)
|
// Get the signing key (alfa)
|
||||||
auto ctx = Context::create(OpenPGP);
|
auto ctx = Context::create(OpenPGP);
|
||||||
QVERIFY (ctx);
|
QVERIFY (ctx);
|
||||||
@ -372,6 +384,9 @@ private Q_SLOTS:
|
|||||||
|
|
||||||
void testRemarkReplaceMultiUID()
|
void testRemarkReplaceMultiUID()
|
||||||
{
|
{
|
||||||
|
if (!loopbackSupported()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// Get the signing key (alfa)
|
// Get the signing key (alfa)
|
||||||
auto ctx = Context::create(OpenPGP);
|
auto ctx = Context::create(OpenPGP);
|
||||||
QVERIFY (ctx);
|
QVERIFY (ctx);
|
||||||
|
@ -44,6 +44,8 @@
|
|||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
|
|
||||||
|
#include "engineinfo.h"
|
||||||
|
|
||||||
void QGpgMETest::initTestCase()
|
void QGpgMETest::initTestCase()
|
||||||
{
|
{
|
||||||
GpgME::initializeLibrary();
|
GpgME::initializeLibrary();
|
||||||
@ -98,5 +100,21 @@ void killAgent(const QString& dir)
|
|||||||
proc.waitForFinished();
|
proc.waitForFinished();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool loopbackSupported()
|
||||||
|
{
|
||||||
|
/* With GnuPG 2.0.x (at least 2.0.26 by default on jessie)
|
||||||
|
* the passphrase_cb does not work. So the test popped up
|
||||||
|
* a pinentry. So tests requiring decryption don't work. */
|
||||||
|
static auto version = GpgME::engineInfo(GpgME::GpgEngine).engineVersion();
|
||||||
|
if (version < "2.0.0") {
|
||||||
|
/* With 1.4 it just works */
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (version < "2.1.0") {
|
||||||
|
/* With 2.1 it works with loopback mode */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
#include "t-support.hmoc"
|
#include "t-support.hmoc"
|
||||||
|
@ -53,6 +53,8 @@ public:
|
|||||||
} // namespace GpgME
|
} // namespace GpgME
|
||||||
|
|
||||||
void killAgent(const QString &dir = qgetenv("GNUPGHOME"));
|
void killAgent(const QString &dir = qgetenv("GNUPGHOME"));
|
||||||
|
/* Is the passphrase Provider / loopback Supported */
|
||||||
|
bool loopbackSupported();
|
||||||
|
|
||||||
class QGpgMETest : public QObject
|
class QGpgMETest : public QObject
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user