Add a configuration test for: "qt5 demo: add example of unit testing using QtTest"

This commit is contained in:
Thomas Nagy 2019-06-06 17:57:33 +02:00
parent 9df72c7898
commit 1ade97f5c3
No known key found for this signature in database
GPG Key ID: 49B4C67C05277AAA
1 changed files with 38 additions and 12 deletions

View File

@ -16,6 +16,31 @@ def configure(conf):
conf.load('compiler_cxx qt5 waf_unit_test')
#conf.env.append_value('CXXFLAGS', ['-g']) # test
# These tests would run on Ubuntu but not on other platforms
conf.check(
define_name = 'XYZ_QT5_TESTS',
mandatory = False,
execute = True,
features = 'qt5 cxx cxxprogram',
includes = '.',
defines = 'QT_WIDGETS_LIB',
use = 'QT5CORE QT5GUI QT5WIDGETS QT5TEST',
msg = 'Checking whether Qt5 tests can run',
fragment = '''
#include <QtTest/QtTest>
class TestQt5Test: public QObject {
Q_OBJECT
private:
void testGui() {
QWidget *widget = NULL;
QTest::mouseClick(widget, Qt::LeftButton, Qt::NoModifier, QPoint(5,5), 0);
}
};
QTEST_MAIN(TestQt5Test)
#include "test.moc"
''')
def build(bld):
# According to the Qt5 documentation:
# Qt classes in foo.h -> declare foo.h as a header to be processed by moc
@ -33,19 +58,20 @@ def build(bld):
langname = 'somefile', # include the .qm files from somefile.qrc
)
# Example of integration of Qt5 Unit tests using Qt5Test using waf_unit_test
bld(
features = 'qt5 cxx cxxprogram test',
use = 'QT5CORE QT5GUI QT5WIDGETS QT5TEST',
defines = 'QT_WIDGETS_LIB',
source = 'foo.cpp testqt5.cpp',
moc = 'foo.h',
target = 'footest',
includes = '.',
# ut_str = './${SRC} -o test-report.xml,xunitxml', # put output to a xunit xml
)
if bld.env.XYZ_QT5_TESTS:
# Example of integration of Qt5 Unit tests using Qt5Test using waf_unit_test
bld(
features = 'qt5 cxx cxxprogram test',
use = 'QT5CORE QT5GUI QT5WIDGETS QT5TEST',
defines = 'QT_WIDGETS_LIB',
source = 'foo.cpp testqt5.cpp',
moc = 'foo.h',
target = 'footest',
includes = '.',
# ut_str = './${SRC} -o test-report.xml,xunitxml', # put output to a xunit xml
)
bld.add_post_fun(print_test_results) # print output of test runner to user
bld.add_post_fun(print_test_results) # print output of test runner to user
def print_test_results(bld):