Commit 828b61e9 authored by Christian Stenger's avatar Christian Stenger
Browse files

Add qbs project files to unit tests



Change-Id: I27918b0beaa39926c13dbf54e1479502a598a598
Reviewed-by: default avatarChristian Kandeler <christian.kandeler@theqtcompany.com>
parent 7c06e4b7
......@@ -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>
import qbs
Project {
references: [
"src/src.qbs",
"tests/tests.qbs"
]
}
import qbs
CppApplication {
type: "application"
name: "Dummy Application"
Depends { name: "Qt.gui" }
Depends { name: "Qt.widgets" }
files: [ "main.cpp" ]
}
import qbs
Project {
name: "Auto tests"
references: [
"bench/bench.qbs",
"dummy/dummy.qbs",
"gui/gui.qbs",
"quickauto/quickauto.qbs",
"quickauto2/quickauto2.qbs"
]
}
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)
}
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" ]
}
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)
}
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 + "\"")
}
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 + "\"")
}
import qbs
Project {
name: "Tests"
references: [ "auto/auto.qbs" ]
}
import qbs
Project {
name: "Plain test project"
references: [ "test_plain/test_plain.qbs" ]
}
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" ]
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment