diff options
author | Rohan McGovern <rohan.mcgovern@nokia.com> | 2010-02-16 05:34:50 (GMT) |
---|---|---|
committer | Rohan McGovern <rohan.mcgovern@nokia.com> | 2010-02-17 06:12:08 (GMT) |
commit | 2d67f6efc47986e8f6d69943f0986d18ae2ced96 (patch) | |
tree | 42b8e16e73c021ffabba0b82b12f0f533ce8aa11 /tests/auto/xmlpatternsxqts/lib/TestCase.cpp | |
parent | 0cdf33e9acb00b8f3654e8268253a3fb7c5db92c (diff) | |
download | Qt-2d67f6efc47986e8f6d69943f0986d18ae2ced96.zip Qt-2d67f6efc47986e8f6d69943f0986d18ae2ced96.tar.gz Qt-2d67f6efc47986e8f6d69943f0986d18ae2ced96.tar.bz2 |
Fixed compile of xmlpatterns tests with vcproj generator.
These tests were adding the same SUBDIR multiple times from different
projects. Don't do that.
Diffstat (limited to 'tests/auto/xmlpatternsxqts/lib/TestCase.cpp')
-rw-r--r-- | tests/auto/xmlpatternsxqts/lib/TestCase.cpp | 439 |
1 files changed, 0 insertions, 439 deletions
diff --git a/tests/auto/xmlpatternsxqts/lib/TestCase.cpp b/tests/auto/xmlpatternsxqts/lib/TestCase.cpp deleted file mode 100644 index 7b424d2..0000000 --- a/tests/auto/xmlpatternsxqts/lib/TestCase.cpp +++ /dev/null @@ -1,439 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QBuffer> -#include <QUrl> -#include <QXmlAttributes> -#include <QXmlQuery> -#include <QXmlResultItems> -#include <QXmlSerializer> -#include <qxmlquery_p.h> - -#include "DebugExpressionFactory.h" -#include "ExternalSourceLoader.h" -#include "Global.h" -#include "TestSuite.h" -#include "XMLWriter.h" - -#include "TestCase.h" - -using namespace QPatternistSDK; -using namespace QPatternist; - -// STATIC DATA -static const DebugExpressionFactory::Ptr s_exprFact(new DebugExpressionFactory()); - -TestCase::TestCase() : m_result(0) -{ -} - -TestCase::~TestCase() -{ - delete m_result; -} - -TestResult::List TestCase::execute(const ExecutionStage stage, - TestSuite *) -{ - if(name() == QLatin1String("Constr-cont-document-3")) - { - TestResult::List result; - result.append(createTestResult(TestResult::Fail, QLatin1String("Skipped this test, because we loop infinitely on it."))); - return result; - } - else if(name() == QLatin1String("Axes089")) - { - TestResult::List result; - result.append(createTestResult(TestResult::Fail, QLatin1String("Skipped this test, we crash on it."))); - return result; - } - - qDebug() << "Running test case: " << name(); - - return execute(stage); - - Q_ASSERT(false); - return TestResult::List(); -} - -TestResult *TestCase::createTestResult(const TestResult::Status status, - const QString &comment) const -{ - TestResult *const result = new TestResult(name(), - status, - 0 /* We don't have an AST. */, - ErrorHandler::Message::List(), - QPatternist::Item::List(), - QString()); - result->setComment(comment); - return result; -} - -TestResult::List TestCase::execute(const ExecutionStage stage) -{ - ErrorHandler errHandler; - ErrorHandler::installQtMessageHandler(&errHandler); - - pDebug() << "TestCase::execute()"; - delete m_result; - - QXmlQuery query(language(), Global::namePoolAsPublic()); - - query.d->setExpressionFactory(s_exprFact); - query.setInitialTemplateName(initialTemplateName()); - - QXmlQuery openDoc(query.namePool()); - - if(contextItemSource().isValid()) - { - openDoc.setQuery(QString::fromLatin1("doc('") + contextItemSource().toString() + QLatin1String("')")); - Q_ASSERT(openDoc.isValid()); - QXmlResultItems result; - - openDoc.evaluateTo(&result); - const QXmlItem item(result.next()); - Q_ASSERT(!item.isNull()); - query.setFocus(item); - } - - TestResult::List retval; - - const Scenario scen(scenario()); - TestResult::Status resultStatus = TestResult::Unknown; - - bool ok = false; - const QString queryString(sourceCode(ok)); - - if(!ok) - { - /* Loading the query file failed, or similar. */ - resultStatus = TestResult::Fail; - - m_result = new TestResult(name(), resultStatus, s_exprFact->astTree(), - errHandler.messages(), QPatternist::Item::List(), QString()); - retval.append(m_result); - ErrorHandler::installQtMessageHandler(0); - changed(this); - return retval; - } - - query.setMessageHandler(&errHandler); - QXmlNamePool namePool(query.namePool()); - - /* Bind variables. */ - QPatternist::ExternalVariableLoader::Ptr loader(externalVariableLoader()); - if(loader) - { - Q_ASSERT(loader); - const ExternalSourceLoader::VariableMap vMap(static_cast<const ExternalSourceLoader *>(loader.data())->variableMap()); - const QStringList variables(vMap.keys()); - - for(int i = 0; i < variables.count(); ++i) - { - const QXmlName name(namePool, variables.at(i)); - const QXmlItem val(QPatternist::Item::toPublic(loader->evaluateSingleton(name, QPatternist::DynamicContext::Ptr()))); - query.bindVariable(name, val); - } - } - - /* We pass in the testCasePath(), such that the base URI is correct fort - * XSL-T stylesheets. */ - query.setQuery(queryString, testCasePath()); - - if(!query.isValid()) - { - pDebug() << "Got compilation exception."; - resultStatus = TestBaseLine::scanErrors(errHandler.messages(), baseLines()); - - Q_ASSERT(resultStatus != TestResult::Unknown); - m_result = new TestResult(name(), resultStatus, s_exprFact->astTree(), - errHandler.messages(), QPatternist::Item::List(), QString()); - retval.append(m_result); - ErrorHandler::installQtMessageHandler(0); - changed(this); - return retval; - } - - if(stage == CompileOnly) - { - m_result = new TestResult(name(), TestResult::Fail, s_exprFact->astTree(), - errHandler.messages(), QPatternist::Item::List(), QString()); - retval.append(m_result); - return retval; - } - - Q_ASSERT(stage == CompileAndRun); - - if(scen == ParseError) /* We're supposed to have received an error - at this point. */ - { - m_result = new TestResult(name(), TestResult::Fail, s_exprFact->astTree(), - errHandler.messages(), QPatternist::Item::List(), QString()); - ErrorHandler::installQtMessageHandler(0); - retval.append(m_result); - changed(this); - return retval; - } - - QPatternist::Item::List itemList; - - QByteArray output; - QBuffer buffer(&output); - buffer.open(QIODevice::WriteOnly); - - QXmlSerializer serializer(query, &buffer); - - pDebug() << "-------------------------- evaluateToPushCallback() ---------------------------- "; - const bool success = query.evaluateTo(&serializer); - pDebug() << "------------------------------------------------------------------------------------ "; - - buffer.close(); - - const QString serialized(QString::fromUtf8(output.constData(), output.size())); - - if(!success) - { - resultStatus = TestBaseLine::scanErrors(errHandler.messages(), baseLines()); - - Q_ASSERT(resultStatus != TestResult::Unknown); - m_result = new TestResult(name(), resultStatus, s_exprFact->astTree(), - errHandler.messages(), QPatternist::Item::List(), serialized); - retval.append(m_result); - ErrorHandler::installQtMessageHandler(0); - changed(this); - return retval; - } - - /* It's a regular test. */ - Q_ASSERT(scen == Standard || scen == RuntimeError); - - resultStatus = TestBaseLine::scan(serialized, baseLines()); - Q_ASSERT(resultStatus != TestResult::Unknown); - - /* Check that errHandler()->messages() at most only contains - * warnings, since it shouldn't have errors at this point. */ - const ErrorHandler::Message::List errors (errHandler.messages()); - const ErrorHandler::Message::List::const_iterator end(errors.constEnd()); - ErrorHandler::Message::List::const_iterator it(errors.constBegin()); - - for(; it != end; ++it) - { - const QtMsgType type = (*it).type(); - if(type == QtFatalMsg) - { - m_result = new TestResult(name(), TestResult::Fail, s_exprFact->astTree(), - errHandler.messages(), itemList, serialized); - retval.append(m_result); - ErrorHandler::installQtMessageHandler(0); - changed(this); - return retval; - } - } - - m_result = new TestResult(name(), resultStatus, s_exprFact->astTree(), - errHandler.messages(), itemList, serialized); - retval.append(m_result); - ErrorHandler::installQtMessageHandler(0); - changed(this); - return retval; -} - -TestCase::Scenario TestCase::scenarioFromString(const QString &string) -{ - if(string == QLatin1String("standard")) - return Standard; - else if(string == QLatin1String("parse-error")) - return ParseError; - else if(string == QLatin1String("runtime-error")) - return RuntimeError; - else if(string == QLatin1String("trivial")) - return Trivial; - else - { - Q_ASSERT_X(false, Q_FUNC_INFO, - qPrintable(QString::fromLatin1("Invalid string representation for the scenario-enum: %1").arg(string))); - return ParseError; /* Silence GCC. */ - } -} - -void TestCase::toXML(XMLWriter &receiver) const -{ - /* <test-case> */ - QXmlAttributes test_caseAtts; - test_caseAtts.append(QLatin1String("is-XPath2"), QString(), - QLatin1String("is-XPath2"), isXPath() ? QLatin1String("true") - : QLatin1String("false")); - test_caseAtts.append(QLatin1String("name"), QString(), QLatin1String("name"), name()); - test_caseAtts.append(QLatin1String("creator"), QString(), QLatin1String("creator"), creator()); - QString scen; - switch(scenario()) - { - case Standard: - { - scen = QLatin1String("standard"); - break; - } - case ParseError: - { - scen = QLatin1String("parse-error"); - break; - } - case RuntimeError: - { - scen = QLatin1String("runtime-error"); - break; - } - case Trivial: - { - scen = QLatin1String("trivial"); - break; - } - default: /* includes 'AnyError' */ - Q_ASSERT(false); - } - test_caseAtts.append(QLatin1String("scenario"), QString(), QLatin1String("scenario"), scen); - test_caseAtts.append(QLatin1String(QLatin1String("FilePath")), QString(), - QLatin1String("FilePath"), QString()); - receiver.startElement(QLatin1String("test-case"), test_caseAtts); - - /* <description> */ - receiver.startElement(QLatin1String("description"), test_caseAtts); - receiver.characters(description()); - - /* </description> */ - receiver.endElement(QLatin1String("description")); - - /* <query> */ - QXmlAttributes queryAtts; - queryAtts.append(QLatin1String("date"), QString(), QLatin1String("date"), /* This date is a dummy. */ - QDate::currentDate().toString(Qt::ISODate)); - queryAtts.append(QLatin1String("name"), QString(), QLatin1String("name"), testCasePath().toString()); - receiver.startElement(QLatin1String("query"), queryAtts); - - /* </query> */ - receiver.endElement(QLatin1String("query")); - - /* Note: this is invalid, we don't add spec-citation. */ - TestBaseLine::List bls(baseLines()); - const TestBaseLine::List::const_iterator end(bls.constEnd()); - TestBaseLine::List::const_iterator it(bls.constBegin()); - - for(; it != end; ++it) - (*it)->toXML(receiver); - - /* </test-case> */ - receiver.endElement(QLatin1String("test-case")); -} - -QString TestCase::displayName(const Scenario scen) -{ - switch(scen) - { - case Standard: - return QLatin1String("Standard"); - case ParseError: - return QLatin1String("Parse Error"); - case RuntimeError: - return QLatin1String("Runtime Error"); - case Trivial: - return QLatin1String("Trivial"); - case AnyError: - { - Q_ASSERT(false); - return QString(); - } - } - - Q_ASSERT(false); - return QString(); -} - -TestItem::ResultSummary TestCase::resultSummary() const -{ - if(m_result) - return ResultSummary(m_result->status() == TestResult::Pass ? 1 : 0, - 1); - - return ResultSummary(0, 1); -} - -void TestCase::appendChild(TreeItem *) -{ - Q_ASSERT_X(false, Q_FUNC_INFO, "Makes no sense to call appendChild() for TestCase."); -} - -TreeItem *TestCase::child(const unsigned int) const -{ - return 0; /* Silence GCC */ -} - -TreeItem::List TestCase::children() const -{ - return TreeItem::List(); -} - -unsigned int TestCase::childCount() const -{ - return 0; -} - -TestResult *TestCase::testResult() const -{ - return m_result; -} - -bool TestCase::isFinalNode() const -{ - return true; -} - -QXmlQuery::QueryLanguage TestCase::language() const -{ - return QXmlQuery::XQuery10; -} - -QXmlName TestCase::initialTemplateName() const -{ - return QXmlName(); -} - -// vim: et:ts=4:sw=4:sts=4 - |