static PyObject *meth_QScriptEngineDebugger_detach(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; { QScriptEngineDebugger *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QScriptEngineDebugger, &sipCpp)) { Py_BEGIN_ALLOW_THREADS sipCpp->detach(); Py_END_ALLOW_THREADS Py_INCREF(Py_None); return Py_None; } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QScriptEngineDebugger, sipName_detach, doc_QScriptEngineDebugger_detach); return NULL; }
void tst_QScriptEngineDebugger::attachAndDetach() { #if defined(Q_OS_WINCE) && _WIN32_WCE < 0x600 QSKIP("skipped due to high mem usage until task 261062 is fixed", SkipAll); #endif { QScriptEngineDebugger debugger; QCOMPARE(debugger.state(), QScriptEngineDebugger::SuspendedState); debugger.attachTo(0); QScriptEngine engine; debugger.attachTo(&engine); QCOMPARE(debugger.state(), QScriptEngineDebugger::SuspendedState); } { QScriptEngineDebugger debugger; QScriptEngine engine; QScriptValue oldPrint = engine.globalObject().property("print"); QVERIFY(oldPrint.isFunction()); QVERIFY(!engine.globalObject().property("__FILE__").isValid()); QVERIFY(!engine.globalObject().property("__LINE__").isValid()); debugger.attachTo(&engine); QVERIFY(engine.globalObject().property("__FILE__").isUndefined()); QVERIFY(engine.globalObject().property("__LINE__").isNumber()); QVERIFY(!engine.globalObject().property("print").strictlyEquals(oldPrint)); debugger.detach(); QVERIFY(engine.globalObject().property("print").strictlyEquals(oldPrint)); QVERIFY(!engine.globalObject().property("__FILE__").isValid()); QVERIFY(!engine.globalObject().property("__LINE__").isValid()); } { QScriptEngineDebugger debugger; QScriptEngine engine; debugger.attachTo(&engine); debugger.detach(); QScriptEngine engine2; debugger.attachTo(&engine2); } { QScriptEngineDebugger debugger; QScriptEngine engine; debugger.attachTo(&engine); debugger.detach(); QScriptEngine engine2; debugger.attachTo(&engine2); debugger.detach(); } #ifndef Q_OS_WINCE // demands too much memory for WinCE { QScriptEngineDebugger debugger; QScriptEngine engine; debugger.attachTo(&engine); QScriptEngineDebugger debugger2; debugger2.attachTo(&engine); } #endif { QScriptEngine *engine = new QScriptEngine; QScriptEngineDebugger debugger; debugger.attachTo(engine); delete engine; QScriptEngine engine2; debugger.attachTo(&engine2); } }