diff options
Diffstat (limited to 'interpreter/qtscript_bindings.cpp')
-rw-r--r-- | interpreter/qtscript_bindings.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/interpreter/qtscript_bindings.cpp b/interpreter/qtscript_bindings.cpp index 10ada0c..b93aeff 100644 --- a/interpreter/qtscript_bindings.cpp +++ b/interpreter/qtscript_bindings.cpp @@ -41,6 +41,7 @@ #include <QtTest/QtTest> +#include <qtestide.h> #include "qscriptengine.h" #include "qscriptvalue.h" #include "qscriptvalueiterator.h" @@ -48,7 +49,6 @@ #include "qscriptcontextinfo.h" #include "qtscript_bindings.h" -//#include "qtscript_qtcore.h" QStringList builtinFiles; @@ -197,7 +197,7 @@ int QtScriptTest::qt_metacall(QMetaObject::Call _c, int _id, void **_a) } QtScriptTest::QtScriptTest(QString const &testFilePath, QString const &scriptData, QScriptEngine *engine) - : QObject(), m_testFilePath(testFilePath), m_engine(engine) + : QObject(), m_testFilePath(testFilePath), m_engine(engine), m_status(StatusNotStarted) { if (m_testFilePath.isEmpty()) m_testFilePath = qgetenv("Q_TEST_FILE"); @@ -224,8 +224,9 @@ QtScriptTest::QtScriptTest(QString const &testFilePath, QString const &scriptDat if (!script.isEmpty()) { QScriptSyntaxCheckResult synChk = m_engine->checkSyntax(script); if (synChk.state() != QScriptSyntaxCheckResult::Valid) { - qFatal("SyntaxError: %s at %s:%d", qPrintable(synChk.errorMessage()), - qPrintable(m_testFilePath), synChk.errorLineNumber()); + QTestIDE::instance()->scriptSyntaxError(synChk.errorMessage(), m_testFilePath, synChk.errorLineNumber()); + m_status = StatusSyntaxError; + return; } QScriptValue ret = m_engine->evaluate(script, m_testFilePath); @@ -237,8 +238,10 @@ QtScriptTest::QtScriptTest(QString const &testFilePath, QString const &scriptDat } if (!error.isEmpty()) { QString backtrace = m_engine->uncaughtExceptionBacktrace().join("\n"); - qFatal("%s\n%s", qPrintable(error), - qPrintable(backtrace)); + m_status = StatusException; + return; +// qFatal("%s\n%s", qPrintable(error), +// qPrintable(backtrace)); } QScriptValue testcase = m_engine->globalObject().property("testcase"); QScriptValueIterator it(testcase); @@ -296,8 +299,15 @@ QtScriptTest::QtScriptTest(QString const &testFilePath, QString const &scriptDat staticMetaObject.d.stringdata = stringdata->constData(); staticMetaObject.d.data = data->constData(); staticMetaObject.d.extradata = 0; + + m_status = StatusNormal; } QtScriptTest::~QtScriptTest() { } + +QtScriptTest::Status QtScriptTest::status() +{ + return m_status; +}
\ No newline at end of file |