aboutsummaryrefslogtreecommitdiff
path: root/autotests
AgeCommit message (Collapse)Author
2019-08-28GIT_SILENT: use QLatin1StringLaurent Montel
2019-08-07Security: remove support for $(...) in config keys with [$e] marker.David 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
2019-08-06autotests: mkpath ~/.qttest/configDavid Faure
so that the test doesn't fail after `rm -rf ~/.qttest`
2019-04-24Add Notify capability to KConfigXTKai Uwe Broulik
Lets you specify Notifiers= in .kcfg for config entries that should be written with Notify flag, i.e. announce the change to KConfigWatcher Differential Revision: https://phabricator.kde.org/D20196
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-15kconfig_compiler: new kcfgc args HeaderExtension & SourceExtensionFriedrich W. H. Kossebau
Summary: When using kconfig_compiler generated sources in projects where the used file extensions for C++ files are not ".h" and/or ".cpp", the include for the generated header looks a bit alien to the project, as well as the generated source file if one looks closer at it. This code adds new optional flags HeaderExtension & SourceExtension which can be used to control the file extensions used for the generated files. Test Plan: All unit tests and the new test_fileextensions pass, existing projects using kcfg without & with the new flags build fine. Reviewers: #frameworks, apol Reviewed By: apol Subscribers: apol, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D19565
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
2019-01-10kconfig_compiler: delete the assignment operator and copy constructorAlbert Astals Cid
Summary: of the generated class that has a pointer and raw copy would be bad. Those generated classes are internal and nobody would probably have this, but being safe never hurts Reviewers: vkrause Reviewed By: vkrause Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D18136
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-09-14Port deprecated method + use strict compile flagsLaurent Montel
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-05-16KConfigCompiler_Test: Update test_signal.h.ref to follow the generated fileMaximiliano Curia
Summary: Since "Use override" (3985f2a0) kconfig_compiler.cpp generates usrSave with override instead of Q_DECL_OVERRIDE. This causes the KConfigCompiler_Test to fail [1], as the reference file of the test was not updated. [1]: https://build.kde.org/job/Frameworks%20kconfig%20kf5-qt5%20SUSEQt5.10/32/ Reviewers: #frameworks, mlaurent Reviewed By: mlaurent Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D12892
2018-04-06Fix autotestLaurent Montel
2018-03-11Remove not necessary QtCore and coLaurent Montel
2017-12-06Deprecate KDesktopFile::sortOrder()Alexander Volkov
Summary: The SortOrder key is deprecated by the Desktop Entry Specification: https://standards.freedesktop.org/desktop-entry-spec/latest/apc.html Reviewers: dfaure, #frameworks Reviewed By: dfaure Subscribers: #frameworks Tags: #frameworks Differential Revision: https://phabricator.kde.org/D9224
2017-12-06Fix the result of KDesktopFile::sortOrder()Alexander Volkov
Summary: KDesktopFile::sortOrder() returns the value of SortOrder key as a string whithout parsing it as a list. But according to Desktop Entry Specification https://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html it's type is "string(s)", i.e. the same type as the type of Actions and MimeType keys, and thus it should be read the same way. Reviewers: #frameworks, dfaure Reviewed By: dfaure Subscribers: dfaure, #frameworks Tags: #frameworks Differential Revision: https://phabricator.kde.org/D8689
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
2017-10-26Don't build the kconfig_compiler tests when crosscompilingAleix Pol
Summary: We will be using an external version of it in practice Reviewers: #frameworks, davidedmundson Reviewed By: davidedmundson Tags: #frameworks Differential Revision: https://phabricator.kde.org/D8457
2017-08-08kconfigini: Strip leading whitespace when reading entry values.Michael Pyne
As per the Desktop Entry spec, we strip trailing whitespace from the key when we split an entry into a key/value pair at the '='. Now we also strip leading whitespace from the resulting value like we should. CCBUG:310674 Differential Revision: https://phabricator.kde.org/D7169
2017-08-04Allow to build KConfig without Qt5GuiVolker Krause
Summary: This is particularly useful for cross-compilation, where we only need the kconfig_compiler on the host system. Reviewers: #frameworks, apol, aacid Reviewed By: aacid Subscribers: aacid Tags: #frameworks Differential Revision: https://phabricator.kde.org/D6994
2017-08-01autotests: fix the failures I got here.David Faure
1) some of them can't run in parallel 2) kconfigskeletontest failed due to KSharedConfig being used under the scene (for a year now), and there's probably some QPA or widget style holding a ref (here, not in the CI). Indirectly, simply setting QStandardPaths::setTestModeEnabled(true) fixes this since KSharedConfig will then not share the instance with the non-test-mode-enabled instance.
2017-05-26tests: use QIODevice::Text in kconfigcompiler_testPino Toscano
This way, different newline endings in OSes are handled as \n when reading, and thus fixing the comparison on non-\n OSes.
2017-05-26tests: use right QProcess API in kconfigcompiler_testPino Toscano
Use the QProcess::start() variant with explicit (empty, in this case) arguments, so the program string is not parsed as shell command, thus preserving paths with spaces as such.
2017-04-25Fix relativePath calculation in KDesktopFile::locateLocal()Wolfgang Bauer
The "dir" and "path" variables were obviously swapped here by mistake. This resulted in the relativePath always being empty, and made the function return "~/.local/share/" (or "~/.config/") instead of the correct path. BUG: 345100 FIXED-IN: 5.34.0 Differential Revision: https://phabricator.kde.org/D5502
2017-02-04Fix linking on Windows: don't link kentrymaptest to KConfigCore.David Faure
It's not needed, this is purely a test for the standalone KEntryMap class.
2017-02-04Don't export KEntryMapStephen Kelly
It is internal.
2017-02-04Don't link against kconfigdata.cpp in the kentrymaptest unit test.Matthew Dawson
Due to eab822e206207c51d47f0f0da109caacfbee4e2f, KEntryMap is now an exported type. As such it is no longer needed to link in kconfigdata.cpp into this test.
2017-01-16Prefer nullptr over Q_NULLPTRKevin Funk
2017-01-15Add python bindingsStephen Kelly
2017-01-09autotest: add expected failure with Qt 5.8.0, with runtime check.David Faure
+ simplify using recursive-remove and testmode.
2017-01-08This should now use nullptrDavid Faure
2017-01-06Generate an instance with KSharedConfig::Ptr for singleton and argMartin Gräßlin
Summary: In case a kcfg with arg="true" was used and singleton the static instance method only accepted a QString config name. This made it impossible to combine a singleton config with an already existing and open KSharedConfig::Ptr. With this change an overloaded instance method is added which takes a KSharedConfig::Ptr as argument. The private ctor, though, only takes a KSharedConfig::Ptr and the instance method taking a QString argument uses KSharedConfig::openConfig on the config file name. The change is source-incompatible in the following situation: * kcfgfile arg="true" * Singleton = true * Inherits is specified In this situation the previous revision created an instance method with a QString argument and passed that to the parent constructor. This is not in accordance with the documentation. Any user of this behavior was relying on a bug. With this change now the call to the parent constructor carries a KSharedConfigPtr. Test Plan: kconfigcompiler tests still pass and a config with singleton and arg="true" generates the code as I need it Reviewers: #frameworks, dfaure, mdawson Differential Revision: https://phabricator.kde.org/D3690
2017-01-02Q_ENUMS -> Q_ENUM and Q_FLAGS -> Q_FLAGAlbert Astals Cid
REVIEW: 129745
2016-12-16kconfig_compiler: Use nullptr in generated codeKevin Funk
Reviewers: #frameworks, davidedmundson Reviewed By: davidedmundson Differential Revision: https://phabricator.kde.org/D3702
2016-12-07Revert "Generate an instance with KSharedConfig::Ptr for singleton and arg"David Faure
This reverts commit cd4e6504dfbdface00037625f0cedda511e6d839. As suggested by Martin on release-team@kde.org, given that it breaks SC.
2016-12-07Revert "[autotest] Fix stupidity"David Faure
This reverts commit 71f16741a0288d8587876dcc7dbb33ba8f00546a.
2016-12-02[autotest] Fix stupidityMartin Gräßlin
Sorry.
2016-12-02Generate an instance with KSharedConfig::Ptr for singleton and argMartin Gräßlin
Summary: In case a kcfg with arg="true" was used and singleton the static instance method only accepted a QString config name. This made it impossible to combine a singleton config with an already existing and open KSharedConfig::Ptr. With this change an overloaded instance method is added which takes a KSharedConfig::Ptr as argument. The private ctor, though, only takes a KSharedConfig::Ptr and the instance method taking a QString argument uses KSharedConfig::openConfig on the config file name. This provides full API compatibility and at the same time allows to use KSharedConfig in addition to the arg name based variant. Test Plan: kconfigcompiler tests still pass and a config with singleton and arg="true" generates the code as I need it Reviewers: #frameworks Differential Revision: https://phabricator.kde.org/D3386
2016-11-12kconfig_compiler - generate code with overridesAllen Winter
REVIEW: 129382
2016-10-31Make kconfig_compiler autotests use the KCONFIG_ADD_KCFG_FILESAleix Pol
Summary: Instead of having an odd fake of it. Will help some required refactorings and already showed some issues, fixed by this patch, namely: - don't use string(regex replace) to extract a string from another string. in case it doesn't match it will offer the whole content which is never what we want. - messages(ERROR), the correct parameter is FATAL_ERROR, cmake understands "ERROR" as mere output string - turn the macro into a function, otherwise 2 calls in the same subdirectory are dangerous. CCBUG: 371562 Test Plan: tests still pass, projects that use the macro still build Reviewers: #frameworks, dfaure Reviewed By: dfaure Subscribers: dfaure Differential Revision: https://phabricator.kde.org/D3178
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