diff options
author | Olivier Goffart <olivier.goffart@nokia.com> | 2011-05-23 16:08:40 +0200 |
---|---|---|
committer | Olivier Goffart <olivier.goffart@nokia.com> | 2011-05-23 16:08:40 +0200 |
commit | 0687e59ddebd5e7b0a3127eae3abd4316a26e5bd (patch) | |
tree | 57a756ef2c65142ee738a2030078bdc3203a46b3 | |
parent | c5c4273045db1e0ff187e64ecdcbfa348885ad15 (diff) | |
parent | afafcbafd3a26ac66901ea5cfc760a99dc1c3b30 (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-- | .gitignore | 3 | ||||
-rw-r--r-- | modules/qt_script.pri | 6 | ||||
-rw-r--r-- | modules/qt_scripttools.pri | 6 | ||||
-rw-r--r-- | qtscript.pro | 6 | ||||
-rw-r--r-- | src/scripttools/scripttools.pro | 2 | ||||
-rw-r--r-- | sync.profile | 2 | ||||
-rw-r--r-- | tests/auto/auto.pro | 3 | ||||
-rw-r--r-- | tests/auto/qscriptable/tst_qscriptable.cpp | 27 | ||||
-rw-r--r-- | tests/auto/qscriptclass/tst_qscriptclass.cpp | 6 | ||||
-rw-r--r-- | tests/auto/qscriptengine/tst_qscriptengine.cpp | 5 | ||||
-rw-r--r-- | tests/auto/qscriptenginedebugger/tst_qscriptenginedebugger.cpp | 14 | ||||
-rw-r--r-- | tests/auto/qscriptv8testsuite/tst_qscriptv8testsuite.cpp | 14 | ||||
-rw-r--r-- | tests/auto/qscriptvaluegenerated/testgen/testgenerator.cpp | 38 | ||||
-rw-r--r-- | tests/auto/qscriptvaluegenerated/testgen/testgenerator.h | 3 | ||||
-rw-r--r-- | tests/auto/qscriptvalueiterator/tst_qscriptvalueiterator.cpp | 4 |
15 files changed, 90 insertions, 49 deletions
@@ -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(); |