diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2015-07-13 17:12:45 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2015-07-20 08:45:43 +0000 |
commit | 0926d63d56a792f26bbcbe156da61a45953cf1df (patch) | |
tree | ac0dbf005b5b879b13728ea0c323caf352155279 | |
parent | b67a8e31dd2a187286ac12a5fbb4ab813edaa988 (diff) |
Sdktool: Only execute tests with -test argument
+ add an autotest that executes it
Change-Id: I7a9e1cd409bccd77776eefb0e832c92c51bc2bd5
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
-rw-r--r-- | src/tools/sdktool/main.cpp | 16 | ||||
-rw-r--r-- | tests/auto/auto.pro | 1 | ||||
-rw-r--r-- | tests/auto/auto.qbs | 1 | ||||
-rw-r--r-- | tests/auto/sdktool/sdktool.pro | 3 | ||||
-rw-r--r-- | tests/auto/sdktool/sdktool.qbs | 10 | ||||
-rw-r--r-- | tests/auto/sdktool/tst_sdktool.cpp | 61 |
6 files changed, 87 insertions, 5 deletions
diff --git a/src/tools/sdktool/main.cpp b/src/tools/sdktool/main.cpp index 51cc49ac864..97bc41941bf 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 c84f446c0cd..20f4e69fc57 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 5bd5acaff49..84c6867cbba 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 00000000000..cc5fb2d28cc --- /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 00000000000..1fd08fc2586 --- /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 00000000000..8cc01357d4c --- /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" |