summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
...
* | Build-system cleanupDominik Holland2018-09-144-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix PLUGIN_CLASS_NAME in all places and remove PLUGIN_EXTENDS where it is not needed. For all plugins which are provided with the modules, fix the PLUGIN_EXTENDS to match the module name to also deliver the cmake file for these plugins. Renamed the MprisPlugin class name to not clash with the normal plugin name, as this is also used for the cmake filename. This should also fix build errors when trying to create the cmake files in non-existent folders. Change-Id: I102019fab327273903c8c378595c06a25964cfe8 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* | Make it possible to set the result for QIviPendingReply<void> from QMLDominik Holland2018-09-142-1/+37
| | | | | | | | | | | | | | | | The type check prevented this before. Now the type is ignored for QIviPendingReply<void> when used from QML. Change-Id: Iabdea29ba8d7af28f1b3e273260f0af013609253 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* | Improve the default_value annotation parserDominik Holland2018-07-172-0/+24
| | | | | | | | | | | | | | | | | | | | | | To be able to also add default values for models, the parser was a little bit restructured to now also support default values for structs and by that also support nested types e.g. lists. Task-number: AUTOSUITE-583 Change-Id: I09f3e278662105f5cb9d237747f732492cea7f22 Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* | Rename the QIviSearchAndBrowseModelItem to QIviStandardItemDominik Holland2018-07-092-62/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | The QIviStandardItem should be used as a base for all autogenerated structs and also within the QIviPagingModel and all derived class. The previous name was too specific for this usecase. Forward headers for the old name and a typedef are created to make the transition as smooth as possible. Task-number: AUTOSUITE-584 Change-Id: I71b6cccc1c4f4317c6c9ea327c7672698f7dbe55 Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* | Make the QIviProxyServiceObject class publicDominik Holland2018-07-062-4/+46
| | | | | | | | | | | | | | | | | | In addition the class is now also documented, tested and now also support to take a QHash<QString, QIviFeatureInterface*> as a hardcoded mapping. Change-Id: Ibe73334c97bd4792f763f8298bbb43027693c512 Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* | Add a generic backend() function to QIviAbstractFeaturePrivateDominik Holland2018-07-051-11/+1
| | | | | | | | | | | | | | | | | | | | | | | | Using this function in the derived classes makes the code much cleaner and less error-prone as always interfaceName() is used to get the backend object, which makes sure deriving the interface works as well. Also get rid of the disconnectServiceObject reimplementation where possible and document when it makes sense to reimplement this function. Change-Id: I05ade6e8ca8d3829cabcbbdf312db4b46a25044d Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* | Add new (un)registerInstance functions to the QIviPagingModelInterfaceDominik Holland2018-06-263-1/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | These functions help to maintain the state in the backend implementations. The registerInstance function is called for every new instance of a model using this backend. The unregisterInstance is called once the model instance is destroyed and the all data for this model can be cleanup in the backend as well. Task-number: AUTOSUITE-435 Change-Id: I2390c4fd423acb40cd50c6a2d2ff22c15aef15ab Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* | Use the QIviPagingModel as base class in the QIviSearchAndBrowseModelDominik Holland2018-06-191-17/+35
| | | | | | | | | | | | | | | | | | This also refactores the QIviSearchAndBrowseModelInterface to reuse the QIviPagingModelInterface. Task-number: AUTOSUITE-435 Change-Id: I52dba35a71fe5c6df1b83d56b6d145a9dfb115de Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* | Consolidate the Capabilities flag from QIviSearchAndBrowseModel and ↵Dominik Holland2018-06-192-24/+24
| | | | | | | | | | | | | | | | | | | | | | | | QIviPagingModel The flag can be used by both classes and might be extended in the future. Because of that we moved it into a new QtIviCoreModule class, similar to the Qt class and the QtIviVehicleFunctionsModule class. Task-number: AUTOSUITE-420 Change-Id: I4dfa7f17473aec8cc412ab22765706ea3c3085f1 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* | Add the QIviPagingModel classDominik Holland2018-06-194-0/+557
|/ | | | | | | | | | | | | | The QIviPagingModel is reusing the code from the QIviSearchAndBrowseModel and implements only the interface for retrieving the content of a model using "Paging". This commit just adds the new class. New functionality will be added in following commits, as well as using the new class as the base for QIviSearchAndBrowseModel. Task-number: AUTOSUITE-420 Change-Id: I45f068efcb1d76e566556ee6ff54f429dc6b28da Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Use a different qface module nameDominik Holland2018-05-301-1/+1
| | | | | | | | | | The module name is used to define the export macro needed on windows. Currently only the last part is used, which means it is QT_EXPORT_SIMULATOR This clashes with the export macro of the qtsimulator lib. Task-number: AUTOSUITE-505 Change-Id: I215f0da54dec503039c399c37a020477ada42eb7 Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* Move the simulator features into it's own test folderDominik Holland2018-05-2411-16/+142
| | | | | | | | | | Previously it was part of the noprivate folder and this is now just using an additional annotation file. The new folder is also needed because the test is now using a special qface file, which only contains the supported features of the simulator Change-Id: I738e2db73b662049489e45f47a859bd77ce78d88 Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* Fix override warnings in the qtro template autotestDominik Holland2018-05-241-2/+2
| | | | | Change-Id: Ie82a4ac11873db1d119638713d22fe0c0329924d Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* Add support for additional annotation filesDominik Holland2018-05-187-59/+15
| | | | | | | | | | | | | | The ivigenerator as well as its qmake integration now support to pass additional annotation files. This can be useful when annotations only need to be applied for a specific part, e.g. the backend plugin. This change also makes use of the feature in the autotests which now use a no-private.yaml annotation file for testing the same qface file as we use for our normal generation tests. Task-number: QTAUTO-848 Change-Id: Ib626775d2339ebf2002bc689da8303e7caf6edfa Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* ivigenerator: Fix the Q_PROPERTY NOTIFY part for uppercase propertiesDominik Holland2018-05-172-0/+3
| | | | | | | Also added a all uppercase property to our autotest qface files Change-Id: Ibd76d5bc8e025494aee3675ffa69c6badb4d8d5a Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* Fix plugin loading with different configurationsDominik Holland2018-05-033-7/+17
| | | | | | | | | | | | | | | | | Previously we stopped loading a plugin when the configuration of QtIviCore didn't match the plugin version. E.g. a release build loading a debug plugin. This lead to problems when the plugin is only available in a different configuration. The new behavior tries to load the plugins with a matching configuration, but also accepts different configurations as a fallback Task-number: AUTOSUITE-288 Change-Id: Ia6d5ddf74b7b2f04fec31244b7f7db1f5c8de555 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Fix the QIviServiceManager singleton ownershipDominik Holland2018-04-271-1/+27
| | | | | | | | | This makes sure the QIviServiceManager doesn't get deleted from the QQmlEngine when it gets destroyed Task-number: QTAUTO-843 Change-Id: Ie1aae9d9cdefaf443db35eed1483f3b6721e962f Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Fix the qtro template autotestDominik Holland2018-04-251-2/+3
| | | | | | | start the server after the SignalSpy is created Change-Id: If7425a6d44ea8bd429a97bd64af7b68305e4eeeb Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* Fix problems when building for test coverageDominik Holland2018-04-235-18/+3
| | | | | | | | | | | | | The coverage target needs to be available in all Makefiles not just in debug configurations Use qtLibraryTarget for all plugins in the servicemanager autotest. This will automatically add the needed postfixes for debug and release plugins Change-Id: I887e27ce1cc514d74cbaef97b02eeb935939a7cf Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Clazy and clang-tidy fixesDominik Holland2018-04-192-3/+5
| | | | | | | Applied to all modules and the plugins Change-Id: Id1dd9adb4a9f5bdcd452242785439e118d63ef10 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Fix bug with qtro-backend's pending repliesAntti Hölttä2018-04-091-0/+4
| | | | | | | | Calling a method through a remote backend now returns directly a failed reply if the client-server connection is not valid. Change-Id: I7be9dc5c71f111497ed03547bf1c0bc2457f9f43 Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Add config check for remote objects generatorAntti Hölttä2018-03-291-1/+6
| | | | | | | | | Add a configure check that disables ivigenerator's qtro features when the qt's remoteobjects module is not available. Task-number: QTAUTO-850 Change-Id: I43eddc59d84d28f5181f9ebf039eef49fbbde8d2 Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Update the QIviSearchAndBrowseModel to use the new QIviPendingReplyDominik Holland2018-03-283-19/+26
| | | | | | | | | Because of this, the indexOf function is now easier to implement and works from QML and C++. Task-number: QTAUTO-838 Change-Id: I094511abf8f55fd9728aa94e552dcc79f9bf0b58 Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* Use the new QIviPendingReply class in the autogenerator templatesDominik Holland2018-03-232-6/+57
| | | | | | | | | | | | | Every method inside a qface file will now return a QIviPendingReply. This also changes the signature of the QIviVehicleFunctions module and its backend implementations. Also updated the window_qml example to make use of the new returned QIviPendingReplies from the open() and close() calls. Task-number: QTAUTO-837 Change-Id: Icf8a31fcd94630254f71b0c4fb2e1ef4296591af Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* Fix backend initialization issuesAntti Hölttä2018-03-214-37/+78
| | | | | | | | | Fix initialization issues in generated backend classes and also in the QIviAbstractFeature class. Add initialization check to the autogenerated test. Add initialization and reconnection tests for remote object features. Change-Id: I5dbb179c612da721676a4b4959d8626a237f479a Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Use QMAKE_PROJECT_NAME to mark all test executables for QtCreatorDominik Holland2018-03-2013-4/+17
| | | | | | | | | | | QtCreator uses the pro file name for selecting a runnable target. In this list it's not easy to spot which executables are autotest and which are real runnable tools/examples. Adding QMAKE_PROJECT_NAME to all autotests pro files makes sure they are prefixed with tst_ as the excutable itself is as well. Change-Id: I13f21e14eccb392e4bfd14124ce483720a1f22ac Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Add the QIviPendingReply classDominik Holland2018-03-163-0/+530
| | | | | | | | | | | | | | The QIviPendingReply class is templated to provide a typesafe C++ API, but at the same time being usable from QML directly. For C++, signals are provided to inform the user that the reply has succeeded or failed. From QML one can either use the signals or using the "then" method to register JavaScript callbacks very similar to a JavaScript Promise. As the class provides the "then" method, it should also be convertable into a real JavaScript Promise. Task-number: QTAUTO-836 Change-Id: I030c70a964b48a5083ecef7f527d8a0b1c85f137 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Fix the custom signals and slots in qtro templatesAntti Hölttä2018-03-158-26/+231
| | | | | | | | | | | | | Fix the custom slot implememtation in qtro templates. Calling a slot on a remote object replica causes an asynchronous call and returns a pending result object. The current backend slot implementation merely waits for the call to finish before returning to the code that uses it. This behavior will change when all method calls are made asynchronous. Also add tests for passing a remote objects initial values to newly connected clients. Change-Id: I278bfc583a657e8a30265af8ec6c02e178f0f245 Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Fix linker errors with older Qt versionsDominik Holland2018-03-091-6/+6
| | | | | Change-Id: I33e72e89d04732b798257a6fa663dcafd42af3b9 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Add a reload method to QIviSearchAndBrowseModelDominik Holland2018-03-091-0/+30
| | | | | | | | | | | The reload() method will reset the model and fetch the data again from the backend. This also fixes some problems, which resulted in duplicated entries during the initial fetch. Change-Id: I9741f23165a2da7a1587a2893f891a386d2cbabe Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Add qtro templates that rely on the qt's replica compilerAntti Hölttä2018-03-094-9/+4
| | | | | | | | | | Add qtro templates that rely on the qt's replica compiler instead of homemade replica and source templates. IVIGenerator generates .rep files that are passed further to the replica compiler. Task-number: QTAUTO-849 Change-Id: I2bc3bb1899386028b9e99ac991f679b56544e3ca Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Improve the DataChanged mode of QIviSearchAndBrowseModelDominik Holland2018-03-091-0/+38
| | | | | | | | | | Previously the DataChanged mode didn't work as expected when the View jumped to end of the list without scrolling. The model now remembers what chunks have been fetched and fetches the needed chunk once a item in this chunk needs to be accessed. Change-Id: I268f00aeb8d8ec204e8c16d54f2759792eea3117 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Add autotest for the ivigenerator's qtro-featuresAntti Hölttä2018-03-0514-2/+620
| | | | | | | | | Add autoest for ivigenerator's qtro-features. Test program runs the server and client in the same process and tests the default values, initializations and the communication. Change-Id: I57176ad86b6b9f6f0a2ecbabe51430237c6dd124 Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Merge remote-tracking branch 'origin/5.9' into devDominik Holland2018-02-261-1/+1
|\ | | | | | | Change-Id: Ifa81cd2a44e492204c19e395300cd0e95cbebe92
| * Always generate class names with a uppercase first letter for modulesDominik Holland2018-02-141-1/+1
| | | | | | | | | | | | | | | | | | The module names within qface are most of the time lowercase, which lead to lowercase class names and also registering a lower case QML singelton, which is not allowed. Change-Id: Ie52bf5bf6c564dab9eabc6040859f70be6cd3cb7 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* | Only return the actual error message in QueryParser::errorString()Dominik Holland2018-02-231-1/+1
| | | | | | | | | | | | | | | | Previously also the column and additional text was added. This can lead to problems when using it inside a QML error. Change-Id: I6c54526fe29538b0ad51528f86dfb9fc89231db1 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* | Expose the QIviServiceManager to QMLDominik Holland2018-02-211-4/+14
|/ | | | | | | | Also add more metadata to the model, like the plugin name and the available interfaces Change-Id: I93e4f0139c862c3988b2509e398ae4ed8d3c6018 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Cleanup unneeded filesDominik Holland2018-02-076-1495/+0
| | | | | Change-Id: I582e8c4c9aa137c6497594433ab751cd961d05f4 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Add an autotest generator templateDominik Holland2018-02-079-3/+45
| | | | | | | | | | | | | | | | | The template generates a basic autotest for the generated API and the backend interfaces. It tests the following: - default behavior when no or an invalid backend is connected. - Changes from the backend are populated to the frontend API - Changes in the frontend are populated to the backend API The test are generated and executed for the autogenerator test as well as for the ivivehiclefunctions module Task-number: QTAUTO-365 Change-Id: Ie7ac78db821d930dca99c3e7db95c1d373460f85 Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* ivigenerator: Fix a problem generating signals without argumentsDominik Holland2018-02-061-0/+5
| | | | | | | Also added more signals to the generation autotest Change-Id: Iccbd16741ce8a4ecdbf69b04c0bd0b7357a652c2 Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* Add support for static pluginsDominik Holland2018-02-0211-3/+247
| | | | | | | | | | | Static plugins are now also considered when searching for backend interfaces. Especially for static plugins it is now also supported to use the "simulation" key in the plugin metadata for adding simulation backends. Task-number: QTAUTO-402 Change-Id: I311e649b55549d4fb3ba9db1d520665a8b51f4b0 Reviewed-by: Antti Hölttä <ahoelttae@luxoft.com>
* Update all Pelagicore copyright headers to 2018Dominik Holland2018-01-1620-20/+20
| | | | | Change-Id: I408c855d9619e20f481a592dc1f514b90af642f9 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Add fixes that enable the use of struct members in interfacesAntti Hölttä2017-11-242-0/+19
| | | | | | | | | | Add fixes for using structs in interfaces. Previously struct members for interfaces would not work because of missing includes. Add a filter function to the generator that lists structs an interface or a struct are depending on. Extend the echo testcase to use structs in more complex ways. Change-Id: I144903ba487a845d1182f90c4318e1187986a7fd Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Make sure QIviServiceObject returns a unique idDominik Holland2017-09-221-1/+1
| | | | | | Task-number: AUTOSUITE-54 Change-Id: I78d272b6fbeac91d16e34a1253dd53d2550d6a6c Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* Integrate qtsimulator support for the control_panelDominik Holland2017-09-191-2/+7
| | | | | | | | | | | | | | | | | | | | | | The control_panel acts as a server and the backend connects to it. Once a connection is established the control_panel will push it's initial values to the backend and from there all properties and signals are synchronized. Currently only one connection is supported. The qtsimulator support is detected during configure time and based on that the new "simulator" feature is enabled. The ivigenerator now has a configuration file, which is used to define which features it supports. This is used to be able to generate qtsimulator support into the simulation backends only if the qtsimulator is available and the feature is enabled. Task-number: QTAUTO-441 Task-number: QTAUTO-442 Change-Id: I5045d21f92176fed7d9025850b70f4759c9232c2 Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
* ivigenerator: Also test the control_panel generation of signalsDominik Holland2017-09-191-0/+4
| | | | | Change-Id: Ie4ed4661b178b7c84cbd1ec01e0f11f021d38928 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Add the control_panel to the autogenerator testsDominik Holland2017-09-153-0/+15
| | | | | | | | | Fixed it to make it work also for unzoned interfaces and fixed a issue when no qml_name is set for the interface, which caused the QML and the C++ backend to have the same name and cause weird issues. Change-Id: I0d90fb56b60ff17eb37b41412c1d33a8e628df43 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix for disabling generator completelyMike Krus2017-09-121-2/+4
| | | | | | | Cannot build ivivehiclefunctions at all or have tests for ivigenerator Change-Id: I24291bfa4fa1074106ab0c9e29ba1301cd93e74c Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
* Fix the echoInterfaceBuilder in the ivigenerator autotestDominik Holland2017-07-271-1/+1
| | | | | | | The autogenerated plugin name changed to echoPlugin Change-Id: Ib5d142e5644817419ba8e2591e388f408c2d0f51 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Change the QIviVehicleFunctions module to be autogeneratedDominik Holland2017-07-271-1/+1
| | | | | | | | | Disable the vehiclefunctions tests and examples until they are ported to the new API. Task-number: QTAUTO-297 Change-Id: Ief94dadfe60efa0afbbc73400450382db5a99004 Reviewed-by: Mike Krus <mike.krus@kdab.com>