forked from qt-creator/qt-creator
Add qbs project files to unit tests
Change-Id: I27918b0beaa39926c13dbf54e1479502a598a598 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This commit is contained in:
@@ -12,6 +12,7 @@ QtcCommercialPlugin {
|
||||
Depends { name: "Utils" }
|
||||
|
||||
pluginTestDepends: [
|
||||
"QbsProjectManager",
|
||||
"QmakeProjectManager"
|
||||
]
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ QTC_LIB_DEPENDS += \
|
||||
utils
|
||||
|
||||
QTC_TEST_DEPENDS += \
|
||||
qbsprojectmanager \
|
||||
qmakeprojectmanager \
|
||||
qtsupport
|
||||
|
||||
|
||||
@@ -117,6 +117,66 @@ void AutoTestUnitTests::testCodeParser_data()
|
||||
QTest::newRow("mixedAutoTestAndQuickTests")
|
||||
<< QString(m_tmpDir->path() + QLatin1String("/mixed_atp/mixed_atp.pro"))
|
||||
<< 3 << 5 << 3;
|
||||
QTest::newRow("plainAutoTestQbs")
|
||||
<< QString(m_tmpDir->path() + QLatin1String("/plain/plain.qbs"))
|
||||
<< 1 << 0 << 0;
|
||||
QTest::newRow("mixedAuotTestAndQuickTestsQbs")
|
||||
<< QString(m_tmpDir->path() + QLatin1String("/mixed_atp/mixed_atp.qbs"))
|
||||
<< 3 << 5 << 3;
|
||||
}
|
||||
|
||||
void AutoTestUnitTests::testCodeParserSwitchStartup()
|
||||
{
|
||||
QFETCH(QStringList, projectFilePaths);
|
||||
QFETCH(QList<int>, expectedAutoTestsCount);
|
||||
QFETCH(QList<int>, expectedNamedQuickTestsCount);
|
||||
QFETCH(QList<int>, expectedUnnamedQuickTestsCount);
|
||||
|
||||
NavigationWidget *navigation = NavigationWidget::instance();
|
||||
navigation->activateSubWidget(Constants::AUTOTEST_ID);
|
||||
|
||||
CppTools::Tests::ProjectOpenerAndCloser projectManager;
|
||||
for (int i = 0; i < projectFilePaths.size(); ++i) {
|
||||
qDebug() << "Opening project" << projectFilePaths.at(i);
|
||||
CppTools::ProjectInfo projectInfo = projectManager.open(projectFilePaths.at(i), true);
|
||||
QVERIFY(projectInfo.isValid());
|
||||
|
||||
QSignalSpy parserSpy(m_model->parser(), SIGNAL(parsingFinished()));
|
||||
QVERIFY(parserSpy.wait(20000));
|
||||
|
||||
QCOMPARE(m_model->autoTestsCount(), expectedAutoTestsCount.at(i));
|
||||
QCOMPARE(m_model->namedQuickTestsCount(),
|
||||
m_isQt4 ? 0 : expectedNamedQuickTestsCount.at(i));
|
||||
QCOMPARE(m_model->unnamedQuickTestsCount(),
|
||||
m_isQt4 ? 0 : expectedUnnamedQuickTestsCount.at(i));
|
||||
|
||||
QCOMPARE(m_model->parser()->autoTestsCount(), expectedAutoTestsCount.at(i));
|
||||
QCOMPARE(m_model->parser()->namedQuickTestsCount(),
|
||||
m_isQt4 ? 0 : expectedNamedQuickTestsCount.at(i));
|
||||
QCOMPARE(m_model->parser()->unnamedQuickTestsCount(),
|
||||
m_isQt4 ? 0 : expectedUnnamedQuickTestsCount.at(i));
|
||||
}
|
||||
}
|
||||
|
||||
void AutoTestUnitTests::testCodeParserSwitchStartup_data()
|
||||
{
|
||||
QTest::addColumn<QStringList>("projectFilePaths");
|
||||
QTest::addColumn<QList<int> >("expectedAutoTestsCount");
|
||||
QTest::addColumn<QList<int> >("expectedNamedQuickTestsCount");
|
||||
QTest::addColumn<QList<int> >("expectedUnnamedQuickTestsCount");
|
||||
|
||||
QStringList projects = QStringList()
|
||||
<< QString(m_tmpDir->path() + QLatin1String("/plain/plain.pro"))
|
||||
<< QString(m_tmpDir->path() + QLatin1String("/mixed_atp/mixed_atp.pro"))
|
||||
<< QString(m_tmpDir->path() + QLatin1String("/plain/plain.qbs"))
|
||||
<< QString(m_tmpDir->path() + QLatin1String("/mixed_atp/mixed_atp.qbs"));
|
||||
|
||||
QList<int> expectedAutoTests = QList<int>() << 1 << 3 << 1 << 3;
|
||||
QList<int> expectedNamedQuickTests = QList<int>() << 0 << 5 << 0 << 5;
|
||||
QList<int> expectedUnnamedQuickTests = QList<int>() << 0 << 3 << 0 << 3;
|
||||
|
||||
QTest::newRow("loadMultipleProjects")
|
||||
<< projects << expectedAutoTests << expectedNamedQuickTests << expectedUnnamedQuickTests;
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -43,6 +43,8 @@ private slots:
|
||||
void cleanupTestCase();
|
||||
void testCodeParser();
|
||||
void testCodeParser_data();
|
||||
void testCodeParserSwitchStartup();
|
||||
void testCodeParserSwitchStartup_data();
|
||||
|
||||
private:
|
||||
TestTreeModel *m_model;
|
||||
|
||||
@@ -28,5 +28,16 @@
|
||||
<file>unit_test/mixed_atp/tests/auto/quickauto/quickauto.pro</file>
|
||||
<file>unit_test/mixed_atp/tests/auto/quickauto2/quickauto2.pro</file>
|
||||
<file>unit_test/mixed_atp/tests/auto/auto.pro</file>
|
||||
<file>unit_test/plain/plain.qbs</file>
|
||||
<file>unit_test/plain/test_plain/test_plain.qbs</file>
|
||||
<file>unit_test/mixed_atp/mixed_atp.qbs</file>
|
||||
<file>unit_test/mixed_atp/src/src.qbs</file>
|
||||
<file>unit_test/mixed_atp/tests/tests.qbs</file>
|
||||
<file>unit_test/mixed_atp/tests/auto/auto.qbs</file>
|
||||
<file>unit_test/mixed_atp/tests/auto/bench/bench.qbs</file>
|
||||
<file>unit_test/mixed_atp/tests/auto/dummy/dummy.qbs</file>
|
||||
<file>unit_test/mixed_atp/tests/auto/gui/gui.qbs</file>
|
||||
<file>unit_test/mixed_atp/tests/auto/quickauto/quickauto.qbs</file>
|
||||
<file>unit_test/mixed_atp/tests/auto/quickauto2/quickauto2.qbs</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
8
plugins/autotest/unit_test/mixed_atp/mixed_atp.qbs
Normal file
8
plugins/autotest/unit_test/mixed_atp/mixed_atp.qbs
Normal file
@@ -0,0 +1,8 @@
|
||||
import qbs
|
||||
|
||||
Project {
|
||||
references: [
|
||||
"src/src.qbs",
|
||||
"tests/tests.qbs"
|
||||
]
|
||||
}
|
||||
11
plugins/autotest/unit_test/mixed_atp/src/src.qbs
Normal file
11
plugins/autotest/unit_test/mixed_atp/src/src.qbs
Normal file
@@ -0,0 +1,11 @@
|
||||
import qbs
|
||||
|
||||
CppApplication {
|
||||
type: "application"
|
||||
name: "Dummy Application"
|
||||
|
||||
Depends { name: "Qt.gui" }
|
||||
Depends { name: "Qt.widgets" }
|
||||
|
||||
files: [ "main.cpp" ]
|
||||
}
|
||||
13
plugins/autotest/unit_test/mixed_atp/tests/auto/auto.qbs
Normal file
13
plugins/autotest/unit_test/mixed_atp/tests/auto/auto.qbs
Normal file
@@ -0,0 +1,13 @@
|
||||
import qbs
|
||||
|
||||
Project {
|
||||
name: "Auto tests"
|
||||
|
||||
references: [
|
||||
"bench/bench.qbs",
|
||||
"dummy/dummy.qbs",
|
||||
"gui/gui.qbs",
|
||||
"quickauto/quickauto.qbs",
|
||||
"quickauto2/quickauto2.qbs"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import qbs
|
||||
|
||||
CppApplication {
|
||||
type: "application"
|
||||
name: "Benchmark Auto Test"
|
||||
targetName: "tst_benchtest"
|
||||
|
||||
Depends { name: "cpp" }
|
||||
Depends { name: "Qt.test" }
|
||||
|
||||
files: [ "tst_benchtest.cpp" ]
|
||||
|
||||
cpp.defines: base.concat("SRCDIR=" + path)
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import qbs
|
||||
|
||||
CppApplication {
|
||||
type: "application"
|
||||
name: "Dummy auto test"
|
||||
targetName: "tst_FooBar"
|
||||
|
||||
Depends { name: "Qt.test" }
|
||||
Depends { name: "Qt.gui" }
|
||||
|
||||
files: [ "tst_foo.cpp", "tst_foo.h" ]
|
||||
}
|
||||
13
plugins/autotest/unit_test/mixed_atp/tests/auto/gui/gui.qbs
Normal file
13
plugins/autotest/unit_test/mixed_atp/tests/auto/gui/gui.qbs
Normal file
@@ -0,0 +1,13 @@
|
||||
import qbs
|
||||
|
||||
CppApplication {
|
||||
name: "Gui auto test"
|
||||
targetName: "tst_gui"
|
||||
|
||||
Depends { name: "Qt"; submodules: [ "gui", "widgets", "test" ] }
|
||||
Depends { name: "cpp" }
|
||||
|
||||
files: [ "tst_guitest.cpp" ]
|
||||
|
||||
cpp.defines: base.concat("SRCDIR=" + path)
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import qbs
|
||||
|
||||
CppApplication {
|
||||
name: "Qt Quick auto test"
|
||||
targetName: "test_mal_qtquick"
|
||||
|
||||
Depends { name: "cpp" }
|
||||
Depends { name: "Qt.core" }
|
||||
Depends {
|
||||
condition: Qt.core.versionMajor > 4
|
||||
name: "Qt.qmltest"
|
||||
}
|
||||
|
||||
Group {
|
||||
name: "main application"
|
||||
condition: Qt.core.versionMajor > 4
|
||||
|
||||
files: [ "main.cpp" ]
|
||||
}
|
||||
|
||||
Group {
|
||||
name: "qml test files"
|
||||
qbs.install: true
|
||||
|
||||
files: [
|
||||
"tst_test1.qml", "tst_test2.qml", "TestDummy.qml",
|
||||
"bar/tst_foo.qml", "tst_test3.qml"
|
||||
]
|
||||
}
|
||||
|
||||
// this should be set automatically, but it seems as if this does not happen
|
||||
cpp.defines: base.concat("QUICK_TEST_SOURCE_DIR=\"" + path + "\"")
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
import qbs
|
||||
|
||||
CppApplication {
|
||||
name: "Qt Quick auto test 2"
|
||||
targetName: "test_mal_qtquick"
|
||||
|
||||
Depends { name: "cpp" }
|
||||
Depends { name: "Qt.core" }
|
||||
Depends {
|
||||
condition: Qt.core.versionMajor > 4
|
||||
name: "Qt.qmltest"
|
||||
}
|
||||
|
||||
Group {
|
||||
condition: Qt.core.versionMajor > 4
|
||||
name: "main application"
|
||||
files: [ "main.cpp" ]
|
||||
}
|
||||
|
||||
Group {
|
||||
name: "qml test files"
|
||||
qbs.install: true
|
||||
|
||||
files: [ "tst_test1.qml", "tst_test2.qml" ]
|
||||
}
|
||||
|
||||
// this should be set automatically, but it seems as if this does not happen
|
||||
cpp.defines: base.concat("QUICK_TEST_SOURCE_DIR=\"" + path + "\"")
|
||||
}
|
||||
7
plugins/autotest/unit_test/mixed_atp/tests/tests.qbs
Normal file
7
plugins/autotest/unit_test/mixed_atp/tests/tests.qbs
Normal file
@@ -0,0 +1,7 @@
|
||||
import qbs
|
||||
|
||||
Project {
|
||||
name: "Tests"
|
||||
|
||||
references: [ "auto/auto.qbs" ]
|
||||
}
|
||||
7
plugins/autotest/unit_test/plain/plain.qbs
Normal file
7
plugins/autotest/unit_test/plain/plain.qbs
Normal file
@@ -0,0 +1,7 @@
|
||||
import qbs
|
||||
|
||||
Project {
|
||||
name: "Plain test project"
|
||||
|
||||
references: [ "test_plain/test_plain.qbs" ]
|
||||
}
|
||||
10
plugins/autotest/unit_test/plain/test_plain/test_plain.qbs
Normal file
10
plugins/autotest/unit_test/plain/test_plain/test_plain.qbs
Normal file
@@ -0,0 +1,10 @@
|
||||
import qbs
|
||||
|
||||
CppApplication {
|
||||
type: "application" // suppress bundle generation on OSX
|
||||
|
||||
Depends { name: "Qt.gui" }
|
||||
Depends { name: "Qt.test" }
|
||||
|
||||
files: [ "tst_simple.cpp", "tst_simple.h" ]
|
||||
}
|
||||
Reference in New Issue
Block a user