From 8e063a600bc895be32cb9db3073183c7034cecc0 Mon Sep 17 00:00:00 2001 From: NissimHadar Date: Tue, 10 Apr 2018 20:16:36 -0700 Subject: [PATCH] Added recursive creation of MD files. --- tools/auto-tester/src/Test.cpp | 44 +++++++++++++++++++++++-- tools/auto-tester/src/Test.h | 4 ++- tools/auto-tester/src/ui/AutoTester.cpp | 10 ++++-- tools/auto-tester/src/ui/AutoTester.h | 7 ++-- tools/auto-tester/src/ui/AutoTester.ui | 27 +++++++++++---- 5 files changed, 75 insertions(+), 17 deletions(-) diff --git a/tools/auto-tester/src/Test.cpp b/tools/auto-tester/src/Test.cpp index 5d8b9115b8..9af5f3a079 100644 --- a/tools/auto-tester/src/Test.cpp +++ b/tools/auto-tester/src/Test.cpp @@ -304,7 +304,7 @@ void Test::createRecursiveScript() { } // This method creates a `testRecursive.js` script in every sub-folder. -void Test::createRecursiveScriptsRecursively() { +void Test::createAllRecursiveScripts() { // Select folder to start recursing from QString topLevelDirectory = QFileDialog::getExistingDirectory(nullptr, "Please select the root folder for the recursive scripts", ".", QFileDialog::ShowDirsOnly); if (topLevelDirectory == "") { @@ -559,6 +559,44 @@ void Test::createMDFile() { return; } + createMDFile(testDirectory); +} + +void Test::createAllMDFiles() { + // Select folder to start recursing from + QString topLevelDirectory = QFileDialog::getExistingDirectory(nullptr, "Please select the root folder for the MD files", ".", QFileDialog::ShowDirsOnly); + if (topLevelDirectory == "") { + return; + } + + // First test if top-level folder has a test.js file + const QString testPathname{ topLevelDirectory + "/" + TEST_FILENAME }; + QFileInfo fileInfo(testPathname); + if (fileInfo.exists()) { + createMDFile(topLevelDirectory); + } + + QDirIterator it(topLevelDirectory.toStdString().c_str(), QDirIterator::Subdirectories); + while (it.hasNext()) { + QString directory = it.next(); + + // Only process directories + QDir dir; + if (!isAValidDirectory(directory)) { + continue; + } + + const QString testPathname{ directory + "/" + TEST_FILENAME }; + QFileInfo fileInfo(testPathname); + if (fileInfo.exists()) { + createMDFile(directory); + } + } + + messageBox.information(0, "Success", "MD files have been created"); +} + +void Test::createMDFile(QString testDirectory) { // Verify folder contains test.js file QString testFileName(testDirectory + "/" + TEST_FILENAME); QFileInfo testFileInfo(testFileName); @@ -639,8 +677,8 @@ void Test::createMDFile() { int snapShotIndex { 0 }; for (size_t i = 0; i < testScriptLines.stepList.size(); ++i) { - stream << "### Step " << QString::number(i) << "\n"; - stream << "- " << testScriptLines.stepList[i + 1]->text << "\n"; + stream << "### Step " << QString::number(i + 1) << "\n"; + stream << "- " << testScriptLines.stepList[i]->text << "\n"; if (testScriptLines.stepList[i]->takeSnapshot) { stream << "- ![](./ExpectedImage_" << QString::number(snapShotIndex).rightJustified(5, '0') << ".png)\n"; ++snapShotIndex; diff --git a/tools/auto-tester/src/Test.h b/tools/auto-tester/src/Test.h index 3d04b00df9..64923da729 100644 --- a/tools/auto-tester/src/Test.h +++ b/tools/auto-tester/src/Test.h @@ -45,11 +45,13 @@ public: void finishTestsEvaluation(bool interactiveMode, QProgressBar* progressBar); void createRecursiveScript(); - void createRecursiveScriptsRecursively(); + void createAllRecursiveScripts(); void createRecursiveScript(QString topLevelDirectory, bool interactiveMode); void createTest(); void createMDFile(); + void createAllMDFiles(); + void createMDFile(QString topLevelDirectory); bool compareImageLists(bool isInteractiveMode, QProgressBar* progressBar); diff --git a/tools/auto-tester/src/ui/AutoTester.cpp b/tools/auto-tester/src/ui/AutoTester.cpp index 9153365184..fd001cc774 100644 --- a/tools/auto-tester/src/ui/AutoTester.cpp +++ b/tools/auto-tester/src/ui/AutoTester.cpp @@ -28,8 +28,8 @@ void AutoTester::on_createRecursiveScriptButton_clicked() { test->createRecursiveScript(); } -void AutoTester::on_createRecursiveScriptsRecursivelyButton_clicked() { - test->createRecursiveScriptsRecursively(); +void AutoTester::on_createAllRecursiveScriptsButton_clicked() { + test->createAllRecursiveScripts(); } void AutoTester::on_createTestButton_clicked() { @@ -37,7 +37,11 @@ void AutoTester::on_createTestButton_clicked() { } void AutoTester::on_createMDFileButton_clicked() { - test->createMDFile(); + test->createMDFile(); +} + +void AutoTester::on_createAllMDFilesButton_clicked() { + test->createAllMDFiles(); } void AutoTester::on_closeButton_clicked() { diff --git a/tools/auto-tester/src/ui/AutoTester.h b/tools/auto-tester/src/ui/AutoTester.h index 82ff3780e3..643286563c 100644 --- a/tools/auto-tester/src/ui/AutoTester.h +++ b/tools/auto-tester/src/ui/AutoTester.h @@ -28,10 +28,11 @@ public: private slots: void on_evaluateTestsButton_clicked(); void on_createRecursiveScriptButton_clicked(); - void on_createRecursiveScriptsRecursivelyButton_clicked(); + void on_createAllRecursiveScriptsButton_clicked(); void on_createTestButton_clicked(); - void on_createMDFileButton_clicked(); - void on_closeButton_clicked(); + void on_createMDFileButton_clicked(); + void on_createAllMDFilesButton_clicked(); + void on_closeButton_clicked(); void saveImage(int index); diff --git a/tools/auto-tester/src/ui/AutoTester.ui b/tools/auto-tester/src/ui/AutoTester.ui index 600de283ad..391bb61fd4 100644 --- a/tools/auto-tester/src/ui/AutoTester.ui +++ b/tools/auto-tester/src/ui/AutoTester.ui @@ -17,8 +17,8 @@ - 20 - 420 + 360 + 400 220 40 @@ -44,7 +44,7 @@ 20 - 255 + 285 220 40 @@ -70,7 +70,7 @@ 23 - 220 + 250 131 20 @@ -86,7 +86,7 @@ 20 - 310 + 340 255 23 @@ -105,14 +105,14 @@ - Create Recursive Scripts Recursively + Create all Recursive Scripts 20 - 90 + 80 220 40 @@ -121,6 +121,19 @@ Create MD file + + + + 20 + 130 + 220 + 40 + + + + Create all MD files + +