summaryrefslogtreecommitdiff
path: root/tests/auto/qgeoareamonitor/logfilepositionsource.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove QtPositioning module from qtlocation.gitIvan Solovev2021-10-271-81/+0
| | | | | | | | | | | | | | | Turns out that our CI does not support repos without any tests. This is treated like an error and leads to integration failure. This patch fixes it by disabling tests in coin/module_config.yaml. This config should be fixed when QtLocation tests are enabled Pick-to: 6.2 Task-number: QTBUG-97084 Change-Id: Ib06e865fe2836806bbbee34345f06b471dd48660 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QGeoAreaMonitorPolling: fix connection check logicIvan Solovev2021-05-201-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | QGeoAreaMonitorPolling class overrides QObject::connectNotify() and QObject::disconnectNotify() to check, if it has any connected objects and decide, if it needs to start/stop position monitoring. Previously it used QObject::isSignalConnected() to perform the check. However this method locks a QObject's mutex, so it's not safe to call it from QObject::disconnectNotify(), because the latter is called from a QObject's destructor, which is also locking a QObject's mutex. Both locks use signalSlotLock static method from qobject.cpp to determine, which mutex to lock. The selection is made based on the object's address. At some rare case this can lead to selecting the same mutex. And as a result we get a deadlock, when trying to lock the same mutex for the second time. This patch updates the logic of the overridden methods in QGeoAreaMonitorPolling. They do not use the QObject::isSignalConnected() method, but implement a custom solution to track the number of connections. This solution requires synchronization, because connectNotify() and disconnectNotify() can be triggered from different threads. Fixes: QTBUG-93420 Fixes: QTBUG-91434 Change-Id: I45ba03e238edc136f1bb42ca6b11a528ab5c22e8 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QtPositioning: refactor tests for QGeoAreaMonitorIvan Solovev2021-05-201-4/+12
| | | | | | | | | | | | | | | | | The tst_QGeoAreaMonitorSource test can randomly hang on some CI configurations (gcc-armv7 and new macOS 11.1 arm). It heavily uses the LogFilePositionSource, which reads NMEA data from file. This patch is an attempt to minimize file I/O by reading the file only once, and providing the cached file contents to the position source instance using QList<QByteArray>. This minimizes file I/O for the test, and also allows to tune the timeouts to reduce the total execution time. Task-number: QTBUG-91434 Change-Id: Id83647aee71d8435ea60c2f07a52790a3fc28e34 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QtPositioning: remove QGeoPositionInfoSource::updateTimeout signalIvan Solovev2021-01-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | A new Error::UpdateTimeoutError enum value is introduced instead. An errorOccurred() signal with this value is used to notify about update timeouts. As a result, an updateTimeout() signal is also removed from QML PositionSource object (QDeclarativePositionSource C++ class). It's also replaced by the sourceErrorChanged() signal with PositionSource.UpdateTimeoutError error value. Apart from that - several more warnings in the unit tests are fixed. [ChangeLog][QtPositioning][Important Behavior Changes] Removed QGeoPositionInfoSource::updateTimeout() signal. Use QGeoPositionInfoSource::errorOccurred() with a new Error::UpdateTimeoutError value instead. Removed PositionSource::updateTimeout() signal from QML. Use PositionSource::sourceErrorChanged() with a new PositionSource.UpdateTimeoutError value instead. Task-number: QTBUG-90491 Change-Id: I7458382a5cb7fdea192b3924baf9e86ee28d1028 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* QtPositioning: get rid of warningsIvan Solovev2021-01-221-7/+7
| | | | | | | | | | Fix warnings in QtPositioning sources. These are mostly the warnings regarding a missing "override" keyword in unit tests. Task-number: QTBUG-90491 Change-Id: I6ca676de0733767d4b85353670103ad5a8d60688 Reviewed-by: Juha Vuolle <juha.vuolle@insta.fi> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Updated license headersAntti Kokko2016-01-201-17/+12
| | | | | | | | | | | From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) Change-Id: Ic9ed595cc04b1fbbefb8ec8cac20c1480681857a Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Qualify positioning headers when including them from elsewhereUlf Hermann2015-03-171-1/+1
| | | | | | | | | | | | | | | There are some corner cases in which you cannot rely on qmake to generate module-specific include directives for the compiler when building different parts of the same module. The rules on this are complicated and it's easy to make mistakes. Qualified includes are also locatable without module-specific include directives. It's generally a good idea to qualify includes from the same module but a different library in order not to rely on qmake's magic too much. Change-Id: I8703116c7c5c898394d7f393630cbfa655174605 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* Update contact URL in all license headers to qt.ioAlex Blasche2015-02-181-1/+1
| | | | | Change-Id: Ia1e333be7fec8898de609d9b9303b1ad7687632e Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* Update BSD and LGPLv2.1 licensesAlex Blasche2015-02-181-3/+3
| | | | | | | | - Removes subsidiary extension from Qt Company - Replaces remaining occurrences of Digia in BSD and LGPLv2.1 Change-Id: I7467a6744af7d1c3aef3c29118f219399162a18c Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* Update all LGPLv2.1 license headers in source to latest versionAlex Blasche2015-02-151-4/+4
| | | | | | | | | | | This affects all QtPositioning related code and the test code in the entire repository. The Qt Company is set as new copyright owner and the copyright year is bumped to 2015. Change-Id: Iee0e990680683c20f5920e49cc1063ea9349e2cd Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Update license headers and add new license filesAntti Kokko2014-08-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: Iedee2507ab1bd46788409a98505d7be510253110 Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
* Improve area monitoring API.Alex Blasche2013-09-171-0/+79
1.) QGeoAreaMonitor renamed to QGeoAreaMonitorSource 2.) Add new QGeoAreaMonitorInfo data type encpsulating individual areas to be monitored 3.) Port positionpoll plug-in to new features 4.) Make positionpoll monitor thread safe 4.) Extend and fix the QGeoAreaMonitor unit test 5.) Fix documentation. Task-number: QTBUG-31711 Change-Id: Icfc982de4753d2f43cb4d15c234eb7b7c039a0c4 Reviewed-by: Alex Blasche <alexander.blasche@digia.com>