From 5720a12ffb1ede3b9bac039f737fe868387221b3 Mon Sep 17 00:00:00 2001 From: Denis Shienkov Date: Tue, 6 Apr 2021 10:04:00 +0300 Subject: baremetal: Improve 'compiler-listing' test We do not need multiple test data instances (*.qbs) for each property, because we can pass the required properties from the C++ code directly. Also now we can know about the compiler listing file suffix directly, through the cpp.compilerListingSuffix property. Change-Id: I644277458e3ae460cbfb6bba4a24583d9e6ba3e1 Reviewed-by: Ivan Komissarov --- .../compiler-listing/compiler-listing.qbs | 16 ++++++++++ .../testdata-baremetal/compiler-listing/fun.c | 4 +++ .../testdata-baremetal/compiler-listing/main.c | 6 ++++ .../do-not-generate-compiler-listing.qbs | 16 ---------- .../do-not-generate-compiler-listing/fun.c | 4 --- .../do-not-generate-compiler-listing/main.c | 6 ---- .../generate-compiler-listing/fun.c | 4 --- .../generate-compiler-listing.qbs | 16 ---------- .../generate-compiler-listing/main.c | 6 ---- tests/auto/blackbox/tst_blackboxbaremetal.cpp | 36 +++++++++++++++------- 10 files changed, 51 insertions(+), 63 deletions(-) create mode 100644 tests/auto/blackbox/testdata-baremetal/compiler-listing/compiler-listing.qbs create mode 100644 tests/auto/blackbox/testdata-baremetal/compiler-listing/fun.c create mode 100644 tests/auto/blackbox/testdata-baremetal/compiler-listing/main.c delete mode 100644 tests/auto/blackbox/testdata-baremetal/do-not-generate-compiler-listing/do-not-generate-compiler-listing.qbs delete mode 100644 tests/auto/blackbox/testdata-baremetal/do-not-generate-compiler-listing/fun.c delete mode 100644 tests/auto/blackbox/testdata-baremetal/do-not-generate-compiler-listing/main.c delete mode 100644 tests/auto/blackbox/testdata-baremetal/generate-compiler-listing/fun.c delete mode 100644 tests/auto/blackbox/testdata-baremetal/generate-compiler-listing/generate-compiler-listing.qbs delete mode 100644 tests/auto/blackbox/testdata-baremetal/generate-compiler-listing/main.c diff --git a/tests/auto/blackbox/testdata-baremetal/compiler-listing/compiler-listing.qbs b/tests/auto/blackbox/testdata-baremetal/compiler-listing/compiler-listing.qbs new file mode 100644 index 000000000..0adfbe37b --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/compiler-listing/compiler-listing.qbs @@ -0,0 +1,16 @@ +import "../BareMetalApplication.qbs" as BareMetalApplication + +BareMetalApplication { + condition: { + if (!qbs.toolchain.contains("gcc")) { + if (cpp.compilerName.startsWith("armcc")) + console.info("using short listing file names"); + console.info("compiler listing suffix: %%" + cpp.compilerListingSuffix + "%%"); + return true; + } + console.info("unsupported toolset: %%" + + qbs.toolchainType + "%%, %%" + qbs.architecture + "%%"); + return false; + } + files: ["main.c", "fun.c"] +} diff --git a/tests/auto/blackbox/testdata-baremetal/compiler-listing/fun.c b/tests/auto/blackbox/testdata-baremetal/compiler-listing/fun.c new file mode 100644 index 000000000..3b8c8f2f4 --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/compiler-listing/fun.c @@ -0,0 +1,4 @@ +int f(void) +{ + return 0; +} diff --git a/tests/auto/blackbox/testdata-baremetal/compiler-listing/main.c b/tests/auto/blackbox/testdata-baremetal/compiler-listing/main.c new file mode 100644 index 000000000..2c3d7726c --- /dev/null +++ b/tests/auto/blackbox/testdata-baremetal/compiler-listing/main.c @@ -0,0 +1,6 @@ +extern int f(void); + +int main(void) +{ + return f(); +} diff --git a/tests/auto/blackbox/testdata-baremetal/do-not-generate-compiler-listing/do-not-generate-compiler-listing.qbs b/tests/auto/blackbox/testdata-baremetal/do-not-generate-compiler-listing/do-not-generate-compiler-listing.qbs deleted file mode 100644 index 1bc4ba208..000000000 --- a/tests/auto/blackbox/testdata-baremetal/do-not-generate-compiler-listing/do-not-generate-compiler-listing.qbs +++ /dev/null @@ -1,16 +0,0 @@ -import "../BareMetalApplication.qbs" as BareMetalApplication - -BareMetalApplication { - condition: { - if (!qbs.toolchain.contains("gcc")) { - if (cpp.compilerName.startsWith("armcc")) - console.info("using short listing file names"); - return true; - } - console.info("unsupported toolset: %%" - + qbs.toolchainType + "%%, %%" + qbs.architecture + "%%"); - return false; - } - cpp.generateCompilerListingFiles: false - files: ["main.c", "fun.c"] -} diff --git a/tests/auto/blackbox/testdata-baremetal/do-not-generate-compiler-listing/fun.c b/tests/auto/blackbox/testdata-baremetal/do-not-generate-compiler-listing/fun.c deleted file mode 100644 index 3b8c8f2f4..000000000 --- a/tests/auto/blackbox/testdata-baremetal/do-not-generate-compiler-listing/fun.c +++ /dev/null @@ -1,4 +0,0 @@ -int f(void) -{ - return 0; -} diff --git a/tests/auto/blackbox/testdata-baremetal/do-not-generate-compiler-listing/main.c b/tests/auto/blackbox/testdata-baremetal/do-not-generate-compiler-listing/main.c deleted file mode 100644 index 2c3d7726c..000000000 --- a/tests/auto/blackbox/testdata-baremetal/do-not-generate-compiler-listing/main.c +++ /dev/null @@ -1,6 +0,0 @@ -extern int f(void); - -int main(void) -{ - return f(); -} diff --git a/tests/auto/blackbox/testdata-baremetal/generate-compiler-listing/fun.c b/tests/auto/blackbox/testdata-baremetal/generate-compiler-listing/fun.c deleted file mode 100644 index 3b8c8f2f4..000000000 --- a/tests/auto/blackbox/testdata-baremetal/generate-compiler-listing/fun.c +++ /dev/null @@ -1,4 +0,0 @@ -int f(void) -{ - return 0; -} diff --git a/tests/auto/blackbox/testdata-baremetal/generate-compiler-listing/generate-compiler-listing.qbs b/tests/auto/blackbox/testdata-baremetal/generate-compiler-listing/generate-compiler-listing.qbs deleted file mode 100644 index a6731d224..000000000 --- a/tests/auto/blackbox/testdata-baremetal/generate-compiler-listing/generate-compiler-listing.qbs +++ /dev/null @@ -1,16 +0,0 @@ -import "../BareMetalApplication.qbs" as BareMetalApplication - -BareMetalApplication { - condition: { - if (!qbs.toolchain.contains("gcc")) { - if (cpp.compilerName.startsWith("armcc")) - console.info("using short listing file names"); - return true; - } - console.info("unsupported toolset: %%" - + qbs.toolchainType + "%%, %%" + qbs.architecture + "%%"); - return false; - } - cpp.generateCompilerListingFiles: true - files: ["main.c", "fun.c"] -} diff --git a/tests/auto/blackbox/testdata-baremetal/generate-compiler-listing/main.c b/tests/auto/blackbox/testdata-baremetal/generate-compiler-listing/main.c deleted file mode 100644 index 2c3d7726c..000000000 --- a/tests/auto/blackbox/testdata-baremetal/generate-compiler-listing/main.c +++ /dev/null @@ -1,6 +0,0 @@ -extern int f(void); - -int main(void) -{ - return f(); -} diff --git a/tests/auto/blackbox/tst_blackboxbaremetal.cpp b/tests/auto/blackbox/tst_blackboxbaremetal.cpp index 1e300e246..b027a4e70 100644 --- a/tests/auto/blackbox/tst_blackboxbaremetal.cpp +++ b/tests/auto/blackbox/tst_blackboxbaremetal.cpp @@ -186,28 +186,42 @@ void TestBlackboxBareMetal::defines() void TestBlackboxBareMetal::compilerListingFiles_data() { - QTest::addColumn("testPath"); QTest::addColumn("generateListing"); - QTest::newRow("do-not-generate-compiler-listing") << "/do-not-generate-compiler-listing" << false; - QTest::newRow("generate-compiler-listing") << "/generate-compiler-listing" << true; + QTest::newRow("do-not-generate-compiler-listing") << false; + QTest::newRow("generate-compiler-listing") << true; } void TestBlackboxBareMetal::compilerListingFiles() { - QFETCH(QString, testPath); QFETCH(bool, generateListing); - QDir::setCurrent(testDataDir + testPath); - QCOMPARE(runQbs(QbsRunParameters("resolve", QStringList("-n"))), 0); + QDir::setCurrent(testDataDir + "/compiler-listing"); + + rmDirR(relativeBuildDir()); + QStringList args = {QStringLiteral("modules.cpp.generateCompilerListingFiles:%1") + .arg(generateListing ? "true" : "false")}; + + QCOMPARE(runQbs(QbsRunParameters("resolve", args)), 0); if (m_qbsStdout.contains("unsupported toolset:")) QSKIP(unsupportedToolsetMessage(m_qbsStdout)); - QCOMPARE(runQbs(), 0); + if (!m_qbsStdout.contains("compiler listing suffix:")) + QFAIL("No current compiler listing suffix pattern exists"); + + QString compilerListingSuffix; + if (!extractQuitedValue(m_qbsStdout, compilerListingSuffix)) + QFAIL("Unable to extract current compiler listing suffix"); + const bool isShortListingNames = m_qbsStdout.contains("using short listing file names"); - const QString productName = testPath.mid(1); - const QString productBuildDir = relativeProductBuildDir(productName); + + QCOMPARE(runQbs(QbsRunParameters(args)), 0); + const QString productBuildDir = relativeProductBuildDir("compiler-listing"); const QString hash = inputDirHash("."); - const QString mainListing = productBuildDir + "/" + hash + (isShortListingNames ? "/main.lst" : "/main.c.lst"); + const QString mainListing = productBuildDir + "/" + hash + + (isShortListingNames ? "/main" : "/main.c") + + compilerListingSuffix; QCOMPARE(regularFileExists(mainListing), generateListing); - const QString funListing = productBuildDir + "/" + hash + (isShortListingNames ? "/fun.lst" : "/fun.c.lst"); + const QString funListing = productBuildDir + "/" + hash + + (isShortListingNames ? "/fun" : "/fun.c") + + compilerListingSuffix; QCOMPARE(regularFileExists(funListing), generateListing); } -- cgit v1.2.3