diff options
Diffstat (limited to 'mkspecs/features/testcase.prf')
-rw-r--r-- | mkspecs/features/testcase.prf | 57 |
1 files changed, 43 insertions, 14 deletions
diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf index b8102c26b5..ca9bfb55f8 100644 --- a/mkspecs/features/testcase.prf +++ b/mkspecs/features/testcase.prf @@ -9,6 +9,9 @@ testcase_exceptions: CONFIG += exceptions # Set in qt_build_config.prf testcase_no_bundle: CONFIG -= app_bundle +# cmdline may have been specified and not processed yet +cmdline: CONFIG -= app_bundle + # Allow testcases to mark themselves as not supporting high-DPI testcase_lowdpi { macos { @@ -16,9 +19,15 @@ testcase_lowdpi { error("QMAKE_INFO_PLIST already set, can't apply testcase_lowdpi") QMAKE_INFO_PLIST = $$QMAKESPEC/Info.plist.disable_highdpi + # Needs to be bundle so that Launch Services will pick + # up and apply the NSHighResolutionCapable=NO state. + CONFIG += app_bundle + } else { # TODO: Add support for other platforms if possible } + + DEFINES += TESTCASE_LOWDPI } benchmark: type = benchmark @@ -52,23 +61,43 @@ debug_and_release:debug_and_release_target { } # Allow for a custom test runner script -$${type}.commands += $(TESTRUNNER) -unix { - isEmpty(TEST_TARGET_DIR): TEST_TARGET_DIR = . - - app_bundle: \ - $${type}.commands += $${TEST_TARGET_DIR}/$(QMAKE_TARGET).app/Contents/MacOS/$(QMAKE_TARGET) - else: \ - $${type}.commands += $${TEST_TARGET_DIR}/$(QMAKE_TARGET) +android: isEmpty($(TESTRUNNER)) { + build_pass|single_android_abi { + APK_PATH = $$shell_path($$OUT_PWD/android-build/$${TARGET}.apk) + qtPrepareTool(ANDROIDTESTRUNNER, androidtestrunner) + qtPrepareTool(ANDROIDDEPLOYQT, androiddeployqt) + isEmpty(ANDROID_DEPLOYMENT_SETTINGS_FILE): ANDROID_DEPLOYMENT_SETTINGS_FILE = $$OUT_PWD/android-$$TARGET-deployment-settings.json + contains(QMAKE_HOST.os, Windows): extension = .exe + $${type}.commands = $$ANDROIDTESTRUNNER --path \"$$OUT_PWD/android-build\" + $${type}.commands += --adb \"$$shell_path($${ANDROID_SDK_ROOT}$${QMAKE_DIR_SEP}platform-tools$${QMAKE_DIR_SEP}adb$${extension})\" + $${type}.commands += --make \"$(MAKE) apk\" + $${type}.commands += --apk $$APK_PATH + # Allow for custom arguments to tests + !catch: $${type}.commands += $(TESTARGS) + $${type}.commands += "--" + for(import, IMPORTPATH): $${type}.commands *= -import \"assets:/$$basename(_PRO_FILE_PWD_)/$$import\" + } else { + $${type}.commands = "echo \"Pass\"" + } } else { - # Windows - !isEmpty(TEST_TARGET_DIR): TEST_TARGET_DIR = $$shell_path($$TEST_TARGET_DIR)$${QMAKE_DIR_SEP} - $${type}.commands += $${TEST_TARGET_DIR}$(TARGET) -} + $${type}.commands += $(TESTRUNNER) + + unix { + isEmpty(TEST_TARGET_DIR): TEST_TARGET_DIR = . -# Allow for custom arguments to tests -$${type}.commands += $(TESTARGS) + app_bundle: \ + $${type}.commands += $${TEST_TARGET_DIR}/$(QMAKE_TARGET).app/Contents/MacOS/$(QMAKE_TARGET) + else: !android: \ + $${type}.commands += $${TEST_TARGET_DIR}/$(QMAKE_TARGET) + } else { + # Windows + !isEmpty(TEST_TARGET_DIR): TEST_TARGET_DIR = $$shell_path($$TEST_TARGET_DIR)$${QMAKE_DIR_SEP} + $${type}.commands += $${TEST_TARGET_DIR}$(TARGET) + } + # Allow for custom arguments to tests + !catch: $${type}.commands += $(TESTARGS) +} !isEmpty(TESTRUN_CWD):!contains(TESTRUN_CWD, ^\\./?): \ $${type}.commands = $$QMAKE_CD $$shell_path($$TESTRUN_CWD) && $$eval($${type}.commands) |