diff options
author | Denis Shienkov <denis.shienkov@gmail.com> | 2020-06-12 15:37:51 +0300 |
---|---|---|
committer | Denis Shienkov <denis.shienkov@gmail.com> | 2020-06-16 13:46:08 +0000 |
commit | 53c8000f034b68fae41d3f071be9ab5fe875827b (patch) | |
tree | fc532674794b3db51ac23dfddb315df776700aa6 /tests | |
parent | d0024eaf8341d041d7de1a8e8da75fdd2fd92ad4 (diff) |
baremetal: Long live "application" product type test
This commit adds a blackbox auto-test which compiles
two applications:
* first - is an application from the one object file
* second - is an application from the two object files
Tested for MCS51 architecture with IAR, KEIL, and SDCC
toolchains.
Change-Id: Ib33430a6d87d3cdda48861e688b233e182d96b51
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'tests')
11 files changed, 166 insertions, 0 deletions
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index ba312c2a6..af06ea131 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -12,6 +12,7 @@ SUBDIRS += \ blackbox/blackbox.pro \ blackbox/blackbox-android.pro \ blackbox/blackbox-apple.pro \ + blackbox/blackbox-baremetal.pro \ blackbox/blackbox-clangdb.pro \ blackbox/blackbox-examples.pro \ blackbox/blackbox-java.pro \ diff --git a/tests/auto/auto.qbs b/tests/auto/auto.qbs index 1f72a2116..8dd301f68 100644 --- a/tests/auto/auto.qbs +++ b/tests/auto/auto.qbs @@ -7,6 +7,7 @@ Project { "blackbox/blackbox.qbs", "blackbox/blackbox-android.qbs", "blackbox/blackbox-apple.qbs", + "blackbox/blackbox-baremetal.qbs", "blackbox/blackbox-clangdb.qbs", "blackbox/blackbox-examples.qbs", "blackbox/blackbox-java.qbs", diff --git a/tests/auto/blackbox/blackbox-baremetal.pro b/tests/auto/blackbox/blackbox-baremetal.pro new file mode 100644 index 000000000..32789346c --- /dev/null +++ b/tests/auto/blackbox/blackbox-baremetal.pro @@ -0,0 +1,18 @@ +TARGET = tst_blackbox-baremetal + +HEADERS = tst_blackboxbaremetal.h tst_blackboxbase.h +SOURCES = tst_blackboxbaremetal.cpp tst_blackboxbase.cpp +OBJECTS_DIR = baremetal +MOC_DIR = $${OBJECTS_DIR}-moc + +include(../auto.pri) + +DATA_DIRS = testdata-baremetal ../find + +for(data_dir, DATA_DIRS) { + files = $$files($$PWD/$$data_dir/*, true) + win32:files ~= s|\\\\|/|g + for(file, files):!exists($$file/*):FILES += $$file +} + +OTHER_FILES += $$FILES diff --git a/tests/auto/blackbox/blackbox-baremetal.qbs b/tests/auto/blackbox/blackbox-baremetal.qbs new file mode 100644 index 000000000..18ae588fe --- /dev/null +++ b/tests/auto/blackbox/blackbox-baremetal.qbs @@ -0,0 +1,21 @@ +import qbs.Utilities + +QbsAutotest { + testName: "blackbox-baremetal" + Depends { name: "qbs_app" } + Depends { name: "qbs-setup-toolchains" } + Group { + name: "testdata" + prefix: "testdata-baremetal/" + files: ["**/*"] + fileTags: [] + } + files: [ + "../shared.h", + "tst_blackboxbase.cpp", + "tst_blackboxbase.h", + "tst_blackboxbaremetal.cpp", + "tst_blackboxbaremetal.h", + ] + cpp.defines: base.concat(["SRCDIR=" + Utilities.cStringQuote(path)]) +} diff --git a/tests/auto/blackbox/testdata-baremetal/one-object-application/main.c b/tests/auto/blackbox/testdata-baremetal/one-object-application/main.c new file mode 100644 index 000000000..58fe69254 --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/one-object-application/main.c @@ -0,0 +1,4 @@ +int main(void) +{ + return 0; +} diff --git a/tests/auto/blackbox/testdata-baremetal/one-object-application/one-object-application.qbs b/tests/auto/blackbox/testdata-baremetal/one-object-application/one-object-application.qbs new file mode 100644 index 000000000..db18cb857 --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/one-object-application/one-object-application.qbs @@ -0,0 +1,3 @@ +CppApplication { + files: ["main.c"] +} diff --git a/tests/auto/blackbox/testdata-baremetal/two-object-application/fun.c b/tests/auto/blackbox/testdata-baremetal/two-object-application/fun.c new file mode 100644 index 000000000..3b8c8f2f4 --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/two-object-application/fun.c @@ -0,0 +1,4 @@ +int f(void) +{ + return 0; +} diff --git a/tests/auto/blackbox/testdata-baremetal/two-object-application/main.c b/tests/auto/blackbox/testdata-baremetal/two-object-application/main.c new file mode 100644 index 000000000..2c3d7726c --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/two-object-application/main.c @@ -0,0 +1,6 @@ +extern int f(void); + +int main(void) +{ + return f(); +} diff --git a/tests/auto/blackbox/testdata-baremetal/two-object-application/two-object-application.qbs b/tests/auto/blackbox/testdata-baremetal/two-object-application/two-object-application.qbs new file mode 100644 index 000000000..9bd131396 --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/two-object-application/two-object-application.qbs @@ -0,0 +1,3 @@ +CppApplication { + files: ["main.c", "fun.c"] +} diff --git a/tests/auto/blackbox/tst_blackboxbaremetal.cpp b/tests/auto/blackbox/tst_blackboxbaremetal.cpp new file mode 100644 index 000000000..90f1a45c8 --- /dev/null +++ b/tests/auto/blackbox/tst_blackboxbaremetal.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2020 Denis Shienkov <denis.shienkov@gmail.com> +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qbs. +** +** 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 "tst_blackboxbaremetal.h" + +#include "../shared.h" + +TestBlackboxBareMetal::TestBlackboxBareMetal() + : TestBlackboxBase (SRCDIR "/testdata-baremetal", "blackbox-baremetal") +{ +} + +void TestBlackboxBareMetal::application_data() +{ + QTest::addColumn<QString>("testPath"); + QTest::newRow("one-object-application") << "/one-object-application"; + QTest::newRow("two-object-application") << "/two-object-application"; +} + +void TestBlackboxBareMetal::application() +{ + QFETCH(QString, testPath); + QDir::setCurrent(testDataDir + testPath); + QCOMPARE(runQbs(), 0); +} + +QTEST_MAIN(TestBlackboxBareMetal) diff --git a/tests/auto/blackbox/tst_blackboxbaremetal.h b/tests/auto/blackbox/tst_blackboxbaremetal.h new file mode 100644 index 000000000..333dcd10b --- /dev/null +++ b/tests/auto/blackbox/tst_blackboxbaremetal.h @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2020 Denis Shienkov <denis.shienkov@gmail.com> +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qbs. +** +** 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. +** +****************************************************************************/ + +#ifndef TST_BLACKBOXBAREMETAL_H +#define TST_BLACKBOXBAREMETAL_H + +#include "tst_blackboxbase.h" + +class TestBlackboxBareMetal : public TestBlackboxBase +{ + Q_OBJECT + +public: + TestBlackboxBareMetal(); + +private slots: + void application_data(); + void application(); + +private: + +}; + +#endif // TST_BLACKBOXBAREMETAL_H |