diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-02-11 13:18:53 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-02-11 13:50:47 +0100 |
commit | 4150a3163bb1d1703198acf41d6c905c0f00f063 (patch) | |
tree | c9da255dc2d62b1b5d515a40db662bd5f9fdc771 /tests/auto/blackbox | |
parent | 466501197eb9285b1929f4d1fb34f3bf6ea9316e (diff) |
add tst_blackBox::changeDependentLib
This changes a lib that's used by an application and checks if an
incremental build still works.
Change-Id: I24816aab1ec55e32c6e197f7d28e60c9d1f874ba
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'tests/auto/blackbox')
5 files changed, 133 insertions, 0 deletions
diff --git a/tests/auto/blackbox/testdata/change-dependent-lib/change-dependent-lib.qbs b/tests/auto/blackbox/testdata/change-dependent-lib/change-dependent-lib.qbs new file mode 100644 index 000000000..ac5778134 --- /dev/null +++ b/tests/auto/blackbox/testdata/change-dependent-lib/change-dependent-lib.qbs @@ -0,0 +1,23 @@ +import qbs 1.0 + +Project { + Application { + name : "HelloWorld" + Group { + files : [ "main.cpp" ] + } + Depends { name: "cpp" } + Depends { name: "mylib" } + } + + DynamicLibrary { + name : "mylib" + version: "1.2.3" + Group { + files : [ "mylib.cpp" ] + } + Depends { name: "cpp" } + cpp.defines: ["XXXX"] + } +} + diff --git a/tests/auto/blackbox/testdata/change-dependent-lib/main.cpp b/tests/auto/blackbox/testdata/change-dependent-lib/main.cpp new file mode 100644 index 000000000..d5ade08e2 --- /dev/null +++ b/tests/auto/blackbox/testdata/change-dependent-lib/main.cpp @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. +** +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/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 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include <stdio.h> + +#if defined(_WIN32) || defined(WIN32) +# define EXPORT __declspec(dllexport) +# define IMPORT __declspec(dllimport) +#else +# define EXPORT +# define IMPORT +#endif + +IMPORT int mylib_hello(); + +int main() +{ + puts("application says hello!"); + return mylib_hello(); +} + diff --git a/tests/auto/blackbox/testdata/change-dependent-lib/mylib.cpp b/tests/auto/blackbox/testdata/change-dependent-lib/mylib.cpp new file mode 100644 index 000000000..fc4a504d4 --- /dev/null +++ b/tests/auto/blackbox/testdata/change-dependent-lib/mylib.cpp @@ -0,0 +1,44 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Build Suite. +** +** 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 Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/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 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include <stdio.h> + +#if defined(_WIN32) || defined(WIN32) +# define EXPORT __declspec(dllexport) +# define IMPORT __declspec(dllimport) +#else +# define EXPORT +# define IMPORT +#endif + +EXPORT int mylib_hello() +{ + puts("mylib says hello!"); + return 0; +} diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index 08cf15a9b..b64dcd829 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -288,6 +288,24 @@ void TestBlackbox::build_project_dry_run() QVERIFY2(buildDirContents.isEmpty(), qPrintable(buildDirContents.join(" "))); } +void TestBlackbox::changeDependentLib() +{ + QDir::setCurrent(testDataDir + "/change-dependent-lib"); + QCOMPARE(runQbs(), 0); + waitForNewTimestamp(); + const QString qbsFileName("change-dependent-lib.qbs"); + QFile qbsFile(qbsFileName); + QVERIFY(qbsFile.open(QIODevice::ReadWrite)); + const QByteArray content1 = qbsFile.readAll(); + QByteArray content2 = content1; + content2.replace("cpp.defines: [\"XXXX\"]", "cpp.defines: [\"ABCD\"]"); + QVERIFY(content1 != content2); + qbsFile.seek(0); + qbsFile.write(content2); + qbsFile.close(); + QCOMPARE(runQbs(), 0); +} + void TestBlackbox::dependenciesProperty() { QDir::setCurrent(testDataDir + QLatin1String("/dependenciesProperty")); diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h index 79b03e21d..0c516d497 100644 --- a/tests/auto/blackbox/tst_blackbox.h +++ b/tests/auto/blackbox/tst_blackbox.h @@ -101,6 +101,7 @@ private slots: void build_project(); void build_project_dry_run_data(); void build_project_dry_run(); + void changeDependentLib(); void dependenciesProperty(); void disabledProduct(); void disabledProject(); |