aboutsummaryrefslogtreecommitdiffstats
path: root/sources
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-12-11 13:28:48 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-12-15 20:41:57 +0000
commitc41803fc2699195609759b4d1e64aff1f1dedf4f (patch)
tree31aa5e95d828cf7691e581b77af5c2ea7f99b9fb /sources
parent05dd4d064604a505f0d38cc3eb59c88d3fa911dc (diff)
shiboken6: Reactivate sphinxtable test
Rename the test to qtxmltosphinx, move it into its own subdirectory and rewrite it as a data-driven test. Skip one failing test. It can be extended in the future to test other functionality of QtXmlToSphinx. Change-Id: Ib732e659952e39a37d7e5b556a951cecbee248be Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit d1afee4a0a7f89f0b9628322d8d68035c363c0b1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'sources')
-rw-r--r--sources/shiboken6/tests/CMakeLists.txt24
-rw-r--r--sources/shiboken6/tests/qtxmltosphinxtest/CMakeLists.txt34
-rw-r--r--sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.cpp (renamed from sources/shiboken6/tests/sphinxtabletest.cpp)133
-rw-r--r--sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.h (renamed from sources/shiboken6/tests/sphinxtabletest.h)39
4 files changed, 140 insertions, 90 deletions
diff --git a/sources/shiboken6/tests/CMakeLists.txt b/sources/shiboken6/tests/CMakeLists.txt
index fcd3f43bd..76b94d4c1 100644
--- a/sources/shiboken6/tests/CMakeLists.txt
+++ b/sources/shiboken6/tests/CMakeLists.txt
@@ -65,27 +65,5 @@ add_subdirectory(dumpcodemodel)
# add_subdirectory(test_generator)
if (NOT APIEXTRACTOR_DOCSTRINGS_DISABLED)
-# project(sphinxtabletest)
-#
-# # TODO
-# set(sphinxtabletest_SRC sphinxtabletest.cpp)
-# qt4_automoc(${sphinxtabletest_SRC})
-#
-# include_directories(${QT_INCLUDE_DIR}
-# ${QT_QTCORE_INCLUDE_DIR}
-# ${CMAKE_CURRENT_BINARY_DIR}
-# ${qtdoc_generator_SOURCE_DIR})
-#
-# add_executable(sphinxtabletest ${sphinxtabletest_SRC})
-#
-# target_link_libraries(sphinxtabletest
-# ${QT_QTTEST_LIBRARY}
-# ${APIEXTRACTOR_LIBRARY}
-# qtdoc_generator
-# genrunner)
-#
-# add_test("sphinxtable" sphinxtabletest)
-# if (INSTALL_TESTS)
-# install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/sphinxtabletest DESTINATION ${TEST_INSTALL_DIR})
-# endif()
+ add_subdirectory(qtxmltosphinxtest)
endif()
diff --git a/sources/shiboken6/tests/qtxmltosphinxtest/CMakeLists.txt b/sources/shiboken6/tests/qtxmltosphinxtest/CMakeLists.txt
new file mode 100644
index 000000000..3c1df916e
--- /dev/null
+++ b/sources/shiboken6/tests/qtxmltosphinxtest/CMakeLists.txt
@@ -0,0 +1,34 @@
+cmake_minimum_required(VERSION 3.16)
+
+project(qtxmltosphinxtest)
+
+set(CMAKE_AUTOMOC ON)
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Test)
+
+set(generator_src_dir ${CMAKE_CURRENT_SOURCE_DIR}/../../generator)
+set(api_extractor_src_dir ${CMAKE_CURRENT_SOURCE_DIR}/../../ApiExtractor)
+
+set(qtxmltosphinxtest_SRC
+ ${generator_src_dir}/qtdoc/qtxmltosphinx.cpp
+ ${api_extractor_src_dir}/textstream.cpp
+ qtxmltosphinxtest.cpp
+ qtxmltosphinxtest.h)
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR}
+ ${api_extractor_src_dir}
+ ${generator_src_dir}
+ ${generator_src_dir}/shiboken
+ ${generator_src_dir}/qtdoc)
+
+add_executable(qtxmltosphinxtest ${qtxmltosphinxtest_SRC})
+
+target_link_libraries(qtxmltosphinxtest PRIVATE
+ Qt::Core
+ Qt::Test)
+
+add_test("qtxmltosphinx" qtxmltosphinxtest)
+if (INSTALL_TESTS)
+ install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/qtxmltosphinxtest DESTINATION ${TEST_INSTALL_DIR})
+endif()
diff --git a/sources/shiboken6/tests/sphinxtabletest.cpp b/sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.cpp
index 5ad56fb69..6e47ea688 100644
--- a/sources/shiboken6/tests/sphinxtabletest.cpp
+++ b/sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the test suite of Qt for Python.
@@ -26,35 +26,50 @@
**
****************************************************************************/
-#include "sphinxtabletest.h"
-#include "qtdocgenerator.h"
+#include "qtxmltosphinxtest.h"
+#include "qtxmltosphinx.h"
#include <QtTest/QTest>
-#include <QDebug>
-QString SphinxTableTest::transformXml(const char* xml)
+#include <QtCore/QDebug>
+#include <QtCore/QLoggingCategory>
+
+Q_LOGGING_CATEGORY(lcQtXmlToSphinxTest, "qt.sphinxtabletest");
+
+// QtXmlToSphinxDocGeneratorInterface
+QString QtXmlToSphinxTest::expandFunction(const QString &) const
+{
+ return {};
+}
+
+QString QtXmlToSphinxTest::expandClass(const QString &, const QString &) const
{
- return QtXmlToSphinx(m_generator, xml).result();
+ return {};
}
-void SphinxTableTest::setUp()
+QString QtXmlToSphinxTest::resolveContextForMethod(const QString &, const QString &) const
{
- m_generator = new QtDocGenerator;
+ return {};
}
-void SphinxTableTest::tearDown()
+const QLoggingCategory &QtXmlToSphinxTest::loggingCategory() const
{
- delete m_generator;
+ return lcQtXmlToSphinxTest();
}
-void SphinxTableTest::testEmptyString()
+QString QtXmlToSphinxTest::transformXml(const QString &xml) const
{
- const char* xml = "";
- QCOMPARE(transformXml(xml), QString());
+ return QtXmlToSphinx(this, m_parameters, xml).result();
}
-void SphinxTableTest::testSimpleTable()
+void QtXmlToSphinxTest::testTable_data()
{
- const char* xml = "\
+ QTest::addColumn<QString>("xml");
+ QTest::addColumn<QString>("expected");
+
+ QTest::newRow("emptyString") << QString() << QString();
+
+ // testSimpleTable
+ const char *xml = "\
<table>\
<header>\
<item>\
@@ -81,7 +96,8 @@ void SphinxTableTest::testSimpleTable()
</item>\
</row>\
</table>";
- QCOMPARE(transformXml(xml), QString("\
+
+ const char *expected = "\n\
+--------+--------+\n\
|Header 1|Header 2|\n\
+--------+--------+\n\
@@ -89,12 +105,13 @@ void SphinxTableTest::testSimpleTable()
+--------+--------+\n\
|2 1 |2 2 |\n\
+--------+--------+\n\
-\n"));
-}
+\n";
-void SphinxTableTest::testColSpan()
-{
- const char* xml = "\
+ QTest::newRow("testSimpleTable")
+ << QString::fromLatin1(xml) << QString::fromLatin1(expected);
+
+ // testRowSpan
+ xml = "\
<table>\
<header>\
<item>\
@@ -118,7 +135,8 @@ void SphinxTableTest::testColSpan()
</item>\
</row>\
</table>";
- QCOMPARE(transformXml(xml), QString("\
+
+ expected = "\n\
+---------------+--------+\n\
|Header 1 |Header 2|\n\
+---------------+--------+\n\
@@ -126,13 +144,13 @@ void SphinxTableTest::testColSpan()
+---------------+--------+\n\
|2 1 |2 2 |\n\
+---------------+--------+\n\
-\n"));
-}
+\n";
+ QTest::newRow("testColSpan")
+ << QString::fromLatin1(xml) << QString::fromLatin1(expected);
-void SphinxTableTest::testRowSpan()
-{
- const char* xml = "\
+ // testRowSpan
+ xml = "\
<table>\
<header>\
<item>\
@@ -156,7 +174,8 @@ void SphinxTableTest::testRowSpan()
</item>\
</row>\
</table>";
- QCOMPARE(transformXml(xml), QString("\
+
+ expected = "\n\
+--------+--------+\n\
|Header 1|Header 2|\n\
+--------+--------+\n\
@@ -164,13 +183,13 @@ void SphinxTableTest::testRowSpan()
+ +--------+\n\
| |2 2 |\n\
+--------+--------+\n\
-\n"));
-}
+\n";
+ QTest::newRow("testRowSpan")
+ << QString::fromLatin1(xml) << QString::fromLatin1(expected);
-void SphinxTableTest::testComplexTable()
-{
- const char* xml = "\
+ // testComplexTable
+ xml = "\
<table>\
<header>\
<item>\
@@ -200,7 +219,8 @@ void SphinxTableTest::testComplexTable()
</item>\
</row>\
</table>";
- QCOMPARE(transformXml(xml), QString("\
+
+ expected = "\n\
+--------+--------+--------+\n\
|Header 1|Header 2|Header 3|\n\
+--------+--------+--------+\n\
@@ -208,12 +228,13 @@ void SphinxTableTest::testComplexTable()
+ +--------+--------+\n\
| |2 2 |2 3 |\n\
+--------+--------+--------+\n\
-\n"));
-}
+\n";
-void SphinxTableTest::testRowSpan2()
-{
- const char* xml = "\
+ QTest::newRow("testComplexTable")
+ << QString::fromLatin1(xml) << QString::fromLatin1(expected);
+
+ // testRowSpan2
+ xml = "\
<table>\
<header>\
<item><para>h1</para></item>\
@@ -248,7 +269,8 @@ void SphinxTableTest::testRowSpan2()
<item><para>F</para></item>\
</row>\
</table>";
- QCOMPARE(transformXml(xml), QString("\
+
+ expected = "\n\
+--+--+--+--+\n\
|h1|h2|h3|h4|\n\
+--+--+--+--+\n\
@@ -264,12 +286,13 @@ void SphinxTableTest::testRowSpan2()
+ + +--+--+\n\
| | |E |F |\n\
+--+--+--+--+\n\
-\n"));
-}
+\n";
-void SphinxTableTest::testBrokenTable()
-{
- const char* xml = "\
+ QTest::newRow("testRowSpan2")
+ << QString::fromLatin1(xml) << QString::fromLatin1(expected);
+
+ // testBrokenTable
+ xml = "\
<table>\
<header>\
<item>\
@@ -313,7 +336,8 @@ void SphinxTableTest::testBrokenTable()
</item>\
</row>\
</table>";
- QCOMPARE(transformXml(xml), QString("\
+
+ expected = "\n\
+--------+------------+\n\
|Header 1|Header 2 |\n\
+--------+------------+\n\
@@ -323,10 +347,21 @@ void SphinxTableTest::testBrokenTable()
+--------+------------+\n\
|3 1 |3 2 3 3 |\n\
+--------+------------+\n\
-\n"));
+\n";
+
+ QTest::newRow("testBrokenTable")
+ << QString::fromLatin1(xml) << QString::fromLatin1(expected);
}
+void QtXmlToSphinxTest::testTable()
+{
+ QFETCH(QString, xml);
+ QFETCH(QString, expected);
+
+ const QString actual = transformXml(xml);
-QTEST_APPLESS_MAIN( SphinxTableTest )
+ QEXPECT_FAIL("testBrokenTable", "testBrokenTable fails", Continue);
+ QCOMPARE(actual, expected);
+}
-#include "sphinxtabletest.moc"
+QTEST_APPLESS_MAIN( QtXmlToSphinxTest)
diff --git a/sources/shiboken6/tests/sphinxtabletest.h b/sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.h
index bba020207..17afe162c 100644
--- a/sources/shiboken6/tests/sphinxtabletest.h
+++ b/sources/shiboken6/tests/qtxmltosphinxtest/qtxmltosphinxtest.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the test suite of Qt for Python.
@@ -26,29 +26,32 @@
**
****************************************************************************/
-#ifndef SPHINXTABLETEST_H
-#define SPHINXTABLETEST_H
+#ifndef QTXMLTOSPHINXTEST_H
+#define QTXMLTOSPHINXTEST_H
-#include <QObject>
+#include "qtxmltosphinxinterface.h"
-class QtDocGenerator;
-class SphinxTableTest : public QObject {
+#include <QtCore/QObject>
+
+class QtXmlToSphinxTest : public QObject, public QtXmlToSphinxDocGeneratorInterface
+{
Q_OBJECT
+public:
+ // QtXmlToSphinxDocGeneratorInterface
+ QString expandFunction(const QString &) const override;
+ QString expandClass(const QString &, const QString &) const;
+ QString resolveContextForMethod(const QString &,
+ const QString &) const override;
+ const QLoggingCategory &loggingCategory() const override;
private slots:
- void setUp();
- void tearDown();
- void testEmptyString();
- void testSimpleTable();
- void testRowSpan();
- void testColSpan();
- void testComplexTable();
- void testRowSpan2();
- void testBrokenTable();
+ void testTable_data();
+ void testTable();
+
private:
- QtDocGenerator* m_generator;
+ QString transformXml(const QString &xml) const;
- QString transformXml(const char* xml);
+ QtXmlToSphinxParameters m_parameters;
};
-#endif
+#endif // QTXMLTOSPHINXTEST_H