forked from qt-creator/qt-creator
AutoTest: Provide additional test project...
...to also test combination of Qbs using Google Test. Change-Id: I4a5d32a32bfaadd0dfaaa4884b58d2ac1a952bd3 Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This commit is contained in:
@@ -194,9 +194,9 @@ void AutoTestUnitTests::testCodeParserGTest()
|
|||||||
if (qgetenv("GOOGLETEST_DIR").isEmpty())
|
if (qgetenv("GOOGLETEST_DIR").isEmpty())
|
||||||
QSKIP("This test needs googletest - set GOOGLETEST_DIR (point to googletest repository)");
|
QSKIP("This test needs googletest - set GOOGLETEST_DIR (point to googletest repository)");
|
||||||
|
|
||||||
|
QFETCH(QString, projectFilePath);
|
||||||
CppTools::Tests::ProjectOpenerAndCloser projectManager;
|
CppTools::Tests::ProjectOpenerAndCloser projectManager;
|
||||||
CppTools::ProjectInfo projectInfo = projectManager.open(
|
CppTools::ProjectInfo projectInfo = projectManager.open(projectFilePath, true);
|
||||||
QString(m_tmpDir->path() + QLatin1String("/simple_gt/simple_gt.pro")), true);
|
|
||||||
QVERIFY(projectInfo.isValid());
|
QVERIFY(projectInfo.isValid());
|
||||||
|
|
||||||
QSignalSpy parserSpy(m_model->parser(), SIGNAL(parsingFinished()));
|
QSignalSpy parserSpy(m_model->parser(), SIGNAL(parsingFinished()));
|
||||||
@@ -226,5 +226,14 @@ void AutoTestUnitTests::testCodeParserGTest()
|
|||||||
QCOMPARE(m_model->dataTagsCount(), 0);
|
QCOMPARE(m_model->dataTagsCount(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AutoTestUnitTests::testCodeParserGTest_data()
|
||||||
|
{
|
||||||
|
QTest::addColumn<QString>("projectFilePath");
|
||||||
|
QTest::newRow("simpleGoogletest")
|
||||||
|
<< QString(m_tmpDir->path() + QLatin1String("/simple_gt/simple_gt.pro"));
|
||||||
|
QTest::newRow("simpleGoogletestQbs")
|
||||||
|
<< QString(m_tmpDir->path() + QLatin1String("/simple_gt/simple_gt.qbs"));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
} // namespace Autotest
|
} // namespace Autotest
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ private slots:
|
|||||||
void testCodeParserSwitchStartup();
|
void testCodeParserSwitchStartup();
|
||||||
void testCodeParserSwitchStartup_data();
|
void testCodeParserSwitchStartup_data();
|
||||||
void testCodeParserGTest();
|
void testCodeParserGTest();
|
||||||
|
void testCodeParserGTest_data();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TestTreeModel *m_model;
|
TestTreeModel *m_model;
|
||||||
|
|||||||
@@ -41,17 +41,24 @@
|
|||||||
<file>unit_test/mixed_atp/tests/auto/quickauto2/quickauto2.qbs</file>
|
<file>unit_test/mixed_atp/tests/auto/quickauto2/quickauto2.qbs</file>
|
||||||
<file>unit_test/simple_gt/src/main.cpp</file>
|
<file>unit_test/simple_gt/src/main.cpp</file>
|
||||||
<file>unit_test/simple_gt/src/src.pro</file>
|
<file>unit_test/simple_gt/src/src.pro</file>
|
||||||
|
<file>unit_test/simple_gt/src/src.qbs</file>
|
||||||
<file>unit_test/simple_gt/tests/gt1/further.cpp</file>
|
<file>unit_test/simple_gt/tests/gt1/further.cpp</file>
|
||||||
<file>unit_test/simple_gt/tests/gt1/gt1.pro</file>
|
<file>unit_test/simple_gt/tests/gt1/gt1.pro</file>
|
||||||
|
<file>unit_test/simple_gt/tests/gt1/gt1.qbs</file>
|
||||||
<file>unit_test/simple_gt/tests/gt1/main.cpp</file>
|
<file>unit_test/simple_gt/tests/gt1/main.cpp</file>
|
||||||
<file>unit_test/simple_gt/tests/gt2/gt2.pro</file>
|
<file>unit_test/simple_gt/tests/gt2/gt2.pro</file>
|
||||||
|
<file>unit_test/simple_gt/tests/gt2/gt2.qbs</file>
|
||||||
<file>unit_test/simple_gt/tests/gt2/main.cpp</file>
|
<file>unit_test/simple_gt/tests/gt2/main.cpp</file>
|
||||||
<file>unit_test/simple_gt/tests/gt2/queuetest.h</file>
|
<file>unit_test/simple_gt/tests/gt2/queuetest.h</file>
|
||||||
<file>unit_test/simple_gt/tests/tests.pro</file>
|
<file>unit_test/simple_gt/tests/tests.pro</file>
|
||||||
|
<file>unit_test/simple_gt/tests/tests.qbs</file>
|
||||||
<file>unit_test/simple_gt/simple_gt.pro</file>
|
<file>unit_test/simple_gt/simple_gt.pro</file>
|
||||||
|
<file>unit_test/simple_gt/simple_gt.qbs</file>
|
||||||
<file>unit_test/simple_gt/tests/gtest_dependency.pri</file>
|
<file>unit_test/simple_gt/tests/gtest_dependency.pri</file>
|
||||||
<file>unit_test/simple_gt/tests/gt3/dummytest.h</file>
|
<file>unit_test/simple_gt/tests/gt3/dummytest.h</file>
|
||||||
<file>unit_test/simple_gt/tests/gt3/gt3.pro</file>
|
<file>unit_test/simple_gt/tests/gt3/gt3.pro</file>
|
||||||
|
<file>unit_test/simple_gt/tests/gt3/gt3.qbs</file>
|
||||||
<file>unit_test/simple_gt/tests/gt3/main.cpp</file>
|
<file>unit_test/simple_gt/tests/gt3/main.cpp</file>
|
||||||
|
<file>unit_test/simple_gt/tests/common/functions.js</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|||||||
10
src/plugins/autotest/unit_test/simple_gt/simple_gt.qbs
Normal file
10
src/plugins/autotest/unit_test/simple_gt/simple_gt.qbs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import qbs
|
||||||
|
|
||||||
|
Project {
|
||||||
|
name: "Simple GT"
|
||||||
|
|
||||||
|
references: [
|
||||||
|
"src/src.qbs",
|
||||||
|
"tests/tests.qbs"
|
||||||
|
]
|
||||||
|
}
|
||||||
10
src/plugins/autotest/unit_test/simple_gt/src/src.qbs
Normal file
10
src/plugins/autotest/unit_test/simple_gt/src/src.qbs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import qbs
|
||||||
|
|
||||||
|
CppApplication {
|
||||||
|
type: "application"
|
||||||
|
name: "Dummy application"
|
||||||
|
|
||||||
|
Depends { name: "Qt.core" }
|
||||||
|
|
||||||
|
files: [ "main.cpp" ]
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
var FileInfo = loadExtension("qbs.FileInfo")
|
||||||
|
|
||||||
|
function getGTestDir(str) {
|
||||||
|
if (!str) {
|
||||||
|
if (qbs.hostOS.contains("linux"))
|
||||||
|
return "/usr/include/gtest";
|
||||||
|
} else {
|
||||||
|
return FileInfo.joinPaths(str, "googletest");
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGMockDir(str) {
|
||||||
|
if (!str) {
|
||||||
|
if (qbs.hostOS.contains("linux"))
|
||||||
|
return "/usr/include/gmock";
|
||||||
|
} else {
|
||||||
|
return FileInfo.joinPaths(str, "googlemock");
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGTestAll(str) {
|
||||||
|
var gtest = getGTestDir(str);
|
||||||
|
if (!gtest)
|
||||||
|
return [];
|
||||||
|
return [FileInfo.joinPaths(gtest, "src/gtest-all.cc")];
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGMockAll(str) {
|
||||||
|
var gmock = getGMockDir(str);
|
||||||
|
if (!gmock)
|
||||||
|
return [];
|
||||||
|
return [FileInfo.joinPaths(gmock, "src/gmock-all.cc")];
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGTestIncludes(str) {
|
||||||
|
var gtest = getGTestDir(str);
|
||||||
|
if (!gtest)
|
||||||
|
return [];
|
||||||
|
return [gtest, FileInfo.joinPaths(gtest, "include")];
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGMockIncludes(str) {
|
||||||
|
var mock = getGMockDir(str);
|
||||||
|
if (!mock)
|
||||||
|
return [];
|
||||||
|
return [mock, FileInfo.joinPaths(mock, "include")];
|
||||||
|
}
|
||||||
35
src/plugins/autotest/unit_test/simple_gt/tests/gt1/gt1.qbs
Normal file
35
src/plugins/autotest/unit_test/simple_gt/tests/gt1/gt1.qbs
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import qbs
|
||||||
|
import qbs.File
|
||||||
|
import qbs.FileInfo
|
||||||
|
import "../common/functions.js" as googleCommon
|
||||||
|
|
||||||
|
CppApplication {
|
||||||
|
type: "application"
|
||||||
|
name: "googletest1"
|
||||||
|
|
||||||
|
property string gtestDir: googleCommon.getGTestDir(project.googletestDir)
|
||||||
|
property string gmockDir: googleCommon.getGMockDir(project.googletestDir)
|
||||||
|
|
||||||
|
condition: {
|
||||||
|
if (File.exists(gtestDir) && File.exists(gmockDir))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
console.error("Cannot find Google Test - specify environment variable GOOGLETEST_DIR "
|
||||||
|
+ "or qbs property " + project.name + ".googletestDir" );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
cpp.includePaths: [].concat(googleCommon.getGTestIncludes(project.googletestDir))
|
||||||
|
.concat(googleCommon.getGMockIncludes(project.googletestDir))
|
||||||
|
|
||||||
|
cpp.cxxLanguageVersion: "c++11"
|
||||||
|
cpp.defines: ["GTEST_LANG_CXX11"]
|
||||||
|
cpp.dynamicLibraries: [ "pthread" ]
|
||||||
|
|
||||||
|
files: [
|
||||||
|
// own stuff
|
||||||
|
"further.cpp",
|
||||||
|
"main.cpp",
|
||||||
|
].concat(googleCommon.getGTestAll(project.googletestDir))
|
||||||
|
.concat(googleCommon.getGMockAll(project.googletestDir))
|
||||||
|
}
|
||||||
36
src/plugins/autotest/unit_test/simple_gt/tests/gt2/gt2.qbs
Normal file
36
src/plugins/autotest/unit_test/simple_gt/tests/gt2/gt2.qbs
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
import qbs
|
||||||
|
import qbs.File
|
||||||
|
import qbs.FileInfo
|
||||||
|
import "../common/functions.js" as googleCommon
|
||||||
|
|
||||||
|
CppApplication {
|
||||||
|
type: "application"
|
||||||
|
name: "googletest2"
|
||||||
|
|
||||||
|
property string gtestDir: googleCommon.getGTestDir(project.googletestDir)
|
||||||
|
property string gmockDir: googleCommon.getGMockDir(project.googletestDir)
|
||||||
|
|
||||||
|
Depends { name: "Qt.core" }
|
||||||
|
|
||||||
|
condition: {
|
||||||
|
if (File.exists(gtestDir) && File.exists(gmockDir))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
console.error("Cannot find Google Test - specify environment variable GOOGLETEST_DIR "
|
||||||
|
+ "or qbs property " + project.name + ".googletestDir" );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
cpp.includePaths: [].concat(googleCommon.getGTestIncludes(project.googletestDir))
|
||||||
|
.concat(googleCommon.getGMockIncludes(project.googletestDir))
|
||||||
|
|
||||||
|
cpp.cxxLanguageVersion: "c++11"
|
||||||
|
cpp.defines: ["GTEST_LANG_CXX11"]
|
||||||
|
|
||||||
|
files: [
|
||||||
|
// own stuff
|
||||||
|
"queuetest.h",
|
||||||
|
"main.cpp",
|
||||||
|
].concat(googleCommon.getGTestAll(project.googletestDir))
|
||||||
|
.concat(googleCommon.getGMockAll(project.googletestDir))
|
||||||
|
}
|
||||||
36
src/plugins/autotest/unit_test/simple_gt/tests/gt3/gt3.qbs
Normal file
36
src/plugins/autotest/unit_test/simple_gt/tests/gt3/gt3.qbs
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
import qbs
|
||||||
|
import qbs.File
|
||||||
|
import qbs.FileInfo
|
||||||
|
import "../common/functions.js" as googleCommon
|
||||||
|
|
||||||
|
CppApplication {
|
||||||
|
type: "application"
|
||||||
|
name: "googletest3"
|
||||||
|
|
||||||
|
property string gtestDir: googleCommon.getGTestDir(project.googletestDir)
|
||||||
|
property string gmockDir: googleCommon.getGMockDir(project.googletestDir)
|
||||||
|
|
||||||
|
Depends { name: "Qt.core" }
|
||||||
|
|
||||||
|
condition: {
|
||||||
|
if (File.exists(gtestDir) && File.exists(gmockDir))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
console.error("Cannot find Google Test - specify environment variable GOOGLETEST_DIR "
|
||||||
|
+ "or qbs property " + project.name + ".googletestDir" );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
cpp.includePaths: [].concat(googleCommon.getGTestIncludes(project.googletestDir))
|
||||||
|
.concat(googleCommon.getGMockIncludes(project.googletestDir))
|
||||||
|
|
||||||
|
cpp.cxxLanguageVersion: "c++11"
|
||||||
|
cpp.defines: ["GTEST_LANG_CXX11"]
|
||||||
|
|
||||||
|
files: [
|
||||||
|
// own stuff
|
||||||
|
"dummytest.h",
|
||||||
|
"main.cpp",
|
||||||
|
].concat(googleCommon.getGTestAll(project.googletestDir))
|
||||||
|
.concat(googleCommon.getGMockAll(project.googletestDir))
|
||||||
|
}
|
||||||
14
src/plugins/autotest/unit_test/simple_gt/tests/tests.qbs
Normal file
14
src/plugins/autotest/unit_test/simple_gt/tests/tests.qbs
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import qbs
|
||||||
|
import qbs.Environment
|
||||||
|
|
||||||
|
Project {
|
||||||
|
name: "Tests"
|
||||||
|
|
||||||
|
property string googletestDir: Environment.getEnv("GOOGLETEST_DIR")
|
||||||
|
|
||||||
|
references: [
|
||||||
|
"gt1/gt1.qbs",
|
||||||
|
"gt2/gt2.qbs",
|
||||||
|
"gt3/gt3.qbs"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user