Add qt_test_helper feature

To avoid (even more) duplicated code, "qt_test_helper" ensures the
policy of putting a test's helper application next to the test's
own executable.
The helper executable is suffixed with "_helper" to avoid name
clashes with its folder.

Change-Id: Ic50cb1daa257e7ffc75440c10a3b90fd39424683
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
This commit is contained in:
Oliver Wolff 2018-06-28 18:03:43 +02:00
parent 64d63d036c
commit 92c5f3fb7b
5 changed files with 63 additions and 48 deletions

View File

@ -0,0 +1,35 @@
#
# W A R N I N G
# -------------
#
# This file is not part of the Qt API. It exists purely as an
# implementation detail. It may change from version to version
# without notice, or even be removed.
#
# We mean it.
#
# If an auto test needs a helper application, this helper should
# be put into the same directory as the test itself. This common
# folder should be the test's "main directory" or a "debug" or "release"
# subfolder inside this main directory if debug_and_release is enabled.
# Additionally the helper's executable is suffixed with "_helper" to
# avoid name clashes with its folder.
CONFIG -= app_bundle
CONFIG += console
debug_and_release {
CONFIG(debug, debug|release) {
TARGET = ../../debug/$${TARGET}_helper
} else {
TARGET = ../../release/$${TARGET}_helper
}
} else {
TARGET = ../$${TARGET}_helper
}
parentFolder = $$dirname(_PRO_FILE_PWD_)
testFolder = $$basename(parentFolder)
target.path = $$[QT_INSTALL_TESTS]/$$testFolder
INSTALLS += target

View File

@ -1,3 +1,3 @@
TEMPLATE = subdirs TEMPLATE = subdirs
SUBDIRS = test SUBDIRS = test.pro
!winrt: SUBDIRS += stdinprocess !winrt: SUBDIRS += stdinprocess

View File

@ -1,18 +1,4 @@
SOURCES += main.cpp SOURCES += main.cpp
QT = core QT = core
CONFIG -= app_bundle
CONFIG += console
debug_and_release { load(qt_test_helper)
CONFIG(debug, debug|release) {
TARGET = ../../debug/stdinprocess_helper
} else {
TARGET = ../../release/stdinprocess_helper
}
} else {
TARGET = ../stdinprocess_helper
}
# This app is testdata for tst_qfile
target.path = $$[QT_INSTALL_TESTS]/tst_qfile/$$TARGET
INSTALLS += target

View File

@ -0,0 +1,26 @@
CONFIG += testcase
QT = core-private testlib
qtHaveModule(network): QT += network
else: DEFINES += QT_NO_NETWORK
contains(CONFIG, builtin_testdata) {
DEFINES += BUILTIN_TESTDATA
}
TESTDATA += BLACKLIST
TARGET = tst_qfile
SOURCES = tst_qfile.cpp
INCLUDEPATH += ../../../../shared/
HEADERS += ../../../../shared/emulationdetector.h
RESOURCES += qfile.qrc rename-fallback.qrc copy-fallback.qrc
TESTDATA += \
dosfile.txt noendofline.txt testfile.txt \
testlog.txt two.dots.file tst_qfile.cpp \
Makefile forCopying.txt forRenaming.txt \
resources/file1.ext1
win32:!winrt: LIBS += -lole32 -luuid

View File

@ -1,32 +0,0 @@
CONFIG += testcase
QT = core-private core testlib
qtHaveModule(network): QT += network
else: DEFINES += QT_NO_NETWORK
contains(CONFIG, builtin_testdata) {
DEFINES += BUILTIN_TESTDATA
}
TESTDATA += ../BLACKLIST
debug_and_release {
CONFIG(debug, debug|release) {
TARGET = ../../debug/tst_qfile
} else {
TARGET = ../../release/tst_qfile
}
} else {
TARGET = ../tst_qfile
}
SOURCES = ../tst_qfile.cpp
INCLUDEPATH += ../../../../../shared/
HEADERS += ../../../../../shared/emulationdetector.h
RESOURCES += ../qfile.qrc ../rename-fallback.qrc ../copy-fallback.qrc
TESTDATA += ../dosfile.txt ../noendofline.txt ../testfile.txt \
../testlog.txt ../two.dots.file ../tst_qfile.cpp \
../Makefile ../forCopying.txt ../forRenaming.txt \
../resources/file1.ext1
win32:!winrt: LIBS+=-lole32 -luuid