From 053e6e0a7b8ea38ad9d4160c84814867bbb9fcf6 Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Thu, 25 Aug 2016 15:20:02 +0200 Subject: [PATCH] qt: Fix tofuinfo test when gpg is gpg2 * lang/qt/tests/t-support.cpp (QGpgMETest::copyKeyrings): New helper. * lang/qt/tests/t-support.h: Declare. * lang/qt/tests/t-encrypt.cpp: use it * lang/qt/tests/t-tofuinbo.cpp: ditto. -- New helper takes care of copying the correct files for either keybox or keyring. --- lang/qt/tests/t-encrypt.cpp | 6 +----- lang/qt/tests/t-support.cpp | 26 ++++++++++++++++++++++++++ lang/qt/tests/t-support.h | 2 ++ lang/qt/tests/t-tofuinfo.cpp | 6 +----- 4 files changed, 30 insertions(+), 10 deletions(-) diff --git a/lang/qt/tests/t-encrypt.cpp b/lang/qt/tests/t-encrypt.cpp index 708c2050..44cea969 100644 --- a/lang/qt/tests/t-encrypt.cpp +++ b/lang/qt/tests/t-encrypt.cpp @@ -242,11 +242,7 @@ public Q_SLOT: Q_ASSERT(agentConf.open(QIODevice::WriteOnly)); agentConf.write("allow-loopback-pinentry"); agentConf.close(); - Q_ASSERT(QFile::copy(gpgHome + QStringLiteral("/pubring.gpg"), - mDir.path() + QStringLiteral("/pubring.gpg"))); - Q_ASSERT(QFile::copy(gpgHome + QStringLiteral("/secring.gpg"), - mDir.path() + QStringLiteral("/secring.gpg"))); - + copyKeyrings(gpgHome, mDir.path()); } private: diff --git a/lang/qt/tests/t-support.cpp b/lang/qt/tests/t-support.cpp index ffb0f9ef..73e8d5c2 100644 --- a/lang/qt/tests/t-support.cpp +++ b/lang/qt/tests/t-support.cpp @@ -45,6 +45,31 @@ void QGpgMETest::cleanupTestCase() killAgent(); } +bool QGpgMETest::copyKeyrings(const QString &src, const QString &dest) +{ + bool is21dir = QFileInfo(src + QDir::separator() + QStringLiteral("pubring.kbx")).exists(); + const QString name = is21dir ? QStringLiteral("pubring.kbx") : + QStringLiteral("pubring.gpg"); + if (!QFile::copy(src + name, dest + QDir::separator() + name)) { + return false; + } + if (!is21dir) { + return (QFile::copy(src + QDir::separator() + QStringLiteral("secring.gpg"), + dest + QDir::separator() + QStringLiteral("secring.gpg"))); + } + QDir dir (src + QDir::separator() + QStringLiteral("private-keys-v1.d")); + QDir target(dest); + if (!target.mkdir("private-keys-v1.d")) { + return false; + } + foreach (QString f, dir.entryList(QDir::Files)) { + if (!QFile::copy(src + QDir::separator() + f, dest + QDir::separator() + f)) { + return false; + } + } + return true; +} + void killAgent(const QString& dir) { QProcess proc; @@ -59,4 +84,5 @@ void killAgent(const QString& dir) proc.waitForFinished(); } + #include "t-support.hmoc" diff --git a/lang/qt/tests/t-support.h b/lang/qt/tests/t-support.h index cf0cb26e..74163b11 100644 --- a/lang/qt/tests/t-support.h +++ b/lang/qt/tests/t-support.h @@ -55,6 +55,8 @@ void killAgent(const QString &dir = qgetenv("GNUPGHOME")); class QGpgMETest : public QObject { Q_OBJECT +protected: + bool copyKeyrings(const QString &from, const QString& to); public Q_SLOTS: void initTestCase(); diff --git a/lang/qt/tests/t-tofuinfo.cpp b/lang/qt/tests/t-tofuinfo.cpp index ab466eed..7eea1eae 100644 --- a/lang/qt/tests/t-tofuinfo.cpp +++ b/lang/qt/tests/t-tofuinfo.cpp @@ -239,11 +239,7 @@ private Q_SLOTS: Q_ASSERT(agentConf.open(QIODevice::WriteOnly)); agentConf.write("allow-loopback-pinentry"); agentConf.close(); - Q_ASSERT(QFile::copy(gpgHome + QStringLiteral("/pubring.gpg"), - mDir.path() + QStringLiteral("/pubring.gpg"))); - Q_ASSERT(QFile::copy(gpgHome + QStringLiteral("/secring.gpg"), - mDir.path() + QStringLiteral("/secring.gpg"))); - + copyKeyrings(gpgHome, mDir.path()); } private: QTemporaryDir mDir;