diff options
-rw-r--r-- | src/imports/testlib/TestCase.qml | 9 | ||||
-rw-r--r-- | tests/auto/qmltest/selftests/tst_destroy.qml | 18 |
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) + } } |