aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/imports/testlib/TestCase.qml9
-rw-r--r--tests/auto/qmltest/selftests/tst_destroy.qml18
2 files changed, 24 insertions, 3 deletions
diff --git a/src/imports/testlib/TestCase.qml b/src/imports/testlib/TestCase.qml
index 9f527b66f1..039ee63f07 100644
--- a/src/imports/testlib/TestCase.qml
+++ b/src/imports/testlib/TestCase.qml
@@ -1271,6 +1271,9 @@ Item {
qtest_results.finishTestData()
qtest_runInternal("cleanup")
qtest_results.finishTestDataCleanup()
+ // wait(0) will call processEvents() so objects marked for deletion
+ // in the test function will be deleted.
+ wait(0)
}
}
@@ -1302,6 +1305,9 @@ Item {
// Run the cleanup function.
qtest_runInternal("cleanup")
qtest_results.finishTestDataCleanup()
+ // wait(0) will call processEvents() so objects marked for deletion
+ // in the test function will be deleted.
+ wait(0)
} while (!qtest_results.measurementAccepted())
qtest_results.endDataRun()
} while (qtest_results.needsMoreMeasurements())
@@ -1418,9 +1424,6 @@ Item {
} else {
qtest_runFunction(prop, null, isBenchmark)
}
- // wait(0) will call processEvents() so objects marked for deletion
- // in the test function will be deleted.
- wait(0)
qtest_results.finishTestFunction()
qtest_results.skipped = false
}
diff --git a/tests/auto/qmltest/selftests/tst_destroy.qml b/tests/auto/qmltest/selftests/tst_destroy.qml
index 962f4a70ef..3b1b80520b 100644
--- a/tests/auto/qmltest/selftests/tst_destroy.qml
+++ b/tests/auto/qmltest/selftests/tst_destroy.qml
@@ -51,4 +51,22 @@ TestCase {
// The object created in test above should be deleted
compare(testCase.children.length, 0)
}
+
+ function test_c_QTBUG_42185_data() {
+ // Adding dummy data objects for the purpose of calling multiple times the test function
+ // and checking that the created object (tmp) is destroyed as expected between each data run.
+ return [{tag: "test 0"}, {tag: "test 1"}, {tag: "test 2"},];
+ }
+
+ function test_c_QTBUG_42185() {
+ compare(testCase.children.length, 0)
+ var tmp = Qt.createQmlObject('import QtQuick 2.1; Rectangle {width: 20; height: 20;}', testCase, '')
+ compare(testCase.children.length, 1)
+ tmp.destroy()
+ }
+
+ function test_d_QTBUG_42185() {
+ // The object created in test above should be deleted
+ compare(testCase.children.length, 0)
+ }
}