[Development] How to run QtBase autotests on a remote machine?

Stottlemyer, Brett (B.S.) bstottle at ford.com
Thu Apr 12 14:29:02 CEST 2018

On 4/12/18, 2:07 AM, "Development on behalf of Maurice Kalinowski" <development-bounces+bstottle=ford.com at qt-project.org on behalf of Maurice.Kalinowski at qt.io> wrote:

> > > Some tests shall need more than the binary; e.g. data files to act on.
> > 
> [Kalinowski Maurice] 
> Check for testdata or builtin_testdata, I do not recall the precise name right now.
> Basically you can specify whether you want the data to be copied or use qrc to integrate it to the app. The test system then automatically extracts it on the target hardware during execution and uses it.


> Oliver is currently working on getting UWP into it, it shares a lot of concepts with other remote targets. So when we started on it there were a couple of infrastructural things to clarify (like builtin_testdata from above).
> From what I know the other platforms might come at a later point, but should be easier to do, as the technical building blocks are available.

I tested out a different approach, although it is not clear if the above work will end up making it obsolete. I added another subproject to QtCreator to build a headless application/tool that could leverage the code in QtC to parse .pro files and run ssh/scp functions. Given a source and build directory, it could detect the files that should be copied to target move them, then optionally run additional commands over ssh. The idea being that if QtC is smart enough to deploy from the IDE, make the same functionality accessible from the command line.

Unfortunately, QtC doesn’t not have the same binary compatibility constraints of Qt libs, so it seemed to need updates for every new QtC version. IIRC, having it parse the project file with `QT_BUILD_PARTS+=tests` would include the test executables and dependencies. The idea was to have some that ran from the command line and could be integrated with CI, although we haven’t had time to do that integration. It had code paths for Qt modules as well as end-user projects.

If there is interest in making this part of QtC itself, I could push the code (built against QtC 4.4.1) to gerrit for review.


More information about the Development mailing list