summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-06-01 15:16:01 +0200
committerQt by Nokia <qt-info@nokia.com>2012-06-01 15:19:21 +0200
commit0a4e802f182e6e4b3c54cafa141c8d07ec7621f6 (patch)
treefb33de7ec10f5d2c4a9734d6a796dfbc5a221d97 /tests
parent4b8f98af134e188b8915dd8fb5d61275d834cfd0 (diff)
downloadqtscript-0a4e802f182e6e4b3c54cafa141c8d07ec7621f6.tar.gz
Don't crash in debugger if QScriptEngine is deleted
Task-number: QTBUG-21548 Change-Id: I925a920c8685cf4cf40c7ad03c2d519e2f2121fb Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp b/tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp
index 52d1503..0690874 100644
--- a/tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp
+++ b/tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp
@@ -82,6 +82,7 @@ private slots:
void multithreadedDebugging();
void autoShowStandardWindow();
void standardWindowOwnership();
+ void engineDeleted();
};
tst_QScriptEngineDebugger::tst_QScriptEngineDebugger()
@@ -832,5 +833,22 @@ void tst_QScriptEngineDebugger::standardWindowOwnership()
QVERIFY(win != 0);
}
+void tst_QScriptEngineDebugger::engineDeleted()
+{
+ QScriptEngine* engine = new QScriptEngine;
+ QScriptEngineDebugger *debugger = new QScriptEngineDebugger;
+ debugger->attachTo(engine);
+
+ debugger->standardWindow()->show();
+ QTest::qWaitForWindowShown(debugger->standardWindow());
+
+ QSignalSpy destroyedSpy(engine, SIGNAL(destroyed()));
+ engine->deleteLater();
+ QTRY_COMPARE(destroyedSpy.count(), 1);
+
+ // Shouldn't crash (QTBUG-21548)
+ debugger->action(QScriptEngineDebugger::ContinueAction)->trigger();
+}
+
QTEST_MAIN(tst_QScriptEngineDebugger)
#include "tst_qscriptenginedebugger.moc"