diff --git a/src/tools/sdktool/main.cpp b/src/tools/sdktool/main.cpp index 51cc49ac864e0c0b178cd7006f72325a9e11655b..97bc41941bfb934e3dadfa64c685d6d0c03b4ad2 100644 --- a/src/tools/sdktool/main.cpp +++ b/src/tools/sdktool/main.cpp @@ -193,11 +193,17 @@ int main(int argc, char *argv[]) << new FindValueOperation; #ifdef WITH_TESTS - std::cerr << std::endl << std::endl << "Starting tests..." << std::endl; - foreach (Operation *o, operations) - if (!o->test()) - std::cerr << "!!!! Test failed for: " << qPrintable(o->name()) << " !!!!" << std::endl; - std::cerr << "Tests done." << std::endl << std::endl; + if (argc == 2 && !strcmp(argv[1], "-test")) { + std::cerr << std::endl << std::endl << "Starting tests..." << std::endl; + int res = 0; + foreach (Operation *o, operations) + if (!o->test()) { + std::cerr << "!!!! Test failed for: " << qPrintable(o->name()) << " !!!!" << std::endl; + ++res; + } + std::cerr << "Tests done." << std::endl << std::endl; + return res; + } #endif int result = parseArguments(a.arguments(), &settings, operations); diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index c84f446c0cd95c6b49844eda474ea0dd7e2c4874..20f4e69fc5701b426d17a8a1c24378fea4a82620 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -16,6 +16,7 @@ SUBDIRS += \ qtcprocess \ utils \ filesearch \ + sdktool \ valgrind qtHaveModule(declarative) { diff --git a/tests/auto/auto.qbs b/tests/auto/auto.qbs index 5bd5acaff49ad269f170306306686d1a79741ca3..84c6867cbba9cf8e7ed7fbca7f75edf403c5a816 100644 --- a/tests/auto/auto.qbs +++ b/tests/auto/auto.qbs @@ -18,6 +18,7 @@ Project { "profilewriter/profilewriter.qbs", "qml/qml.qbs", "qtcprocess/qtcprocess.qbs", + "sdktool/sdktool.qbs", "timeline/timeline.qbs", "treeviewfind/treeviewfind.qbs", "utils/utils.qbs", diff --git a/tests/auto/sdktool/sdktool.pro b/tests/auto/sdktool/sdktool.pro new file mode 100644 index 0000000000000000000000000000000000000000..cc5fb2d28cc68e5642c21a06151fb4929630acb2 --- /dev/null +++ b/tests/auto/sdktool/sdktool.pro @@ -0,0 +1,3 @@ +include(../qttest.pri) + +SOURCES += tst_sdktool.cpp diff --git a/tests/auto/sdktool/sdktool.qbs b/tests/auto/sdktool/sdktool.qbs new file mode 100644 index 0000000000000000000000000000000000000000..1fd08fc2586e40a6e7305b7170696a4d260f4d6b --- /dev/null +++ b/tests/auto/sdktool/sdktool.qbs @@ -0,0 +1,10 @@ +import qbs + +QtcAutotest { + name: "sdktool autotest" + + Group { + name: "Test sources" + files: "tst_sdktool.cpp" + } +} diff --git a/tests/auto/sdktool/tst_sdktool.cpp b/tests/auto/sdktool/tst_sdktool.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8cc01357d4cc8e47adf54eb62714af6f3e7a700b --- /dev/null +++ b/tests/auto/sdktool/tst_sdktool.cpp @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/contact-us. +** +** 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 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include <QCoreApplication> +#include <QDebug> +#include <QProcess> +#include <QtTest> + +class SdktoolTest : public QObject +{ + Q_OBJECT + +private slots: + void testSdktool(); +}; + +void SdktoolTest::testSdktool() +{ + QDir rootDir = QCoreApplication::applicationDirPath(); + rootDir.cdUp(); + rootDir.cdUp(); + rootDir.cdUp(); + rootDir.cd(QLatin1String("bin")); + QProcess process; + process.start(rootDir.absoluteFilePath(QLatin1String("sdktool")), + QStringList() << QLatin1String("-test")); + process.waitForFinished(); + qDebug() << process.readAllStandardError(); + QCOMPARE(process.exitCode(), 0); +} + +QTEST_MAIN(SdktoolTest) + +#include "tst_sdktool.moc"