diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf
index 7197f84c9a755188377061738f5ccc61e74c1a68..eaf23cf63a85b08982a338384cef35c7b2e4321c 100644
--- a/mkspecs/features/qt_build_config.prf
+++ b/mkspecs/features/qt_build_config.prf
@@ -55,6 +55,9 @@ QMAKE_DIR_REPLACE_SANE = PRECOMPILED_DIR OBJECTS_DIR MOC_DIR RCC_DIR UI_DIR
 cross_compile: \
     CONFIG += force_bootstrap
 
+android|ios|winrt: \
+    CONFIG += builtin_testdata
+
 CONFIG += \
     create_prl link_prl \
     prepare_docs qt_docs_targets \
diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf
index 6f6f073f70e260f11073c2691c9ca7ef24e169f6..6bac0546c32da8295f3c7e0dd310941a284ebe33 100644
--- a/mkspecs/features/testcase.prf
+++ b/mkspecs/features/testcase.prf
@@ -79,7 +79,7 @@ isEmpty(BUILDS)|build_pass {
     INSTALLS += target
 }
 
-contains(INSTALLS, target) {
+!builtin_testdata:contains(INSTALLS, target) {
     # Install testdata and helpers as well, but only if we're actually installing the test.
     #
     # Testdata is installed relative to the directory containing the testcase
@@ -180,6 +180,20 @@ contains(INSTALLS, target) {
     }
 }
 
+builtin_testdata {
+    ALL_TESTDATA = $$TESTDATA $$GENERATED_TESTDATA
+    # RESOURCES does not support wildcards (for good reasons)
+    for(td, ALL_TESTDATA): \
+        testdata.files += $$files($$absolute_path($$td, $$_PRO_FILE_PWD_))
+    !isEmpty(testdata.files) {
+        testdata.base = $$_PRO_FILE_PWD_
+        RESOURCES += testdata
+    }
+
+    !isEmpty(TEST_HELPER_INSTALLS): \
+        error("This platform does not support tests which require helpers.")
+}
+
 macx-xcode:bundle:isEmpty(QMAKE_BUNDLE_EXTENSION) {
     QMAKE_PBX_PRODUCT_TYPE = com.apple.product-type.bundle.unit-test
     QMAKE_PBX_BUNDLE_TYPE = wrapper.cfbundle