From e4369feec5043c478baa47f8c48a43460cc0e74f Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Mon, 26 Aug 2019 11:33:03 -0700 Subject: [PATCH] Factor out directory parsing from md file output --- tools/nitpick/src/TestCreator.cpp | 36 ++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/tools/nitpick/src/TestCreator.cpp b/tools/nitpick/src/TestCreator.cpp index dee8f7d65d..709331c45e 100644 --- a/tools/nitpick/src/TestCreator.cpp +++ b/tools/nitpick/src/TestCreator.cpp @@ -778,6 +778,26 @@ bool TestCreator::createMDFile(const QString& directory) { // ExpectedImage_00000.png OR ExpectedImage_some_stu-ff_00000.png const QRegularExpression firstExpectedImage("^ExpectedImage(_[-_\\w]*)?_00000\\.png$"); + std::vector testDescriptors; + std::vector testFilters; + + for (const auto& potentialImageFile : qDirectory.entryInfoList()) { + if (potentialImageFile.isDir()) { + continue; + } + + auto firstExpectedImageMatch = firstExpectedImage.match(potentialImageFile.fileName()); + if (!firstExpectedImageMatch.hasMatch()) { + continue; + } + + QString testDescriptor = firstExpectedImageMatch.captured(1); + auto filterString = QString(testDescriptor).replace("_", ".").replace("-", ","); + TestFilter descriptorAsFilter(filterString); + + testDescriptors.push_back(testDescriptor); + testFilters.push_back(descriptorAsFilter); + } stream << "## Steps\n"; stream << "Press '" + ADVANCE_KEY + "' key to advance step by step\n\n"; // note apostrophes surrounding 'ADVANCE_KEY' @@ -786,19 +806,9 @@ bool TestCreator::createMDFile(const QString& directory) { stream << "### Step " << QString::number(i + 1) << "\n"; stream << "- " << testScriptLines.stepList[i]->text << "\n"; if ((i + 1 < testScriptLines.stepList.size()) && testScriptLines.stepList[i]->takeSnapshot) { - for (const auto& potentialImageFile : qDirectory.entryInfoList()) { - if (potentialImageFile.isDir()) { - continue; - } - - auto firstExpectedImageMatch = firstExpectedImage.match(potentialImageFile.fileName()); - if (!firstExpectedImageMatch.hasMatch()) { - continue; - } - - QString testDescriptor = firstExpectedImageMatch.captured(1); - auto filterString = QString(testDescriptor).replace("_", ".").replace("-", ","); - TestFilter descriptorAsFilter(filterString); + for (int i = 0; i < testDescriptors.size(); ++i) { + const auto& testDescriptor = testDescriptors[i]; + const auto& descriptorAsFilter = testFilters[i]; if (descriptorAsFilter.isValid()) { stream << "- Expected image on "; stream << (descriptorAsFilter.allowedTiers.empty() ? "any" : joinVector(descriptorAsFilter.allowedTiers, "/")) << " tier, ";