diff options
author | David Faure <faure@kde.org> | 2017-12-02 10:18:12 +0100 |
---|---|---|
committer | David Faure <faure@kde.org> | 2017-12-02 10:18:18 +0100 |
commit | 7d802e39d56bd9eb9cf28f629a3d0b94a85dd4bb (patch) | |
tree | 44605ee221df0279204ec133ea916718b526374b | |
parent | 62dd178d783ca08ebe757813fa3f31cfd3d2009a (diff) | |
download | kconfig-7d802e39d56bd9eb9cf28f629a3d0b94a85dd4bb.tar.gz kconfig-7d802e39d56bd9eb9cf28f629a3d0b94a85dd4bb.tar.bz2 |
KConfig: fix autotest on CI with trailing slash in HOME.
Summary:
The CI has $HOME=/home/jenkins/ with a trailing slash, which leads to
FAIL! : KConfigTest::testPath() Compared values are not the same
Actual (sc3.readPathEntry("homepath", QString())): "/home/jenkins//foo"
Expected (HOMEPATH): "/home/jenkins/foo"
QDir::homePath() is too clean for our purposes, use $HOME on Unix.
Test Plan:
kconfigtest now passes with HOME=/home/dfaure/
-rw-r--r-- | autotests/kconfigtest.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/autotests/kconfigtest.cpp b/autotests/kconfigtest.cpp index 26e2313c..3e0578f0 100644 --- a/autotests/kconfigtest.cpp +++ b/autotests/kconfigtest.cpp @@ -43,6 +43,16 @@ KCONFIGGROUP_DECLARE_FLAGS_QOBJECT(KConfigTest, Flags) QTEST_MAIN(KConfigTest) +static QString homePath() +{ +#ifdef Q_OS_WIN + return QDir::homePath(); +#else + // Don't use QDir::homePath() on Unix, it removes any trailing slash, while KConfig uses $HOME. + return QString::fromLocal8Bit(qgetenv("HOME")); +#endif +} + #define BOOLENTRY1 true #define BOOLENTRY2 false #define STRINGENTRY1 "hello" @@ -73,8 +83,8 @@ QTEST_MAIN(KConfigTest) #define BYTEARRAYLISTENTRY1 QList<QByteArray>() << "" << "1,2" << "end" #define VARIANTLISTENTRY (QVariantList() << true << false << QString("joe") << 10023) #define VARIANTLISTENTRY2 (QVariantList() << POINTENTRY << SIZEENTRY) -#define HOMEPATH QString(QDir::homePath()+"/foo") -#define HOMEPATHESCAPE QString(QDir::homePath()+"/foo/$HOME") +#define HOMEPATH QString(homePath()+"/foo") +#define HOMEPATHESCAPE QString(homePath()+"/foo/$HOME") #define DOLLARGROUP "$i" #define TEST_SUBDIR "kconfigtest_subdir/" @@ -497,6 +507,7 @@ void KConfigTest::testPath() QCOMPARE(sc3.readPathEntry("homepathescape", QString()), HOMEPATHESCAPE); QCOMPARE(sc3.entryMap()["homepath"], HOMEPATH); + qputenv("WITHSLASH", "/a/"); { QFile file(testConfigDir() + "/pathtest"); file.open(QIODevice::WriteOnly | QIODevice::Text); @@ -505,6 +516,8 @@ void KConfigTest::testPath() out << "[Test Group]" << endl << "homePath=$HOME/foo" << endl << "homePath2=file://$HOME/foo" << endl + << "withSlash=$WITHSLASH/foo" << endl + << "withSlash2=$WITHSLASH" << endl << "withBraces[$e]=file://${HOME}/foo" << endl << "URL[$e]=file://${HOME}/foo" << endl << "hostname[$e]=$(hostname)" << endl @@ -516,6 +529,10 @@ void KConfigTest::testPath() QCOMPARE(group.readPathEntry("homePath", QString()), HOMEPATH); QVERIFY(group.hasKey("homePath2")); QCOMPARE(group.readPathEntry("homePath2", QString()), QString("file://" + HOMEPATH)); + QVERIFY(group.hasKey("withSlash")); + QCOMPARE(group.readPathEntry("withSlash", QString()), QStringLiteral("/a//foo")); + QVERIFY(group.hasKey("withSlash2")); + QCOMPARE(group.readPathEntry("withSlash2", QString()), QStringLiteral("/a/")); QVERIFY(group.hasKey("withBraces")); QCOMPARE(group.readPathEntry("withBraces", QString()), QString("file://" + HOMEPATH)); QVERIFY(group.hasKey("URL")); |