From a700730a5bc34848ac9552c8f695fdb0bdb6b153 Mon Sep 17 00:00:00 2001 From: Tim Sander Date: Thu, 31 Oct 2013 15:00:57 +0100 Subject: Add support for compiling assembler files with GCC. Task-number: QBS-437 Change-Id: I7d4b64df16f5a260d41a6d34335fe0cc1a36b712 Reviewed-by: Christian Kandeler --- tests/auto/blackbox/testdata/assembly/assembly.qbs | 23 ++++++++++++++++++++++ tests/auto/blackbox/testdata/assembly/testa.s | 3 +++ tests/auto/blackbox/testdata/assembly/testb.S | 3 +++ tests/auto/blackbox/testdata/assembly/testc.sx | 3 +++ tests/auto/blackbox/tst_blackbox.cpp | 15 ++++++++++++++ tests/auto/blackbox/tst_blackbox.h | 1 + 6 files changed, 48 insertions(+) create mode 100644 tests/auto/blackbox/testdata/assembly/assembly.qbs create mode 100644 tests/auto/blackbox/testdata/assembly/testa.s create mode 100644 tests/auto/blackbox/testdata/assembly/testb.S create mode 100644 tests/auto/blackbox/testdata/assembly/testc.sx (limited to 'tests') diff --git a/tests/auto/blackbox/testdata/assembly/assembly.qbs b/tests/auto/blackbox/testdata/assembly/assembly.qbs new file mode 100644 index 000000000..344e65cd1 --- /dev/null +++ b/tests/auto/blackbox/testdata/assembly/assembly.qbs @@ -0,0 +1,23 @@ +import qbs 1.0 + +Project { + StaticLibrary { + name : "testa" + files : [ "testa.s" ] + Depends { name: "cpp" } + condition: qbs.toolchain.contains("gcc") + } + StaticLibrary { + name : "testb" + files : [ "testb.S" ] + Depends { name: "cpp" } + condition: qbs.toolchain.contains("gcc") + } + StaticLibrary { + name : "testc" + files : [ "testc.sx" ] + Depends { name: "cpp" } + condition: qbs.toolchain.contains("gcc") + } +} + diff --git a/tests/auto/blackbox/testdata/assembly/testa.s b/tests/auto/blackbox/testdata/assembly/testa.s new file mode 100644 index 000000000..39e402ae0 --- /dev/null +++ b/tests/auto/blackbox/testdata/assembly/testa.s @@ -0,0 +1,3 @@ +.globl symbola +symbola: + nop diff --git a/tests/auto/blackbox/testdata/assembly/testb.S b/tests/auto/blackbox/testdata/assembly/testb.S new file mode 100644 index 000000000..845be5502 --- /dev/null +++ b/tests/auto/blackbox/testdata/assembly/testb.S @@ -0,0 +1,3 @@ +#define bla nop +symbolb: + bla diff --git a/tests/auto/blackbox/testdata/assembly/testc.sx b/tests/auto/blackbox/testdata/assembly/testc.sx new file mode 100644 index 000000000..845be5502 --- /dev/null +++ b/tests/auto/blackbox/testdata/assembly/testc.sx @@ -0,0 +1,3 @@ +#define bla nop +symbolb: + bla diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index 116da31fa..30b62dc41 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -1476,4 +1476,19 @@ void TestBlackbox::missingProfile() QVERIFY(m_qbsStderr.contains("No profile")); } +void TestBlackbox::testAssembly() +{ + SettingsPtr settings = qbsSettings(); + Profile profile(buildProfileName, settings.data()); + bool haveGcc = profile.value("qbs.toolchain").toString().contains("gcc"); + QDir::setCurrent(testDataDir + "/assembly"); + QVERIFY(runQbs() == 0); + QCOMPARE((bool)m_qbsStdout.contains("compiling testa.s"), haveGcc); + QCOMPARE((bool)m_qbsStdout.contains("compiling testb.S"), haveGcc); + QCOMPARE((bool)m_qbsStdout.contains("compiling testc.sx"), haveGcc); + QCOMPARE((bool)m_qbsStdout.contains("creating libtesta.a"), haveGcc); + QCOMPARE((bool)m_qbsStdout.contains("creating libtestb.a"), haveGcc); + QCOMPARE((bool)m_qbsStdout.contains("creating libtestc.a"), haveGcc); +} + QTEST_MAIN(TestBlackbox) diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h index f86e7617c..24e8dce5d 100644 --- a/tests/auto/blackbox/tst_blackbox.h +++ b/tests/auto/blackbox/tst_blackbox.h @@ -152,6 +152,7 @@ private slots: void toolLookup(); void checkProjectFilePath(); void missingProfile(); + void testAssembly(); private: QByteArray m_qbsStderr; -- cgit v1.2.1