summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Goffart <olivier.goffart@nokia.com>2011-05-23 16:08:40 +0200
committerOlivier Goffart <olivier.goffart@nokia.com>2011-05-23 16:08:40 +0200
commit0687e59ddebd5e7b0a3127eae3abd4316a26e5bd (patch)
tree57a756ef2c65142ee738a2030078bdc3203a46b3
parentc5c4273045db1e0ff187e64ecdcbfa348885ad15 (diff)
parentafafcbafd3a26ac66901ea5cfc760a99dc1c3b30 (diff)
Merge branch 'master' into v8
Conflicts: src/3rdparty/javascriptcore/JavaScriptCore/yarr/RegexJIT.cpp src/script/api/qscriptengineagent_p.h src/script/script.pro tests/auto/qscriptable/tst_qscriptable.cpp tests/auto/qscriptengine/qscriptengine.pro
-rw-r--r--.gitignore3
-rw-r--r--modules/qt_script.pri6
-rw-r--r--modules/qt_scripttools.pri6
-rw-r--r--qtscript.pro6
-rw-r--r--src/scripttools/scripttools.pro2
-rw-r--r--sync.profile2
-rw-r--r--tests/auto/auto.pro3
-rw-r--r--tests/auto/qscriptable/tst_qscriptable.cpp27
-rw-r--r--tests/auto/qscriptclass/tst_qscriptclass.cpp6
-rw-r--r--tests/auto/qscriptengine/tst_qscriptengine.cpp5
-rw-r--r--tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp14
-rw-r--r--tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp14
-rw-r--r--tests/auto/qscriptvaluegenerated/testgen/testgenerator.cpp38
-rw-r--r--tests/auto/qscriptvaluegenerated/testgen/testgenerator.h3
-rw-r--r--tests/auto/qscriptvalueiterator/tst_qscriptvalueiterator.cpp4
15 files changed, 90 insertions, 49 deletions
diff --git a/.gitignore b/.gitignore
index 5b4d2f2..79b4f32 100644
--- a/.gitignore
+++ b/.gitignore
@@ -119,6 +119,9 @@ translations/*.qm
translations/*_untranslated.ts
qrc_*.cpp
+src/script/qtscriptversion.h
+src/scripttools/qtscripttoolsversion.h
+
# Test generated files
QObject.log
tst_*
diff --git a/modules/qt_script.pri b/modules/qt_script.pri
index 5598bb0..43fab86 100644
--- a/modules/qt_script.pri
+++ b/modules/qt_script.pri
@@ -1,6 +1,6 @@
-QT.script.VERSION = 4.8.0
-QT.script.MAJOR_VERSION = 4
-QT.script.MINOR_VERSION = 8
+QT.script.VERSION = 5.0.0
+QT.script.MAJOR_VERSION = 5
+QT.script.MINOR_VERSION = 0
QT.script.PATCH_VERSION = 0
QT.script.name = QtScript
diff --git a/modules/qt_scripttools.pri b/modules/qt_scripttools.pri
index 9b7a863..2ff4fee 100644
--- a/modules/qt_scripttools.pri
+++ b/modules/qt_scripttools.pri
@@ -1,6 +1,6 @@
-QT.scripttools.VERSION = 4.8.0
-QT.scripttools.MAJOR_VERSION = 4
-QT.scripttools.MINOR_VERSION = 8
+QT.scripttools.VERSION = 5.0.0
+QT.scripttools.MAJOR_VERSION = 5
+QT.scripttools.MINOR_VERSION = 0
QT.scripttools.PATCH_VERSION = 0
QT.scripttools.name = QtScriptTools
diff --git a/qtscript.pro b/qtscript.pro
index f37d1bf..fa8144b 100644
--- a/qtscript.pro
+++ b/qtscript.pro
@@ -6,11 +6,15 @@ module_qtscript_src.target = module-qtscript-src
module_qtscript_examples.subdir = examples
module_qtscript_examples.target = module-qtscript-examples
module_qtscript_examples.depends = module_qtscript_src
+!contains(QT_BUILD_PARTS,examples) {
+ module_qtscript_examples.CONFIG += no_default_install no_default_target
+}
module_qtscript_tests.subdir = tests
module_qtscript_tests.target = module-qtscript-tests
module_qtscript_tests.depends = module_qtscript_src
-module_qtscript_tests.CONFIG = no_default_target no_default_install
+module_qtscript_tests.CONFIG = no_default_install
+!contains(QT_BUILD_PARTS,tests):module_qtscript_tests.CONFIG += no_default_target
SUBDIRS += module_qtscript_src \
module_qtscript_examples \
diff --git a/src/scripttools/scripttools.pro b/src/scripttools/scripttools.pro
index 93d1bd8..8e12c5d 100644
--- a/src/scripttools/scripttools.pro
+++ b/src/scripttools/scripttools.pro
@@ -15,6 +15,8 @@ unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtScript
include($$QT_SOURCE_TREE/src/qbase.pri)
+HEADERS += qtscripttoolsversion.h
+
include(debugging/debugging.pri)
symbian:TARGET.UID3=0x2001E625
diff --git a/sync.profile b/sync.profile
index 823d1a2..5b598cf 100644
--- a/sync.profile
+++ b/sync.profile
@@ -5,6 +5,8 @@
%moduleheaders = ( # restrict the module headers to those found in relative path
);
%classnames = (
+ "qtscriptversion.h" => "QtScriptVersion",
+ "qtscripttoolsversion.h" => "QtScriptToolsVersion",
);
%mastercontent = (
"core" => "#include <QtCore/QtCore>\n",
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 3c4d6b4..17a3221 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -18,5 +18,8 @@ SUBDIRS=\
qscriptvaluestable \
qscriptvalueiterator
+!contains(QT_CONFIG,private-tests):SUBDIRS -= \
+ qscriptcontext \
+
!cross_compile: SUBDIRS += host.pro
diff --git a/tests/auto/qscriptable/tst_qscriptable.cpp b/tests/auto/qscriptable/tst_qscriptable.cpp
index bba26d1..7f8f44a 100644
--- a/tests/auto/qscriptable/tst_qscriptable.cpp
+++ b/tests/auto/qscriptable/tst_qscriptable.cpp
@@ -137,8 +137,8 @@ int MyScriptable::getArgumentCount()
void MyScriptable::foo()
{
m_lastEngine = engine();
- QVERIFY(engine() != 0);
- context()->throwError("MyScriptable.foo");
+ if (engine())
+ context()->throwError("MyScriptable.foo");
}
void MyScriptable::evalIsBar()
@@ -164,15 +164,15 @@ void MyScriptable::setOtherEngine()
void MyScriptable::setX(int x)
{
m_lastEngine = engine();
- Q_ASSERT(engine());
- thisObject().setProperty("x", QScriptValue(engine(), x));
+ if (engine())
+ thisObject().setProperty("x", QScriptValue(engine(), x));
}
void MyScriptable::setX(const QString &x)
{
m_lastEngine = engine();
- Q_ASSERT(engine());
- thisObject().setProperty("x", QScriptValue(engine(), x));
+ if (engine())
+ thisObject().setProperty("x", QScriptValue(engine(), x));
}
void MyScriptable::setX2(int)
@@ -294,6 +294,7 @@ void tst_QScriptable::thisObject()
"o.setX(123);"
"o.__proto__ = Object.prototype;"
"o.x");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QEXPECT_FAIL("", "FIXME: the this object is not correct within signals/slot", Abort);
QCOMPARE(ret.strictlyEquals(QScriptValue(&m_engine, 123)), true);
}
@@ -302,26 +303,31 @@ void tst_QScriptable::thisObject()
"o.setX2(456);"
"o.__proto__ = Object.prototype;"
"o.x");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QCOMPARE(ret.strictlyEquals(QScriptValue(&m_engine, 456)), true);
}
m_engine.evaluate("o.__proto__ = scriptable");
{
QScriptValue ret = m_engine.evaluate("o.isBar()");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QCOMPARE(ret.strictlyEquals(QScriptValue(&m_engine, false)), true);
}
{
QScriptValue ret = m_engine.evaluate("o.toString = function() { return 'foo@bar'; }; o.isBar()");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QCOMPARE(ret.strictlyEquals(QScriptValue(&m_engine, true)), true);
}
// property getter
{
QScriptValue ret = m_engine.evaluate("scriptable.zab");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QCOMPARE(ret.isQObject(), true);
QCOMPARE(ret.toQObject(), (QObject *)&m_scriptable);
}
{
QScriptValue ret = m_engine.evaluate("scriptable[1]");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QEXPECT_FAIL("", "FIXME: array not yet implemented", Continue);
QCOMPARE(ret.isQObject(), true);
QEXPECT_FAIL("", "FIXME: array not yet implemented", Continue);
@@ -329,21 +335,25 @@ void tst_QScriptable::thisObject()
}
{
QScriptValue ret = m_engine.evaluate("o.zab");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QCOMPARE(ret.toQObject(), (QObject *)0);
}
// property setter
{
QScriptValue ret = m_engine.evaluate("scriptable.setZab(null)");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QCOMPARE(ret.isQObject(), true);
QCOMPARE(ret.toQObject(), (QObject *)&m_scriptable);
}
{
QVERIFY(!m_scriptable.oofThisObject().isValid());
m_engine.evaluate("o.oof = 123");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QVERIFY(m_scriptable.oofThisObject().strictlyEquals(m_engine.evaluate("o")));
}
{
m_engine.evaluate("scriptable.oof = 123");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QVERIFY(m_scriptable.oofThisObject().strictlyEquals(m_engine.evaluate("scriptable")));
}
@@ -351,13 +361,17 @@ void tst_QScriptable::thisObject()
{
{
QScriptValue ret = m_engine.evaluate("scriptable.sig.connect(o, scriptable.setX)");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QVERIFY(ret.isUndefined());
}
QVERIFY(m_engine.evaluate("o.x").strictlyEquals(QScriptValue(&m_engine, 456)));
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
m_scriptable.emitSig(654321);
QVERIFY(m_engine.evaluate("o.x").strictlyEquals(QScriptValue(&m_engine, 654321)));
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
{
QScriptValue ret = m_engine.evaluate("scriptable.sig.disconnect(o, scriptable.setX)");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QEXPECT_FAIL("", "FIXME: disconnect not yet implemented", Continue);
QVERIFY(ret.isUndefined());
}
@@ -390,6 +404,7 @@ void tst_QScriptable::arguments()
void tst_QScriptable::throwError()
{
QScriptValue ret = m_engine.evaluate("scriptable.foo()");
+ QCOMPARE(m_scriptable.lastEngine(), &m_engine);
QCOMPARE(ret.isError(), true);
QCOMPARE(ret.toString(), QString("Error: MyScriptable.foo"));
}
diff --git a/tests/auto/qscriptclass/tst_qscriptclass.cpp b/tests/auto/qscriptclass/tst_qscriptclass.cpp
index 8025162..5d6323f 100644
--- a/tests/auto/qscriptclass/tst_qscriptclass.cpp
+++ b/tests/auto/qscriptclass/tst_qscriptclass.cpp
@@ -370,8 +370,7 @@ QVariant TestClass::extension(Extension extension,
{
m_lastExtensionType = extension;
m_lastExtensionArgument = argument;
- if (extension == Callable) {
- Q_ASSERT(m_callableMode != NotCallable);
+ if (extension == Callable && m_callableMode != NotCallable) {
QScriptContext *ctx = qvariant_cast<QScriptContext*>(argument);
if (m_callableMode == CallableReturnsSum) {
qsreal sum = 0;
@@ -400,8 +399,7 @@ QVariant TestClass::extension(Extension extension,
engine()->newQObject(ctx->thisObject(), engine());
return QVariant();
}
- } else if (extension == HasInstance) {
- Q_ASSERT(m_hasInstance);
+ } else if (extension == HasInstance && m_hasInstance) {
QScriptValueList args = qvariant_cast<QScriptValueList>(argument);
QScriptValue obj = args.at(0);
QScriptValue value = args.at(1);
diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp
index 7c2b565..6c47161 100644
--- a/tests/auto/qscriptengine/tst_qscriptengine.cpp
+++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp
@@ -5880,7 +5880,10 @@ void tst_QScriptEngine::collectGarbageAfterNativeArguments()
static QScriptValue constructQObjectFromThisObject(QScriptContext *ctx, QScriptEngine *eng)
{
- Q_ASSERT(ctx->isCalledAsConstructor());
+ if (!ctx->isCalledAsConstructor()) {
+ qWarning("%s: ctx->isCalledAsConstructor() returned false", Q_FUNC_INFO);
+ return QScriptValue();
+ }
return eng->newQObject(ctx->thisObject(), new QObject, QScriptEngine::ScriptOwnership);
}
diff --git a/tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp b/tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp
index 70adb58..1a3ad2c 100644
--- a/tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp
+++ b/tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp
@@ -76,9 +76,6 @@ public:
tst_QScriptEngineDebugger();
virtual ~tst_QScriptEngineDebugger();
-protected slots:
- void recordDebuggerStateAndContinue();
-
private slots:
void attachAndDetach();
void action();
@@ -89,9 +86,6 @@ private slots:
void multithreadedDebugging();
void autoShowStandardWindow();
void standardWindowOwnership();
-
-private:
- QScriptEngineDebugger::DebuggerState m_recordedDebuggerState;
};
tst_QScriptEngineDebugger::tst_QScriptEngineDebugger()
@@ -102,14 +96,6 @@ tst_QScriptEngineDebugger::~tst_QScriptEngineDebugger()
{
}
-void tst_QScriptEngineDebugger::recordDebuggerStateAndContinue()
-{
- QScriptEngineDebugger *debugger = qobject_cast<QScriptEngineDebugger*>(sender());
- Q_ASSERT(debugger != 0);
- m_recordedDebuggerState = debugger->state();
- debugger->action(QScriptEngineDebugger::ContinueAction)->trigger();
-}
-
void tst_QScriptEngineDebugger::attachAndDetach()
{
#if defined(Q_OS_WINCE) && _WIN32_WCE < 0x600
diff --git a/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp b/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp
index b35fd06..75c9acb 100644
--- a/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp
+++ b/tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp
@@ -95,9 +95,11 @@ protected:
static QScriptValue qscript_fail(QScriptContext *ctx, QScriptEngine *eng)
{
QScriptValue realFail = ctx->callee().data();
- Q_ASSERT(realFail.isFunction());
+ if (!realFail.isFunction())
+ qFatal("%s: realFail must be a function", Q_FUNC_INFO);
QScriptValue ret = realFail.call(ctx->thisObject(), ctx->argumentsObject());
- Q_ASSERT(eng->hasUncaughtException());
+ if (!eng->hasUncaughtException())
+ qFatal("%s: realFail function did not throw an exception", Q_FUNC_INFO);
ret.setProperty("expected", ctx->argument(0));
ret.setProperty("actual", ctx->argument(1));
ret.setProperty("message", ctx->argument(2));
@@ -153,10 +155,14 @@ void tst_QScriptV8TestSuite::runTestFunction(int testIndex)
QScriptValue ret = engine.evaluate(contents);
if (engine.hasUncaughtException()) {
if (!ret.isError()) {
- Q_ASSERT(ret.instanceOf(engine.globalObject().property("MjsUnitAssertionError")));
+ int lineNumber = ret.property("lineNumber").toInt32();
+ QTest::qVerify(ret.instanceOf(engine.globalObject().property("MjsUnitAssertionError")),
+ ret.toString().toLatin1(),
+ "",
+ path.toLatin1(),
+ lineNumber);
QString actual = ret.property("actual").toString();
QString expected = ret.property("expected").toString();
- int lineNumber = ret.property("lineNumber").toInt32();
QString failMessage;
if (shouldGenerateExpectedFailures) {
if (ret.property("message").isString())
diff --git a/tests/auto/qscriptvaluegenerated/testgen/testgenerator.cpp b/tests/auto/qscriptvaluegenerated/testgen/testgenerator.cpp
index 4d20f89..c9eacd4 100644
--- a/tests/auto/qscriptvaluegenerated/testgen/testgenerator.cpp
+++ b/tests/auto/qscriptvaluegenerated/testgen/testgenerator.cpp
@@ -467,7 +467,7 @@ QString generateCastDef<qsreal>(const QList<QPair<QString, qsreal> >& list)
QString::number(list.count()));
}
-static QString generateCompareDef(const QString& comparisionType, const QList<QString> tags)
+static QString generateCompareDef(const QString& comparisonType, const QList<QString> tags)
{
static const QString templ = "\n"\
"void tst_QScriptValueGenerated::%1_initData()\n"\
@@ -501,10 +501,11 @@ static QString generateCompareDef(const QString& comparisionType, const QList<QS
"}\n"\
"\n"\
"DEFINE_TEST_FUNCTION(%1)\n";
- Q_ASSERT(comparisionType == "strictlyEquals"
- || comparisionType == "equals"
- || comparisionType == "lessThan"
- || comparisionType == "instanceOf");
+ if (comparisonType != "strictlyEquals"
+ && comparisonType != "equals"
+ && comparisonType != "lessThan"
+ && comparisonType != "instanceOf")
+ qFatal("%s: Unknown comparisonType: %s", Q_FUNC_INFO, qPrintable(comparisonType));
QString result = templ;
QStringList set;
@@ -516,7 +517,7 @@ static QString generateCompareDef(const QString& comparisionType, const QList<QS
set.append(escape(tmp));
set.append("\"");
}
- return result.arg(comparisionType, set.join(""), QString::number(tags.count()));
+ return result.arg(comparisonType, set.join(""), QString::number(tags.count()));
}
static QString generateInitDef(const QVector<QString>& allDataTags)
@@ -545,6 +546,17 @@ static void squashTags(QString dataTag, const QVector<bool>& results, QList<QStr
}
}
+static QString streamStatusString(QDataStream::Status s)
+{
+ switch (s) {
+ case QDataStream::ReadPastEnd:
+ return QString("ReadPastEnd");
+ case QDataStream::ReadCorruptData:
+ return QString("ReadCorruptData");
+ default:
+ return QString("Unknown (%1)").arg(static_cast<int>(s));
+ }
+}
QHash<QString, QString> TestGenerator::generateTest()
{
@@ -596,7 +608,10 @@ QHash<QString, QString> TestGenerator::generateTest()
m_tempFile.seek(0);
QDataStream in(&m_tempFile);
in >> dataTags;
- Q_ASSERT(in.status() == in.Ok);
+ if (in.status() != in.Ok)
+ qFatal("%s: stream has bad status %s after reading dataTags",
+ Q_FUNC_INFO,
+ qPrintable(streamStatusString(in.status())));
while(!in.atEnd())
{
@@ -720,10 +735,13 @@ QHash<QString, QString> TestGenerator::generateTest()
castUInt32List.append(QPair<QString, quint32>(dataTag, castUInt32Res));
castUInt16List.append(QPair<QString, quint16>(dataTag, castUInt16Res));
- Q_ASSERT(in.status() == in.Ok);
+ if (in.status() != in.Ok)
+ qFatal("%s: stream has bad status %s after reading data items",
+ Q_FUNC_INFO,
+ qPrintable(streamStatusString(in.status())));
}
-
- Q_ASSERT(in.atEnd());
+ if (!in.atEnd())
+ qFatal("%s: stream has more data after reading all data items", Q_FUNC_INFO);
// Generate.
QHash<QString, QString> result;
diff --git a/tests/auto/qscriptvaluegenerated/testgen/testgenerator.h b/tests/auto/qscriptvaluegenerated/testgen/testgenerator.h
index be4f79f..d3096c0 100644
--- a/tests/auto/qscriptvaluegenerated/testgen/testgenerator.h
+++ b/tests/auto/qscriptvaluegenerated/testgen/testgenerator.h
@@ -59,7 +59,8 @@ public:
void run()
{
prepareData();
- Q_ASSERT(m_tempFile.size());
+ if (!m_tempFile.size())
+ qFatal("%s: prepareData failed to generate any data", Q_FUNC_INFO);
save(generateTest());
}
diff --git a/tests/auto/qscriptvalueiterator/tst_qscriptvalueiterator.cpp b/tests/auto/qscriptvalueiterator/tst_qscriptvalueiterator.cpp
index 03e5c0f..1d4745e 100644
--- a/tests/auto/qscriptvalueiterator/tst_qscriptvalueiterator.cpp
+++ b/tests/auto/qscriptvalueiterator/tst_qscriptvalueiterator.cpp
@@ -106,7 +106,7 @@ void tst_QScriptValueIterator::iterateForward()
QFETCH(QStringList, propertyNames);
QFETCH(QStringList, propertyValues);
QMap<QString, QString> pmap;
- Q_ASSERT(propertyNames.size() == propertyValues.size());
+ QVERIFY(propertyNames.size() == propertyValues.size());
QScriptEngine engine;
QScriptValue object = engine.newObject();
@@ -165,7 +165,7 @@ void tst_QScriptValueIterator::iterateBackward()
QFETCH(QStringList, propertyNames);
QFETCH(QStringList, propertyValues);
QMap<QString, QString> pmap;
- Q_ASSERT(propertyNames.size() == propertyValues.size());
+ QVERIFY(propertyNames.size() == propertyValues.size());
QScriptEngine engine;
QScriptValue object = engine.newObject();