aboutsummaryrefslogtreecommitdiff
path: root/autotests/kconfigtest.cpp
AgeCommit message (Collapse)Author
2019-08-07Security: remove support for $(...) in config keys with [$e] marker.v5.61.0-rc2v5.61.0David Faure
Summary: It is very unclear at this point what a valid use case for this feature would possibly be. The old documentation only mentions $(hostname) as an example, which can be done with $HOSTNAME instead. Note that $(...) is still supported in Exec lines of desktop files, this does not require [$e] anyway (and actually works better without it, otherwise the $ signs need to be doubled to obey kconfig $e escaping rules...). Test Plan: ctest passes; various testcases with $(...) in desktop files, directory files, and config files, no longer execute commands. Reviewers: mdawson, aacid, broulik, davidedmundson, kossebau, apol, sitter, security-team Reviewed By: mdawson, davidedmundson Subscribers: ZaWertun, rikmills, fvogt, ngraham, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D22979 (cherry picked from commit 5d3e71b1d2ecd2cb2f910036e614ffdfc895aa22)
2019-04-01Add Notify capability to revertToDefaultKai Uwe Broulik
This enables KConfigWatcher to detect those changes, too. Differential Revision: https://phabricator.kde.org/D20039
2019-03-03[Kconfig] Compile without foreachLaurent Montel
Summary: compile without foreach Test Plan: Unittest Ok as previously Reviewers: dfaure Reviewed By: dfaure Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D19326
2019-02-20Write valid UTF8 characters without escaping.Jos van den Oever
Summary: commit 6a18528 introduced escaping of bytes >= 127 to ensure that KConfig files are valid UTF8. The simplistic approach with a cutoff results in many escaped bytes where it is not required. Especially non-western configuration files would have many escapes. This commit fixes that by only escaping bytes that are not valid UTF8. BUG: 403557 FIXED-IN: 5.56 Test Plan: ninja && ninja test Reviewers: dfaure, arichardson, apol, #frameworks, thiago Subscribers: rapiteanu, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D19107
2018-12-28Fix build without D-BusVolker Krause
2018-12-19Deduplicate reference valueJos van den Oever
2018-12-19Remove unneeded qWarningJos van den Oever
2018-12-18Escape bytes that are larger than or equal to 127 in config filesJos van den Oever
Summary: UserBase tells me that KDE configuration files are encoded in UTF-8. https://userbase.kde.org/KDE_System_Administration/Configuration_Files In practice some *rc files have bytes outside that encoding. In my home directory I found two files that are not valid UTF-8. I searched with find ~/.config/ -name '*rc' -exec file {} + which gives these exceptions: akonadiconsolerc: Non-ISO extended-ASCII text, with very long lines kmail2rc: Non-ISO extended-ASCII text, with very long lines In kmail2rc, the offending fields are [AttachmentView]/State [CollectionFolderView]/HeaderState Both are QByteArray values saved from QHeaderView::saveState(). In the instance I found, the offending bytes were 0x81 and 0x84. akonadiconsolerc had way more of these values. All seem related to saving widget state and hence probably QByteArrays. The written QByteArray values look very strange. The bytes in the non-printable ASCII range are written as \xXX but the values above 127 are written literally. The encoding is done by KConfigIniBackend::stringToPrintable. It does not currently escape bytes that are larger than or equal to 127. Reviewers: dfaure, arichardson, apol Reviewed By: apol Subscribers: apol, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D17651
2018-10-10Set explicit arg type in QCOMPAREDavid Edmundson
2018-10-10Add mechanism to notify other clients of config changes over DBusDavid Edmundson
Summary: Intention is not to create a registry like system, but to replace KDElibs4Support::KGlobalSettings and to replace other system settingss -> some app communication in a more generic way. writeEntry gains an additional flag Notify which if set, will notify clients of what has actually changed when we sync. Rationale to put this into KConfig was so that we could have everything batched and sychronised to the file sync and to get the fine detailed exposure of what has actually changed which we don't get with a file watcher. Default behaviour remains identical without any broadcast messages. As it is a new dependency it is purely optional and anything referencing DBus is not in the public API. Our deployment on platforms without DBus tend to be standalone applications anyway. Test Plan: Attached unit test Reviewers: broulik, dfaure Reviewed By: broulik, dfaure Subscribers: dfaure, broulik, zzag, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D13034
2018-09-28 Fix issue when reading path listsAleix Pol
Summary: They were not being split properly. Test Plan: Tests pass, including the new one. Reviewers: #frameworks, dfaure Reviewed By: dfaure Subscribers: dfaure, anthonyfieroni, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D14162
2018-08-08Fix cleanup of kconfigtest kdeglobalsDavid Edmundson
Summary: We expand the path of kdeglobals to ~/.qttest/kconfigtests/../kdeglobals which works during the test, but this cleanup is run both on startup and after removing ~/.qttest/kconfigtests at which point the expansion fails. Test Plan: Ran test, looked at qttest dir. It had cleaned up Reviewers: broulik Reviewed By: broulik Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D13032
2018-03-11Remove not necessary QtCore and coLaurent Montel
2017-12-02KConfig: fix autotest on CI with trailing slash in HOME.David Faure
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/
2017-12-02Repair broken test after commit ee2b394599.David Faure
QStringLiteral is latin1, not utf8.
2017-11-30Fix some clazy warningMontel Laurent
2016-09-27Marm test QSKIP when running as root.Evgeniy Sadovnik
The test checks that saving a read-only config file fails. But because root can write into read-only files, the test is failing when running by root. Check for uid when running the test and make it XFAIL if we are running as root. REVIEW: 128916
2016-03-28Add support for get QStandardPaths locations.Sandro Knauß
Inside desktop files we want to reach also data, cache and config home to create files inside these directories. REVIEW: 127462 CHANGELOG: Add support for get QStandardPaths locations inside desktop files.
2015-11-09In KConfigTest::testEntryMap, convert QByteArray with nulls using a char *Matthew Dawson
Due to https://codereview.qt-project.org/#/c/106473/, Qt 5.6 keeps null characters in QByteArray -> QString conversions, which breaks this test as one QByteArray contains nulls. Instead, convert the QByteArray to const char * first, so QString stops at the first null. The actual behaviour of KConfig is unchanged, as internally the conversion always went through a const char *, which avoids creating QStrings with null characters. REVIEW: 126001
2015-08-19unittest fix: compare floats/doubles rather than ↵David Faure
strings-made-from-floats/doubles. Qt 5.5 writes out "123.567001" for 123.567f. No matter, what we want is the roundtrip float-string-float to work, and it does.
2015-05-01disable xdg-specific test on osxDavid Faure
2014-07-01Fix compiler warning due to undefined macroAlex Richardson
2014-07-01Fix reading of XDG style semicolon separated lists with escaped ';'Alex Richardson
Previously the warning "Invalid escape sequence "\;"." would appear and "\;" was replaced with just the backslash as is done for all unrecognized escape sequences. Keep both characters so that readXdgListEntry() works with values containing semicolons REVIEW: 119074
2014-07-01Fix unittest: must sync in main thread for other threads to see the changesDavid Faure
2014-07-01KSharedConfig: move mainConfig and wasTestEnabled to the thread storage.David Faure
This enables the mainConfig optimization in all threads, and ensures the user warning only happens in the main thread. The test-mode-enabled logic is only really useful in the main thread, but it's simpler to just do it in all threads. REVIEW: 118985
2014-06-27Fix build on Visual C++ 2010.Nicolás Alvarez
Visual C++ 2010 throws an internal compiler error trying to compile kconfigtest, since 5f4dc2973f. I couldn't figure out a non-intrusive code tweak that would work around the ICE, so I had to skip compiling this particular initialization code on this particular compiler version, and skip running the test that relies on it (testEnums). The dummy=42 entry is so that the config group isn't empty, which makes testGroupCopyTo and testReparent still run and pass, so we don't need to skip them. REVIEW:118852
2014-06-12Fix locale-aware reading in KDesktopFileMartin Gräßlin
The underlying KConfig used QLocale::name() for getting the locale aware part. But this returns "de_DE" while the desktop files store "de". In addition it constructs a QLocale object instead of using the system locale. This has the advantage that the usage of QLocale::setDafault() gets honored by KConfig. REVIEW: 118564
2014-05-26REVIEW: 118039Thomas Braxton
Simplify KConfigGroup::readEntry/writeEntry. KConfigGroup::readCheck/writeCheck caused some compilers to complain since they were private functions that were being reimplemented outside the class definition. Updated KCONFIGGROUP_DECLARE_ENUM_QOBJECT/ deprecated global functions created in KDE4 times.
2014-05-07Apparently calling readAll() on the temporary file doesn't workAlex Richardson
Open a new QFile for reading after calling close() on the temp file
2014-05-07Test that kconfig always uses native line endings in the created filesAlex Richardson
2014-03-05kconfigtest: write everything into a subdirectoryAlex Richardson
This test keeps deleting the whole ~/.qttest directory. By moving all data into a subdirectory it is now possible to run multiple tests that use kconfig in parallel. REVIEW: 115875
2013-12-18Code reformatted using kde-dev-scripts/astyle-kdelibs.David Faure
Use git blame -w 867e7a5 to show authorship as it was before this commit.
2013-12-18Move kconfig code to the root directory.Jenkins CI