From 81251f49b59bf0cd5f439268f99ae7ca90589ac5 Mon Sep 17 00:00:00 2001 From: kanjoe24 <165808281+kanjoe24@users.noreply.github.com> Date: Wed, 27 Nov 2024 17:03:05 +0000 Subject: [PATCH 1/6] Add gh#149 : Adding first level changes for menu driven gtest tests --- src/cpp_source/ut_gtest.cpp | 59 +++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/src/cpp_source/ut_gtest.cpp b/src/cpp_source/ut_gtest.cpp index 8aa48fa..47b9cab 100644 --- a/src/cpp_source/ut_gtest.cpp +++ b/src/cpp_source/ut_gtest.cpp @@ -20,6 +20,7 @@ #include #include +static TestMode_t gTestMode; class UTTestRunner { public: @@ -28,6 +29,7 @@ class UTTestRunner int argc = 1; char *argv[1] = {(char *)"test_runner"}; ::testing::InitGoogleTest(&argc, argv); + std::cout <<"\n***************** UT-CORE CONSOLE - MAIN MENU ******************************\n"; } void setTestFilter(const std::string &filter) @@ -57,6 +59,47 @@ class UTTestRunner } return RUN_ALL_TESTS(); } + + void listTestSuites() + { + const ::testing::UnitTest &unit_test = *::testing::UnitTest::GetInstance(); + + std::cout << "--------------------- Registered Suites -----------------------------\n"; + for (int i = 0; i < unit_test.total_test_suite_count(); ++i) + { + const ::testing::TestSuite *test_suite = unit_test.GetTestSuite(i); + std::cout << test_suite->name() << ":\n"; + // for (int j = 0; j < test_suite->total_test_count(); ++j) + // { + // const ::testing::TestInfo *test_info = test_suite->GetTestInfo(j); + // std::cout << " " << test_info->name() << "\n"; + // } + } + } + + std::string getUserSelectedTestSuites() + { + std::cout << "\nEnter the test suite names to run (separate by spaces): "; + std::string input; + std::string output; + std::getline(std::cin, input); + + // Replace spaces with `:`, as Google Test uses `:` to combine multiple filters + for (auto &ch : input) + { + if (ch == ' ') + { + output += ".*:"; // Replace space with ".*:" + } + else + { + output += ch; // Keep other characters as is + } + } + + return output + ".*"; // Append wildcard to select all tests in the suite(s) + } + }; void UT_set_results_output_filename(const char* szFilenameRoot) @@ -78,9 +121,15 @@ void UT_set_results_output_filename(const char* szFilenameRoot) void UT_set_test_mode(TestMode_t mode) { + gTestMode = mode; return; } +TestMode_t UT_get_test_mode() +{ + return gTestMode; +} + void UT_Manage_Suite_Activation(int groupID, bool enable_disable) { return; @@ -99,6 +148,16 @@ UT_status_t startup_system( void ) UT_status_t UT_run_tests() { UTTestRunner testRunner; + if (UT_get_test_mode() == UT_MODE_CONSOLE) + { + testRunner.listTestSuites(); + std::string selected_suites = testRunner.getUserSelectedTestSuites(); + if (selected_suites != ".*") + { + testRunner.setTestFilter(selected_suites); + // testRunner.setTestFilter("UTKVPProfileTestL1.*:SampleTestSuite.*"); + } + } testRunner.runTests(); return UT_STATUS_OK; } \ No newline at end of file From 66e0d377538a323c3a4d1a80a520c4dbc88e8cab Mon Sep 17 00:00:00 2001 From: kanjoe24 <165808281+kanjoe24@users.noreply.github.com> Date: Tue, 3 Dec 2024 15:37:48 +0000 Subject: [PATCH 2/6] Add gh#149 : Adding dynamic menus to gtest tests as in CUNIT counterpart --- .vscode/settings.json | 62 +++++++++++++++- src/cpp_source/ut_gtest.cpp | 136 ++++++++++++++++++++++++++++-------- 2 files changed, 166 insertions(+), 32 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 30a4a6a..dd73780 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -64,6 +64,66 @@ "ut_gtest.h": "c", "ut_cunit_internal.h": "c", "ut_test_runner.h": "c", - "ut_cunit.h": "c" + "ut_cunit.h": "c", + "any": "cpp", + "array": "cpp", + "atomic": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "cctype": "cpp", + "chrono": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "compare": "cpp", + "concepts": "cpp", + "condition_variable": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "map": "cpp", + "set": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "initializer_list": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "mutex": "cpp", + "new": "cpp", + "numbers": "cpp", + "ostream": "cpp", + "semaphore": "cpp", + "span": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "stop_token": "cpp", + "streambuf": "cpp", + "thread": "cpp", + "typeinfo": "cpp", + "variant": "cpp" } } \ No newline at end of file diff --git a/src/cpp_source/ut_gtest.cpp b/src/cpp_source/ut_gtest.cpp index 47b9cab..0d156e4 100644 --- a/src/cpp_source/ut_gtest.cpp +++ b/src/cpp_source/ut_gtest.cpp @@ -18,9 +18,24 @@ */ #include +#include #include +#include + static TestMode_t gTestMode; +#define _(x) x +typedef enum +{ + UT_STATUS_CONTINUE = 1, /**< Continue processing commands in current menu. */ + UT_STATUS_MOVE_UP, /**< Move up to the previous menu. */ + UT_STATUS_STOP /**< Stop processing (user selected 'Quit'). */ +} UT_STATUS; + +struct TestSuiteInfo { + int number; + std::string name; +}; class UTTestRunner { public: @@ -29,7 +44,6 @@ class UTTestRunner int argc = 1; char *argv[1] = {(char *)"test_runner"}; ::testing::InitGoogleTest(&argc, argv); - std::cout <<"\n***************** UT-CORE CONSOLE - MAIN MENU ******************************\n"; } void setTestFilter(const std::string &filter) @@ -60,46 +74,59 @@ class UTTestRunner return RUN_ALL_TESTS(); } - void listTestSuites() + std::vector listTestSuites() { const ::testing::UnitTest &unit_test = *::testing::UnitTest::GetInstance(); - std::cout << "--------------------- Registered Suites -----------------------------\n"; + std::vector suites; + std::cout << "\n" + << _("--------------------- Registered Suites -----------------------------") << "\n" + << std::flush; + std::cout << std::setw(1) << "#" << " " // Right-aligned + << std::left << std::setw(20) << _("Suite Name") // Left-aligned + << std::endl; for (int i = 0; i < unit_test.total_test_suite_count(); ++i) { const ::testing::TestSuite *test_suite = unit_test.GetTestSuite(i); - std::cout << test_suite->name() << ":\n"; - // for (int j = 0; j < test_suite->total_test_count(); ++j) - // { - // const ::testing::TestInfo *test_info = test_suite->GetTestInfo(j); - // std::cout << " " << test_info->name() << "\n"; - // } + suites.push_back({i + 1, test_suite->name()}); + std::cout << i + 1 << ". " << test_suite->name() << "\n"; } + std::cout << _("---------------------------------------------------------------------") << "\n" + << std::flush; + std::cout << "\n" + <<"Total Number of Suites : "<< unit_test.total_test_suite_count() << "\n"; + return suites; } - std::string getUserSelectedTestSuites() + std::string getUserSelectedTestSuites(const std::vector& suites) { - std::cout << "\nEnter the test suite names to run (separate by spaces): "; - std::string input; - std::string output; - std::getline(std::cin, input); + std::cout << "\nEnter number of suite to select (1-" << suites.size() << ") : "; + int number; + std::cin >> number; - // Replace spaces with `:`, as Google Test uses `:` to combine multiple filters - for (auto &ch : input) + if (std::cin.fail() || number <= 0 || number > static_cast(suites.size())) { - if (ch == ' ') - { - output += ".*:"; // Replace space with ".*:" - } - else - { - output += ch; // Keep other characters as is - } + // Clear the error state and ignore the invalid input + std::cin.clear(); // Clear the error flag + std::cin.ignore(std::numeric_limits::max(), '\n'); // Ignore invalid input + return ""; } - return output + ".*"; // Append wildcard to select all tests in the suite(s) + // Return the selected test suite's filter + return suites[number - 1].name + ".*"; } + void printUsage() + { + std::cout << "\n\n" + << _("Commands: R - Run all tests in suite") << "\n" + << _(" S - Select a suite to run or modify") << "\n" + << _(" L - List all registered suites") << "\n" + << _(" H - Show this help message") << "\n" + << _(" Q - Quit the application") << "\n" + << std::flush; + + } }; void UT_set_results_output_filename(const char* szFilenameRoot) @@ -147,17 +174,64 @@ UT_status_t startup_system( void ) UT_status_t UT_run_tests() { + UT_STATUS eStatus = UT_STATUS_CONTINUE; + UTTestRunner testRunner; + if (UT_get_test_mode() == UT_MODE_CONSOLE) { - testRunner.listTestSuites(); - std::string selected_suites = testRunner.getUserSelectedTestSuites(); - if (selected_suites != ".*") + while (eStatus == UT_STATUS_CONTINUE) { - testRunner.setTestFilter(selected_suites); - // testRunner.setTestFilter("UTKVPProfileTestL1.*:SampleTestSuite.*"); + std::cout << "\n\n" + << _("***************** UT CORE CONSOLE - MAIN MENU ******************************") << "\n" + << _("(R)un (S)elect (L)ist (A)ctivate (F)ailures (O)ptions (H)elp (Q)uit") << "\n" + << _("Enter command: ") + << std::flush; // Ensures the buffer is flushed immediately + + char choice; + choice = std::toupper(std::cin.get()); + + if (choice == _("L")[0]) + { + testRunner.listTestSuites(); + } + else if (choice == _("S")[0]) + { + auto suites = testRunner.listTestSuites(); + std::string selected_suites = testRunner.getUserSelectedTestSuites(suites); + + if (!selected_suites.empty()) + { + std::cout << "Suite '" << selected_suites << "' selected.\n"; + // Set the GTest filter + ::testing::GTEST_FLAG(filter) = selected_suites; + } + else + { + std::cout << "\nTest not found.\n"; + } + } + else if (choice == _("R")[0]) + { + testRunner.runTests(); + } + else if (choice == _("Q")[0]) + { + eStatus = UT_STATUS_STOP; + } + else if ((choice == _("H")[0]) || (choice == _("?")[0])) + { + testRunner.printUsage(); + } } } - testRunner.runTests(); + else + { + testRunner.runTests(); + } + + UT_LOG( UT_LOG_ASCII_GREEN "Logfile" UT_LOG_ASCII_NC ":[" UT_LOG_ASCII_YELLOW "%s" UT_LOG_ASCII_NC "]\n", UT_log_getLogFilename() ); + UT_exit(); + return UT_STATUS_OK; } \ No newline at end of file From 433c118c0eabdec0209daa2fbd95625dd68fbe13 Mon Sep 17 00:00:00 2001 From: kanjoe24 <165808281+kanjoe24@users.noreply.github.com> Date: Tue, 3 Dec 2024 16:45:00 +0000 Subject: [PATCH 3/6] Add gh#149 : Adding not implemented message for the options --- src/cpp_source/ut_gtest.cpp | 15 ++++++++-- ut-core-dev.code-workspace | 60 ++++++++++++++++++++++++++++++++++++- 2 files changed, 72 insertions(+), 3 deletions(-) diff --git a/src/cpp_source/ut_gtest.cpp b/src/cpp_source/ut_gtest.cpp index 0d156e4..1a8214a 100644 --- a/src/cpp_source/ut_gtest.cpp +++ b/src/cpp_source/ut_gtest.cpp @@ -36,6 +36,7 @@ struct TestSuiteInfo { int number; std::string name; }; + class UTTestRunner { public: @@ -124,6 +125,9 @@ class UTTestRunner << _(" L - List all registered suites") << "\n" << _(" H - Show this help message") << "\n" << _(" Q - Quit the application") << "\n" + << _(" A - Activate - implementation pending") << "\n" + << _(" O - Option - implementation pending") << "\n" + << _(" F - Failures - implementation pending") << "\n" << std::flush; } @@ -188,8 +192,11 @@ UT_status_t UT_run_tests() << _("Enter command: ") << std::flush; // Ensures the buffer is flushed immediately - char choice; - choice = std::toupper(std::cin.get()); + char choice = '\0'; + std::cin >> choice; // Read the user input + std::cin.ignore(std::numeric_limits::max(), '\n'); // Clear the buffer + + choice = std::toupper(choice); // Convert input to uppercase for consistency if (choice == _("L")[0]) { @@ -223,6 +230,10 @@ UT_status_t UT_run_tests() { testRunner.printUsage(); } + else if ((choice == _("A")[0]) || (choice == _("F")[0]) || (choice == _("O")[0])) + { + std::cout << "To be implemented soon\n" << std::flush; + } } } else diff --git a/ut-core-dev.code-workspace b/ut-core-dev.code-workspace index a71107a..564330b 100644 --- a/ut-core-dev.code-workspace +++ b/ut-core-dev.code-workspace @@ -22,7 +22,65 @@ "stdlib.h": "c", "assert.h": "c", "cstdlib": "c", - "ut_internal.h": "c" + "ut_internal.h": "c", + "any": "cpp", + "atomic": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "cctype": "cpp", + "chrono": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "compare": "cpp", + "concepts": "cpp", + "condition_variable": "cpp", + "csignal": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "forward_list": "cpp", + "list": "cpp", + "map": "cpp", + "set": "cpp", + "unordered_map": "cpp", + "unordered_set": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "fstream": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "mutex": "cpp", + "new": "cpp", + "numbers": "cpp", + "ostream": "cpp", + "semaphore": "cpp", + "span": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "stop_token": "cpp", + "streambuf": "cpp", + "thread": "cpp", + "cinttypes": "cpp", + "typeinfo": "cpp", + "variant": "cpp" }, "python.autoComplete.extraPaths": [ "${workspaceFolder}/sources/poky/bitbake/lib", From 101afa0a426c596e38afbf6ef2bb7e51eedb45a6 Mon Sep 17 00:00:00 2001 From: kanjoe24 <165808281+kanjoe24@users.noreply.github.com> Date: Wed, 4 Dec 2024 10:33:32 +0000 Subject: [PATCH 4/6] Fix gh#149 : Rearranged tests for gtest for consistent results --- tests/src/cpp_source/ut_test_gtest.cpp | 33 +++++++++++--------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/tests/src/cpp_source/ut_test_gtest.cpp b/tests/src/cpp_source/ut_test_gtest.cpp index 43a3890..637a800 100644 --- a/tests/src/cpp_source/ut_test_gtest.cpp +++ b/tests/src/cpp_source/ut_test_gtest.cpp @@ -39,32 +39,18 @@ class UTKVPProfileTestL1 : public UTCore } }; -TEST_F(UTKVPProfileTestL1, TestProfileGetInstance) +TEST_F(UTKVPProfileTestL1, TestProfileOpenSuccess) { - // Getinstance from the profile passed via cli - ut_kvp_instance_t *instance = ut_kvp_profile_getInstance(); - EXPECT_NE(instance, nullptr); + const char *validFileName = KVP_VALID_TEST_YAML_FILE; + ut_kvp_status_t status = ut_kvp_profile_open((char *)validFileName); + EXPECT_EQ(status, UT_KVP_STATUS_SUCCESS); } -TEST_F(UTKVPProfileTestL1, TestProfileClose) +TEST_F(UTKVPProfileTestL1, TestProfileGetInstance) { // Getinstance from the profile passed via cli ut_kvp_instance_t *instance = ut_kvp_profile_getInstance(); EXPECT_NE(instance, nullptr); - - ut_kvp_profile_close(); - ut_kvp_profile_close(); - ut_kvp_profile_close(); - // Since close doesn't return a status, we assume success if no exceptions were thrown. - SUCCEED(); -} - -TEST_F(UTKVPProfileTestL1, TestProfileOpenSuccess) -{ - const char *validFileName = KVP_VALID_TEST_YAML_FILE; - ut_kvp_status_t status = ut_kvp_profile_open((char *)validFileName); - EXPECT_EQ(status, UT_KVP_STATUS_SUCCESS); - ut_kvp_profile_close(); } TEST_F(UTKVPProfileTestL1, TestProfileOpenFailure) @@ -77,7 +63,16 @@ TEST_F(UTKVPProfileTestL1, TestProfileOpenFailure) // Test with a null file name. status = ut_kvp_profile_open(nullptr); EXPECT_EQ(status, UT_KVP_STATUS_INVALID_PARAM); +} + +TEST_F(UTKVPProfileTestL1, TestProfileClose) +{ + // Test profile close ut_kvp_profile_close(); + ut_kvp_profile_close(); + ut_kvp_profile_close(); + // Since close doesn't return a status, we assume success if no exceptions were thrown. + SUCCEED(); } // Other test cases as needed... \ No newline at end of file From 211cd8da95c4d4da57b727d64b25ef946c865bb8 Mon Sep 17 00:00:00 2001 From: kanjoe24 <165808281+kanjoe24@users.noreply.github.com> Date: Wed, 4 Dec 2024 10:56:59 +0000 Subject: [PATCH 5/6] Fix gh#149 : Fix review comments --- src/cpp_source/ut_gtest.cpp | 42 ++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/cpp_source/ut_gtest.cpp b/src/cpp_source/ut_gtest.cpp index 1a8214a..0ffa049 100644 --- a/src/cpp_source/ut_gtest.cpp +++ b/src/cpp_source/ut_gtest.cpp @@ -24,7 +24,7 @@ #include static TestMode_t gTestMode; -#define _(x) x +#define STRING_FORMAT(x) x typedef enum { UT_STATUS_CONTINUE = 1, /**< Continue processing commands in current menu. */ @@ -81,10 +81,10 @@ class UTTestRunner std::vector suites; std::cout << "\n" - << _("--------------------- Registered Suites -----------------------------") << "\n" + << STRING_FORMAT("--------------------- Registered Suites -----------------------------") << "\n" << std::flush; std::cout << std::setw(1) << "#" << " " // Right-aligned - << std::left << std::setw(20) << _("Suite Name") // Left-aligned + << std::left << std::setw(20) << STRING_FORMAT("Suite Name") // Left-aligned << std::endl; for (int i = 0; i < unit_test.total_test_suite_count(); ++i) { @@ -92,7 +92,7 @@ class UTTestRunner suites.push_back({i + 1, test_suite->name()}); std::cout << i + 1 << ". " << test_suite->name() << "\n"; } - std::cout << _("---------------------------------------------------------------------") << "\n" + std::cout << STRING_FORMAT("---------------------------------------------------------------------") << "\n" << std::flush; std::cout << "\n" <<"Total Number of Suites : "<< unit_test.total_test_suite_count() << "\n"; @@ -120,14 +120,14 @@ class UTTestRunner void printUsage() { std::cout << "\n\n" - << _("Commands: R - Run all tests in suite") << "\n" - << _(" S - Select a suite to run or modify") << "\n" - << _(" L - List all registered suites") << "\n" - << _(" H - Show this help message") << "\n" - << _(" Q - Quit the application") << "\n" - << _(" A - Activate - implementation pending") << "\n" - << _(" O - Option - implementation pending") << "\n" - << _(" F - Failures - implementation pending") << "\n" + << STRING_FORMAT("Commands: R - Run all tests in suite") << "\n" + << STRING_FORMAT(" S - Select a suite to run or modify") << "\n" + << STRING_FORMAT(" L - List all registered suites") << "\n" + << STRING_FORMAT(" H - Show this help message") << "\n" + << STRING_FORMAT(" Q - Quit the application") << "\n" + << STRING_FORMAT(" A - Activate - implementation pending") << "\n" + << STRING_FORMAT(" O - Option - implementation pending") << "\n" + << STRING_FORMAT(" F - Failures - implementation pending") << "\n" << std::flush; } @@ -187,9 +187,9 @@ UT_status_t UT_run_tests() while (eStatus == UT_STATUS_CONTINUE) { std::cout << "\n\n" - << _("***************** UT CORE CONSOLE - MAIN MENU ******************************") << "\n" - << _("(R)un (S)elect (L)ist (A)ctivate (F)ailures (O)ptions (H)elp (Q)uit") << "\n" - << _("Enter command: ") + << STRING_FORMAT("***************** UT CORE CONSOLE - MAIN MENU ******************************") << "\n" + << STRING_FORMAT("(R)un (S)elect (L)ist (A)ctivate (F)ailures (O)ptions (H)elp (Q)uit") << "\n" + << STRING_FORMAT("Enter command: ") << std::flush; // Ensures the buffer is flushed immediately char choice = '\0'; @@ -198,11 +198,11 @@ UT_status_t UT_run_tests() choice = std::toupper(choice); // Convert input to uppercase for consistency - if (choice == _("L")[0]) + if (choice == STRING_FORMAT("L")[0]) { testRunner.listTestSuites(); } - else if (choice == _("S")[0]) + else if (choice == STRING_FORMAT("S")[0]) { auto suites = testRunner.listTestSuites(); std::string selected_suites = testRunner.getUserSelectedTestSuites(suites); @@ -218,19 +218,19 @@ UT_status_t UT_run_tests() std::cout << "\nTest not found.\n"; } } - else if (choice == _("R")[0]) + else if (choice == STRING_FORMAT("R")[0]) { testRunner.runTests(); } - else if (choice == _("Q")[0]) + else if (choice == STRING_FORMAT("Q")[0]) { eStatus = UT_STATUS_STOP; } - else if ((choice == _("H")[0]) || (choice == _("?")[0])) + else if ((choice == STRING_FORMAT("H")[0]) || (choice == STRING_FORMAT("?")[0])) { testRunner.printUsage(); } - else if ((choice == _("A")[0]) || (choice == _("F")[0]) || (choice == _("O")[0])) + else if ((choice == STRING_FORMAT("A")[0]) || (choice == STRING_FORMAT("F")[0]) || (choice == STRING_FORMAT("O")[0])) { std::cout << "To be implemented soon\n" << std::flush; } From 55e5420e60d819ad22825636ba4e70f4ee572d8c Mon Sep 17 00:00:00 2001 From: kanjoe24 <165808281+kanjoe24@users.noreply.github.com> Date: Wed, 4 Dec 2024 13:02:43 +0000 Subject: [PATCH 6/6] Fix gh#149 : Minor change to update log and xml files for VARIANT=CPP --- src/cpp_source/ut_gtest.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/cpp_source/ut_gtest.cpp b/src/cpp_source/ut_gtest.cpp index 0ffa049..bb65bf5 100644 --- a/src/cpp_source/ut_gtest.cpp +++ b/src/cpp_source/ut_gtest.cpp @@ -148,6 +148,8 @@ void UT_set_results_output_filename(const char* szFilenameRoot) // Set the output format and path programmatically ::testing::FLAGS_gtest_output = std::string("xml:") + filepath + "-report.xml"; + std::cout << "Listing Filename:[" << filepath << "-report.xml]\n" << std::flush; + std::cout << "Results Filename:[" << filepath << ".log]\n" << std::flush; } void UT_set_test_mode(TestMode_t mode)