summaryrefslogtreecommitdiffstats
path: root/interpreter/qtscript_bindings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter/qtscript_bindings.cpp')
-rw-r--r--interpreter/qtscript_bindings.cpp22
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