diff options
| author | Ingo Klöcker <[email protected]> | 2022-08-18 08:55:09 +0000 | 
|---|---|---|
| committer | Ingo Klöcker <[email protected]> | 2022-08-18 08:55:09 +0000 | 
| commit | 2e7a61b898fccc1c20000b79dee83cd980901fa9 (patch) | |
| tree | 46fe44f1eac55b60daf89ed016a666a044c0ef43 /lang/qt/tests/t-addexistingsubkey.cpp | |
| parent | cpp: Fix handling of "no key" or "invalid time" situations (diff) | |
| download | gpgme-2e7a61b898fccc1c20000b79dee83cd980901fa9.tar.gz gpgme-2e7a61b898fccc1c20000b79dee83cd980901fa9.zip  | |
qt,tests: Make test pass on 32-bit systems
* lang/qt/tests/t-addexistingsubkey.cpp
(AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration): Handle
negative expiration date.
--
On 32-bit systems the expiration date of the test key overflows. This
will cause the AddExistingSubkeyJob to fail. We expect it to fail with
an "invalid time" error.
GnuPG-bug-id: 6137
Diffstat (limited to '')
| -rw-r--r-- | lang/qt/tests/t-addexistingsubkey.cpp | 42 | 
1 files changed, 24 insertions, 18 deletions
diff --git a/lang/qt/tests/t-addexistingsubkey.cpp b/lang/qt/tests/t-addexistingsubkey.cpp index 87eadf43..c0eee57b 100644 --- a/lang/qt/tests/t-addexistingsubkey.cpp +++ b/lang/qt/tests/t-addexistingsubkey.cpp @@ -213,24 +213,30 @@ private Q_SLOTS:          const auto result = job->exec(key, sourceSubkey); -        QCOMPARE(result.code(), static_cast<int>(GPG_ERR_NO_ERROR)); -        key.update(); -        QCOMPARE(key.numSubkeys(), 3u); - -        // allow 1 second different expiration because gpg calculates with -        // expiration as difference to current time and takes current time -        // several times -        const auto allowedDeltaTSeconds = 1; -        const auto expectedExpirationRange = std::make_pair( -            uint_least32_t(sourceSubkey.expirationTime()) - allowedDeltaTSeconds, -            uint_least32_t(sourceSubkey.expirationTime()) + allowedDeltaTSeconds); -        const auto actualExpiration = uint_least32_t(key.subkey(2).expirationTime()); -        QVERIFY2(actualExpiration >= expectedExpirationRange.first, -                 ("actual: " + std::to_string(actualExpiration) + -                  "; expected: " + std::to_string(expectedExpirationRange.first)).c_str()); -        QVERIFY2(actualExpiration <= expectedExpirationRange.second, -                 ("actual: " + std::to_string(actualExpiration) + -                  "; expected: " + std::to_string(expectedExpirationRange.second)).c_str()); +        if (sourceSubkey.expirationTime() > 0) { +            QCOMPARE(result.code(), static_cast<int>(GPG_ERR_NO_ERROR)); +            key.update(); +            QCOMPARE(key.numSubkeys(), 3u); + +            // allow 1 second different expiration because gpg calculates with +            // expiration as difference to current time and takes current time +            // several times +            const auto allowedDeltaTSeconds = 1; +            const auto expectedExpirationRange = std::make_pair( +                uint_least32_t(sourceSubkey.expirationTime()) - allowedDeltaTSeconds, +                uint_least32_t(sourceSubkey.expirationTime()) + allowedDeltaTSeconds); +            const auto actualExpiration = uint_least32_t(key.subkey(2).expirationTime()); +            QVERIFY2(actualExpiration >= expectedExpirationRange.first, +                    ("actual: " + std::to_string(actualExpiration) + +                    "; expected: " + std::to_string(expectedExpirationRange.first)).c_str()); +            QVERIFY2(actualExpiration <= expectedExpirationRange.second, +                    ("actual: " + std::to_string(actualExpiration) + +                    "; expected: " + std::to_string(expectedExpirationRange.second)).c_str()); +        } else { +            // on 32-bit systems the expiration date of the test key overflows; +            // in this case we expect an appropriate error code +            QCOMPARE(result.code(), static_cast<int>(GPG_ERR_INV_TIME)); +        }      }  private:  | 
