summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/auto/blackbox/testdata-baremetal/BareMetalApplication.qbs20
-rw-r--r--tests/auto/blackbox/testdata-baremetal/one-object-application/main.c2
-rw-r--r--tests/auto/blackbox/testdata-baremetal/two-object-application/fun.c2
-rw-r--r--tests/auto/blackbox/tst_blackboxbaremetal.cpp6
4 files changed, 29 insertions, 1 deletions
diff --git a/tests/auto/blackbox/testdata-baremetal/BareMetalApplication.qbs b/tests/auto/blackbox/testdata-baremetal/BareMetalApplication.qbs
index f23cf1a39..a11855727 100644
--- a/tests/auto/blackbox/testdata-baremetal/BareMetalApplication.qbs
+++ b/tests/auto/blackbox/testdata-baremetal/BareMetalApplication.qbs
@@ -1,5 +1,25 @@
+import qbs.Host
+
BareMetalProduct {
type: "application"
+ consoleApplication: true
+
+ property bool dummy: {
+ if (qbs.targetPlatform !== Host.platform()
+ || qbs.architecture !== Host.architecture()) {
+
+ function supportsCrossRun() {
+ // We can run 32 bit applications on 64 bit Windows.
+ if (Host.platform() === "windows" && Host.architecture() === "x86_64"
+ && qbs.targetPlatform === "windows" && qbs.architecture === "x86") {
+ return true;
+ }
+ }
+
+ if (!supportsCrossRun())
+ console.info("targetPlatform differs from hostPlatform")
+ }
+ }
Group {
condition: qbs.toolchain.contains("cosmic")
diff --git a/tests/auto/blackbox/testdata-baremetal/one-object-application/main.c b/tests/auto/blackbox/testdata-baremetal/one-object-application/main.c
index 58fe69254..d5ac449bf 100644
--- a/tests/auto/blackbox/testdata-baremetal/one-object-application/main.c
+++ b/tests/auto/blackbox/testdata-baremetal/one-object-application/main.c
@@ -1,4 +1,6 @@
+#include <stdio.h>
int main(void)
{
+ printf("Hello from app\n");
return 0;
}
diff --git a/tests/auto/blackbox/testdata-baremetal/two-object-application/fun.c b/tests/auto/blackbox/testdata-baremetal/two-object-application/fun.c
index 3b8c8f2f4..e5850346a 100644
--- a/tests/auto/blackbox/testdata-baremetal/two-object-application/fun.c
+++ b/tests/auto/blackbox/testdata-baremetal/two-object-application/fun.c
@@ -1,4 +1,6 @@
+#include <stdio.h>
int f(void)
{
+ printf("Hello from app\n");
return 0;
}
diff --git a/tests/auto/blackbox/tst_blackboxbaremetal.cpp b/tests/auto/blackbox/tst_blackboxbaremetal.cpp
index e0a068bc6..fda544b8b 100644
--- a/tests/auto/blackbox/tst_blackboxbaremetal.cpp
+++ b/tests/auto/blackbox/tst_blackboxbaremetal.cpp
@@ -110,7 +110,11 @@ void TestBlackboxBareMetal::application()
QCOMPARE(runQbs(QbsRunParameters("resolve", QStringList("-n"))), 0);
if (m_qbsStdout.contains("unsupported toolset:"))
QSKIP(unsupportedToolsetMessage(m_qbsStdout));
- QCOMPARE(runQbs(), 0);
+ QCOMPARE(runQbs(QbsRunParameters("build")), 0);
+ if (m_qbsStdout.contains("targetPlatform differs from hostPlatform"))
+ QSKIP("Cannot run binaries in cross-compiled build");
+ QCOMPARE(runQbs(QbsRunParameters("run")), 0);
+ QVERIFY2(m_qbsStdout.contains("Hello from app"), m_qbsStdout.constData());
}
void TestBlackboxBareMetal::staticLibraryDependencies()