diff options
Diffstat (limited to 'tests/auto/xmlpatternsxqts/test')
-rw-r--r-- | tests/auto/xmlpatternsxqts/test/test.pro | 26 | ||||
-rw-r--r-- | tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp | 175 | ||||
-rw-r--r-- | tests/auto/xmlpatternsxqts/test/tst_suitetest.h | 107 | ||||
-rw-r--r-- | tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp | 106 |
4 files changed, 0 insertions, 414 deletions
diff --git a/tests/auto/xmlpatternsxqts/test/test.pro b/tests/auto/xmlpatternsxqts/test/test.pro deleted file mode 100644 index a69838a..0000000 --- a/tests/auto/xmlpatternsxqts/test/test.pro +++ /dev/null @@ -1,26 +0,0 @@ -load(qttest_p4) -SOURCES += tst_xmlpatternsxqts.cpp ../../qxmlquery/TestFundament.cpp tst_suitetest.cpp - -include(../../xmlpatterns.pri) - -contains(QT_CONFIG,xmlpatterns) { - HEADERS += tst_suitetest.h - LIBS += -l$$XMLPATTERNS_SDK -} - -# syncqt doesn't copy headers in tools/ so let's manually ensure -# it works with shadow builds and source builds. -INCLUDEPATH += $$(QTDIR)/include/QtXmlPatterns/private \ - $$(QTSRCDIR)/include/QtXmlPatterns/private \ - $$(QTSRCDIR)/tools/xmlpatterns \ - $$(QTDIR)/tools/xmlpatterns \ - ../lib/ - -CONFIG += testlib -QT += xml -DESTDIR = .. -win32 { - CONFIG(debug, debug|release): DESTDIR = ../debug - else: DESTDIR = ../release -} -TARGET = tst_xmlpatternsxqts diff --git a/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp b/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp deleted file mode 100644 index 64120c7..0000000 --- a/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp +++ /dev/null @@ -1,175 +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 <QtTest/QtTest> - -#ifdef QTEST_XMLPATTERNS - -#include <QProcess> -#include "TestSuite.h" -#include "TestSuiteResult.h" -#include "XMLWriter.h" -#include "ExitCode.h" -#include "Worker.h" -#include "private/qautoptr_p.h" -#include "tst_suitetest.h" - -using namespace QPatternistSDK; - -tst_SuiteTest::tst_SuiteTest(const SuiteType suiteType, - const bool alwaysRun) : m_existingBaseline(inputFile(QLatin1String("Baseline.xml"))) - , m_candidateBaseline(inputFile(QLatin1String("CandidateBaseline.xml"))) - , m_abortRun(!alwaysRun && !QFile::exists(QLatin1String("runTests"))) - , m_suiteType(suiteType) -{ -} - -/*! - Returns an absolute path to the XQTS catalog, or flags a failure using - QTestLib's mechanisms. - - Finding the location of the catalog is done with `p4 where` such that we don't have - to care about where it is checked out. - */ -void tst_SuiteTest::initTestCase() -{ - catalogPath(m_catalogPath); -} - -/*! - Just runs the test suite and writes the result to m_candidateBaseline. - */ -void tst_SuiteTest::runTestSuite() const -{ - if(m_abortRun) - QSKIP("The test suite is not available, no tests are run.", SkipAll); - - QString errMsg; - const QFileInfo fi(m_catalogPath); - const QUrl catalogPath(QUrl::fromLocalFile(fi.absoluteFilePath())); - - TestSuite::SuiteType suiteType; - switch (m_suiteType) { - case XQuerySuite: suiteType = TestSuite::XQuerySuite; - case XsltSuite: suiteType = TestSuite::XsltSuite; - case XsdSuite: suiteType = TestSuite::XsdSuite; - default: break; - } - - TestSuite *const ts = TestSuite::openCatalog(catalogPath, errMsg, true, suiteType); - - QVERIFY2(ts, qPrintable(QString::fromLatin1("Failed to open the catalog, maybe it doesn't exist or is broken: %1").arg(errMsg))); - - /* Run the tests, and serialize the result(as according to XQTSResult.xsd) to standard out. */ - TestSuiteResult *const result = ts->runSuite(); - Q_ASSERT(result); - - QFile out(m_candidateBaseline); - QVERIFY(out.open(QIODevice::WriteOnly)); - - XMLWriter serializer(&out); - result->toXML(serializer); - - delete result; - delete ts; -} - -void tst_SuiteTest::checkTestSuiteResult() const -{ - if(m_abortRun) - QSKIP("This test takes too long time to run on the majority of platforms.", SkipAll); - - typedef QList<QFileInfo> QFileInfoList; - - const QFileInfo baseline(m_existingBaseline); - const QFileInfo result(m_candidateBaseline); - QFileInfoList list; - list.append(baseline); - list.append(result); - - const QFileInfoList::const_iterator end(list.constEnd()); - - QEventLoop eventLoop; - const QPatternist::AutoPtr<Worker> worker(new Worker(eventLoop, m_existingBaseline, result)); - - /* Passed to ResultThreader so it knows what kind of file it is handling. */ - ResultThreader::Type type = ResultThreader::Baseline; - - QProcess::execute(QLatin1String("p4 edit ") + m_existingBaseline); - - for(QFileInfoList::const_iterator it(list.constBegin()); it != end; ++it) - { - QFileInfo i(*it); - i.makeAbsolute(); - - QVERIFY2(i.exists(), qPrintable(QString::fromLatin1("File %1 does not exist.") - .arg(i.fileName()))); - - QFile *const file = new QFile(i.absoluteFilePath(), worker.data()); - - QVERIFY2(file->open(QIODevice::ReadOnly), qPrintable(QString::fromLatin1("Could not open file %1 for reading.") - .arg(i.fileName()))); - - ResultThreader *handler = new ResultThreader(eventLoop, file, type, worker.data()); - - QObject::connect(handler, SIGNAL(finished()), worker.data(), SLOT(threadFinished())); - - handler->start(); /* Start the thread. It now parses the file - and emits threadFinished() when done. */ - type = ResultThreader::Result; - } - - const int exitCode = eventLoop.exec(); - - QProcess::execute(QLatin1String("p4 revert -a ") + m_existingBaseline); - - QCOMPARE(exitCode, 0); -} - -bool tst_SuiteTest::dontRun() const -{ - return m_abortRun; -} -#endif - - -// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/test/tst_suitetest.h b/tests/auto/xmlpatternsxqts/test/tst_suitetest.h deleted file mode 100644 index 22e384a..0000000 --- a/tests/auto/xmlpatternsxqts/test/tst_suitetest.h +++ /dev/null @@ -1,107 +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$ -** -****************************************************************************/ - - -#ifndef Q_tst_SuiteTest -#define Q_tst_SuiteTest - -#include <QtCore/QObject> -#include "../../qxmlquery/TestFundament.h" - -/*! - \class tst_SuiteTest - \internal - \since 4.5 - \brief Base class for tst_XmlPatternsXQTS, tst_XmlPatternsXSLTS and tst_XmlPatternsXSDTS. - */ -class tst_SuiteTest : public QObject - , private TestFundament -{ - Q_OBJECT - -public: - enum SuiteType - { - XQuerySuite, - XsltSuite, - XsdSuite - }; - -protected: - /** - * @p isXSLT is @c true if the catalog opened is an - * XSL-T test suite. - * - * @p alwaysRun is @c true if the test should always be run, - * regardless of if the file runTests exists. - */ - tst_SuiteTest(SuiteType type, - const bool alwaysRun = false); - - /** - * The reason why we pass in a mutable reference and have void as return - * value instead of simply returning the string, is that we in some - * implementations use QTestLib's macros such as QVERIFY, which contains - * return statements. Yay for QTestLib. - */ - virtual void catalogPath(QString &write) const = 0; - - bool dontRun() const; - -private Q_SLOTS: - void initTestCase(); - void runTestSuite() const; - void checkTestSuiteResult() const; - -private: - /** - * An absolute path to the catalog. - */ - QString m_catalogPath; - const QString m_existingBaseline; - const QString m_candidateBaseline; - const bool m_abortRun; - const SuiteType m_suiteType; -}; - -#endif - -// vim: et:ts=4:sw=4:sts=4 diff --git a/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp b/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp deleted file mode 100644 index 890234e..0000000 --- a/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp +++ /dev/null @@ -1,106 +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 <QtTest/QtTest> - -#ifdef QTEST_XMLPATTERNS - -#include "tst_suitetest.h" - -/*! - \class tst_XmlPatternsXQTS - \internal - \since 4.4 - \brief Tests the actual engine by running W3C's conformance test suite. - */ -class tst_XmlPatternsXQTS : public tst_SuiteTest -{ - Q_OBJECT -public: - tst_XmlPatternsXQTS(); -public: - virtual void catalogPath(QString &write) const; -}; - -tst_XmlPatternsXQTS::tst_XmlPatternsXQTS() : tst_SuiteTest(tst_SuiteTest::XQuerySuite) -{ -} - -void tst_XmlPatternsXQTS::catalogPath(QString &write) const -{ - if(dontRun()) - QSKIP("This test takes too long time to run on the majority of platforms.", SkipAll); - - QProcess p4; - - QStringList arguments; - arguments << QLatin1String("where") - << QLatin1String("//depot/autotests/4.4/tests/auto/xmlpatternsxqts/XQTS/XQTSCatalog.xml"); - p4.start(QLatin1String("p4"), arguments); - QVERIFY(p4.waitForFinished()); - QCOMPARE(p4.exitCode(), 0); - QCOMPARE(p4.exitStatus(), QProcess::NormalExit); - - /* `p4 where' prints for instance: - * - * //depot/qt/4.4/tests/auto/xmlpatternsxqts/... //fenglich-englich/qt-4.4/tests/auto/xmlpatternsxqts/... /home/fenglich/dev/autotests/4.4/tests/auto/xmlpatternsxqts/XQTS/XQTSCatalog.xml - * - * so we want the last string. - */ - write = QString::fromLocal8Bit(p4.readAllStandardOutput()).split(QLatin1Char(' ')).last().trimmed(); - - if(write.isEmpty() || !QFile::exists(write)) - { - QEXPECT_FAIL("", "//depot/autotests/4.4/tests/auto/xmlpatternsxqts/XQTS/ must be part of the perforce client spec, " - "checked out at an arbitrary location, for this test to run. The test suite will now be skipped.", Abort); - QVERIFY(false); - } -} - -QTEST_MAIN(tst_XmlPatternsXQTS) - -#include "tst_xmlpatternsxqts.moc" -#else -QTEST_NOOP_MAIN -#endif - -// vim: et:ts=4:sw=4:sts=4 |