diff options
| author | Ingo Klöcker <[email protected]> | 2020-10-15 14:50:32 +0000 | 
|---|---|---|
| committer | Ingo Klöcker <[email protected]> | 2020-10-23 11:50:16 +0000 | 
| commit | c3406462d11b4241d4feee9be08e0ebe4f2e0bfa (patch) | |
| tree | 3cf53096326566362ca2891e4b30d8f57f49338e | |
| parent | cpp, qt: Fix version info comparison (diff) | |
| download | gpgme-c3406462d11b4241d4feee9be08e0ebe4f2e0bfa.tar.gz gpgme-c3406462d11b4241d4feee9be08e0ebe4f2e0bfa.zip | |
cpp, qt: Add missing comparison operators for version info comparison
* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator<=,
EngineInfo::Version::operator>=, EngineInfo::Version::operator!=):
New.
* lang/qt/tests/t-various.cpp (TestVarious::testVersion): Add tests for
new comparison operators.
* NEWS: Mention added API
Diffstat (limited to '')
| -rw-r--r-- | NEWS | 3 | ||||
| -rw-r--r-- | lang/cpp/src/engineinfo.h | 30 | ||||
| -rw-r--r-- | lang/qt/tests/t-various.cpp | 32 | 
3 files changed, 65 insertions, 0 deletions
| @@ -15,6 +15,9 @@ Noteworthy changes in version 1.14.1 (unreleased)   gpgme_op_setexpire                         NEW.   cpp: Context::setExpire                    NEW.   cpp: Context::startSetExpire               NEW. + cpp: EngineInfo::Version::operator<=       NEW. + cpp: EngineInfo::Version::operator>=       NEW. + cpp: EngineInfo::Version::operator!=       NEW.  Noteworthy changes in version 1.14.0 (2020-07-16) diff --git a/lang/cpp/src/engineinfo.h b/lang/cpp/src/engineinfo.h index 0bf7d0e8..52bf3474 100644 --- a/lang/cpp/src/engineinfo.h +++ b/lang/cpp/src/engineinfo.h @@ -85,6 +85,16 @@ public:              return operator<(Version(other));          } +        bool operator <= (const Version &other) +        { +            return !operator>(other); +        } + +        bool operator <= (const char *other) +        { +            return operator<=(Version(other)); +        } +          bool operator > (const char* other)          {              return operator>(Version(other)); @@ -95,6 +105,16 @@ public:              return !operator<(other) && !operator==(other);          } +        bool operator >= (const Version &other) +        { +            return !operator<(other); +        } + +        bool operator >= (const char *other) +        { +            return operator>=(Version(other)); +        } +          bool operator == (const Version& other)          {              return major == other.major @@ -107,6 +127,16 @@ public:              return operator==(Version(other));          } +        bool operator != (const Version &other) +        { +            return !operator==(other); +        } + +        bool operator != (const char *other) +        { +            return operator!=(Version(other)); +        } +          friend std::ostream& operator << (std::ostream& stream, const Version& ver)          {              stream << ver.major; diff --git a/lang/qt/tests/t-various.cpp b/lang/qt/tests/t-various.cpp index 9f7b1cec..bec0a57e 100644 --- a/lang/qt/tests/t-various.cpp +++ b/lang/qt/tests/t-various.cpp @@ -245,6 +245,38 @@ private Q_SLOTS:          QVERIFY(EngineInfo::Version("3.0.0") > EngineInfo::Version("2.3.20"));          QVERIFY(EngineInfo::Version("3.0.1") > EngineInfo::Version("3.0.0"));          QVERIFY(EngineInfo::Version("3.1.0") > EngineInfo::Version("3.0.20")); + +        QVERIFY(EngineInfo::Version("1.1.1") <= "2.0.0"); +        QVERIFY(EngineInfo::Version("1.1.1") <= "1.2.0"); +        QVERIFY(EngineInfo::Version("1.1.1") <= "1.1.2"); +        QVERIFY(EngineInfo::Version("1.1.1") <= "1.1.1"); +        QVERIFY(!(EngineInfo::Version("1.1.1") <= "1.1.0")); +        QVERIFY(!(EngineInfo::Version("1.1.1") <= "1.0.9")); +        QVERIFY(!(EngineInfo::Version("1.1.1") <= "0.9.9")); + +        QVERIFY(!(EngineInfo::Version("1.1.1") == "2.0.0")); +        QVERIFY(!(EngineInfo::Version("1.1.1") == "1.2.0")); +        QVERIFY(!(EngineInfo::Version("1.1.1") == "1.1.2")); +        QVERIFY(EngineInfo::Version("1.1.1") == "1.1.1"); +        QVERIFY(!(EngineInfo::Version("1.1.1") == "1.1.0")); +        QVERIFY(!(EngineInfo::Version("1.1.1") == "1.0.9")); +        QVERIFY(!(EngineInfo::Version("1.1.1") == "0.9.9")); + +        QVERIFY(EngineInfo::Version("1.1.1") != "2.0.0"); +        QVERIFY(EngineInfo::Version("1.1.1") != "1.2.0"); +        QVERIFY(EngineInfo::Version("1.1.1") != "1.1.2"); +        QVERIFY(!(EngineInfo::Version("1.1.1") != "1.1.1")); +        QVERIFY(EngineInfo::Version("1.1.1") != "1.1.0"); +        QVERIFY(EngineInfo::Version("1.1.1") != "1.0.9"); +        QVERIFY(EngineInfo::Version("1.1.1") != "0.9.9"); + +        QVERIFY(!(EngineInfo::Version("1.1.1") >= "2.0.0")); +        QVERIFY(!(EngineInfo::Version("1.1.1") >= "1.2.0")); +        QVERIFY(!(EngineInfo::Version("1.1.1") >= "1.1.2")); +        QVERIFY(EngineInfo::Version("1.1.1") >= "1.1.1"); +        QVERIFY(EngineInfo::Version("1.1.1") >= "1.1.0"); +        QVERIFY(EngineInfo::Version("1.1.1") >= "1.0.9"); +        QVERIFY(EngineInfo::Version("1.1.1") >= "0.9.9");      }      void initTestCase() | 
