summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
Diffstat (limited to 'api')
-rw-r--r--api/logic/Version.cpp57
-rw-r--r--api/logic/Version.h4
-rw-r--r--api/logic/Version_test.cpp38
3 files changed, 1 insertions, 98 deletions
diff --git a/api/logic/Version.cpp b/api/logic/Version.cpp
index 3c4727ad..2c83374f 100644
--- a/api/logic/Version.cpp
+++ b/api/logic/Version.cpp
@@ -75,6 +75,7 @@ void Version::parse()
{
m_sections.clear();
+ // FIXME: this is bad. versions can contain a lot more separators...
QStringList parts = m_string.split('.');
for (const auto part : parts)
@@ -82,59 +83,3 @@ void Version::parse()
m_sections.append(Section(part));
}
}
-
-bool versionIsInInterval(const QString &version, const QString &interval)
-{
- return versionIsInInterval(Version(version), interval);
-}
-bool versionIsInInterval(const Version &version, const QString &interval)
-{
- if (interval.isEmpty() || version.toString() == interval)
- {
- return true;
- }
-
- // Interval notation is used
- QRegularExpression exp(
- "(?<start>[\\[\\]\\(\\)])(?<bottom>.*?)(,(?<top>.*?))?(?<end>[\\[\\]\\(\\)]),?");
- QRegularExpressionMatch match = exp.match(interval);
- if (match.hasMatch())
- {
- const QChar start = match.captured("start").at(0);
- const QChar end = match.captured("end").at(0);
- const QString bottom = match.captured("bottom");
- const QString top = match.captured("top");
-
- // check if in range (bottom)
- if (!bottom.isEmpty())
- {
- const auto bottomVersion = Version(bottom);
- if ((start == '[') && !(version >= bottomVersion))
- {
- return false;
- }
- else if ((start == '(') && !(version > bottomVersion))
- {
- return false;
- }
- }
-
- // check if in range (top)
- if (!top.isEmpty())
- {
- const auto topVersion = Version(top);
- if ((end == ']') && !(version <= topVersion))
- {
- return false;
- }
- else if ((end == ')') && !(version < topVersion))
- {
- return false;
- }
- }
-
- return true;
- }
-
- return false;
-}
diff --git a/api/logic/Version.h b/api/logic/Version.h
index b5946ced..08dfb6e9 100644
--- a/api/logic/Version.h
+++ b/api/logic/Version.h
@@ -104,7 +104,3 @@ private:
void parse();
};
-
-MULTIMC_LOGIC_EXPORT bool versionIsInInterval(const QString &version, const QString &interval);
-MULTIMC_LOGIC_EXPORT bool versionIsInInterval(const Version &version, const QString &interval);
-
diff --git a/api/logic/Version_test.cpp b/api/logic/Version_test.cpp
index aa6cb4dd..1e7920ad 100644
--- a/api/logic/Version_test.cpp
+++ b/api/logic/Version_test.cpp
@@ -60,44 +60,6 @@ private slots:
}
- void test_versionIsInInterval_data()
- {
- QTest::addColumn<QString>("version");
- QTest::addColumn<QString>("interval");
- QTest::addColumn<bool>("result");
-
- QTest::newRow("empty, true") << "1.2.3" << "" << true;
- QTest::newRow("one version, true") << "1.2.3" << "1.2.3" << true;
- QTest::newRow("one version, false") << "1.2.3" << "1.2.2" << false;
-
- QTest::newRow("one version inclusive <-> infinity, true") << "1.2.3" << "[1.2.3,)" << true;
- QTest::newRow("one version exclusive <-> infinity, true") << "1.2.3" << "(1.2.2,)" << true;
- QTest::newRow("one version inclusive <-> infitity, false") << "1.2.3" << "[1.2.4,)" << false;
- QTest::newRow("one version exclusive <-> infinity, false") << "1.2.3" << "(1.2.3,)" << false;
-
- QTest::newRow("infinity <-> one version inclusive, true") << "1.2.3" << "(,1.2.3]" << true;
- QTest::newRow("infinity <-> one version exclusive, true") << "1.2.3" << "(,1.2.4)" << true;
- QTest::newRow("infinity <-> one version inclusive, false") << "1.2.3" << "(,1.2.2]" << false;
- QTest::newRow("infinity <-> one version exclusive, false") << "1.2.3" << "(,1.2.3)" << false;
-
- QTest::newRow("inclusive <-> inclusive, true") << "1.2.3" << "[1.2.2,1.2.3]" << true;
- QTest::newRow("inclusive <-> exclusive, true") << "1.2.3" << "[1.2.3,1.2.4)" << true;
- QTest::newRow("exclusive <-> inclusive, true") << "1.2.3" << "(1.2.2,1.2.3]" << true;
- QTest::newRow("exclusive <-> exclusive, true") << "1.2.3" << "(1.2.2,1.2.4)" << true;
- QTest::newRow("inclusive <-> inclusive, false") << "1.2.3" << "[1.0.0,1.2.2]" << false;
- QTest::newRow("inclusive <-> exclusive, false") << "1.2.3" << "[1.0.0,1.2.3)" << false;
- QTest::newRow("exclusive <-> inclusive, false") << "1.2.3" << "(1.2.3,2.0.0]" << false;
- QTest::newRow("exclusive <-> exclusive, false") << "1.2.3" << "(1.0.0,1.2.3)" << false;
- }
- void test_versionIsInInterval()
- {
- QFETCH(QString, version);
- QFETCH(QString, interval);
- QFETCH(bool, result);
-
- QCOMPARE(versionIsInInterval(version, interval), result);
- }
-
void test_versionCompare_data()
{
setupVersions();