Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting timeout to Qt Test

Tags:

c++

testing

qt

I'm using Qt Test, for write unit tests for some computing heavy algorithms. The process uses a considerable amount of time, and when is run in a older computer, the process fails because a timeout like this:

********* Start testing of KnotTest *********
Config: Using QtTest library 5.6.2, Qt 5.6.2 (i386-little_endian-ilp32 shared (dynamic) release build; by MSVC 2013)
PASS   : MyTest::initTestCase()
QFATAL : MyTest::test_benchmark() Test function timed out
FAIL!  : MyTest::test_benchmark() Received a fatal error.
Unknown file(0) : failure location
Totals: 1 passed, 1 failed, 0 skipped, 0 blacklisted
********* Finished testing of KnotTest *********

How can set a custom timeout for the test program generated?

like image 882
Checo R Avatar asked Mar 07 '17 18:03

Checo R


2 Answers

You can override the timeout using an environment variable called QTEST_FUNCTION_TIMEOUT. The timeout must be specified in milliseconds. By default, Qt uses a timeout of 300000 milliseconds (5 minutes).

This environment variable is undocumented, so I can't guarantee that it will continue to be present in future versions of Qt.

As an aside, you can programmatically set environment variables using qputenv:

http://doc.qt.io/qt-5/qtglobal.html#qputenv

like image 116
RA. Avatar answered Nov 08 '22 04:11

RA.


In QtCreator you can change the default timeout in

Tools -> Options -> Testing -> General : Timeout

See also "Building and Running Tests" in the following link:

http://doc.qt.io/qtcreator/creator-autotest.html

like image 34
Toke Nielsen Avatar answered Nov 08 '22 06:11

Toke Nielsen