From ece99a4c5f8710b11cd17ff48f4fc2d5ced645b3 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 19 Apr 2018 14:54:17 +0200 Subject: API: Fix ProductData::installableArtifacts() We iterated over the wrong list when collecting the artifacts, so we missed generated artifacts that are not in the list of target artifacts. Change-Id: Iea90c5de217e0ad4efb77331a31b8a5d778c66d1 Reviewed-by: Joerg Bornemann --- src/lib/corelib/api/projectdata.cpp | 2 +- tests/auto/api/testdata/installed-artifact/installed-artifact.qbs | 5 +++++ tests/auto/api/tst_api.cpp | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib/corelib/api/projectdata.cpp b/src/lib/corelib/api/projectdata.cpp index 3fd5f5ec3..3f865af58 100644 --- a/src/lib/corelib/api/projectdata.cpp +++ b/src/lib/corelib/api/projectdata.cpp @@ -541,7 +541,7 @@ QList ProductData::installableArtifacts() const artifacts << a; } } - for (const ArtifactData &a : targetArtifacts()) { + for (const ArtifactData &a : generatedArtifacts()) { if (a.installData().isInstallable()) artifacts << a; } diff --git a/tests/auto/api/testdata/installed-artifact/installed-artifact.qbs b/tests/auto/api/testdata/installed-artifact/installed-artifact.qbs index 7f7de9bc2..e2d18b2ea 100644 --- a/tests/auto/api/testdata/installed-artifact/installed-artifact.qbs +++ b/tests/auto/api/testdata/installed-artifact/installed-artifact.qbs @@ -23,5 +23,10 @@ Project { qbs.install: true qbs.installDir: "bin" } + Group { + fileTagsFilter: "obj" + qbs.install: true + qbs.installDir: "objects" + } } } diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp index d938065ee..a608d597c 100644 --- a/tests/auto/api/tst_api.cpp +++ b/tests/auto/api/tst_api.cpp @@ -1400,9 +1400,9 @@ void TestApi::installableFiles() }); QVERIFY(product.isValid()); const QList beforeInstallableFiles = product.installableArtifacts(); - QCOMPARE(beforeInstallableFiles.size(), 2); + QCOMPARE(beforeInstallableFiles.size(), 3); for (const qbs::ArtifactData &f : beforeInstallableFiles) { - if (!f.filePath().endsWith("main.cpp")) { + if (!QFileInfo(f.filePath()).fileName().startsWith("main")) { QVERIFY(f.isExecutable()); QString expectedTargetFilePath = qbs::Internal::HostOsInfo ::appendExecutableSuffix(QLatin1String("/tmp/usr/bin/installedApp")); -- cgit v1.2.3