From 23037d7932fe126dbfc128249b4a51344c98b12a Mon Sep 17 00:00:00 2001 From: Ignacio Rodriguez Date: Thu, 5 Nov 2020 19:20:45 +0700 Subject: [PATCH 1/6] incorporating sonar's major --- src/lib/arch/unix/ArchFileUnix.cpp | 2 +- src/lib/platform/XWindowsScreen.cpp | 12 ++++----- src/lib/synergy/ArgParser.cpp | 38 +++++++++++++---------------- 3 files changed, 24 insertions(+), 28 deletions(-) diff --git a/src/lib/arch/unix/ArchFileUnix.cpp b/src/lib/arch/unix/ArchFileUnix.cpp index 4558720c3..bbf841640 100644 --- a/src/lib/arch/unix/ArchFileUnix.cpp +++ b/src/lib/arch/unix/ArchFileUnix.cpp @@ -61,7 +61,7 @@ ArchFileUnix::getUserDirectory() std::string dir; #if HAVE_GETPWUID_R struct passwd pwent; - struct passwd* pwentp; + struct passwd* pwentp {}; #if defined(_SC_GETPW_R_SIZE_MAX) long size = sysconf(_SC_GETPW_R_SIZE_MAX); if (size == -1) { diff --git a/src/lib/platform/XWindowsScreen.cpp b/src/lib/platform/XWindowsScreen.cpp index 84035d4f6..d6a883158 100644 --- a/src/lib/platform/XWindowsScreen.cpp +++ b/src/lib/platform/XWindowsScreen.cpp @@ -848,12 +848,12 @@ void XWindowsScreen::fakeMouseRelativeMove(SInt32 dx, SInt32 dy) const { // FIXME -- ignore xinerama for now - if (false && m_xinerama && m_xtestIsXineramaUnaware) { -// XWarpPointer(m_display, None, m_root, 0, 0, 0, 0, x, y); - } - else { - XTestFakeRelativeMotionEvent(m_display, dx, dy, CurrentTime); - } + // if (false && m_xinerama && m_xtestIsXineramaUnaware) { + // XWarpPointer(m_display, None, m_root, 0, 0, 0, 0, x, y); + // } + // else { + XTestFakeRelativeMotionEvent(m_display, dx, dy, CurrentTime); + // } XFlush(m_display); } diff --git a/src/lib/synergy/ArgParser.cpp b/src/lib/synergy/ArgParser.cpp index 388140167..d14277c23 100644 --- a/src/lib/synergy/ArgParser.cpp +++ b/src/lib/synergy/ArgParser.cpp @@ -174,28 +174,24 @@ ArgParser::parsePlatformArg(lib::synergy::ArgsBase& argsBase, const int& argc, c bool ArgParser::parseToolArgs(ToolArgs& args, int argc, const char* const* argv) { - for (int i = 1; i < argc; ++i) { - if (isArg(i, argc, argv, NULL, "--get-active-desktop", 0)) { - args.m_printActiveDesktopName = true; - return true; - } - else if (isArg(i, argc, argv, NULL, "--get-installed-dir", 0)) { - args.m_getInstalledDir = true; - return true; - } - else if (isArg(i, argc, argv, NULL, "--get-profile-dir", 0)) { - args.m_getProfileDir = true; - return true; - } - else if (isArg(i, argc, argv, NULL, "--get-arch", 0)) { - args.m_getArch = true; - return true; - } - else { - return false; - } + // We support exactly one argument at a fix position + static const int only_index {1}; + if (isArg(only_index, argc, argv, NULL, "--get-active-desktop", 0)) { + args.m_printActiveDesktopName = true; + return true; + } + else if (isArg(only_index, argc, argv, NULL, "--get-installed-dir", 0)) { + args.m_getInstalledDir = true; + return true; + } + else if (isArg(only_index, argc, argv, NULL, "--get-profile-dir", 0)) { + args.m_getProfileDir = true; + return true; + } + else if (isArg(only_index, argc, argv, NULL, "--get-arch", 0)) { + args.m_getArch = true; + return true; } - return false; } From 387a7f7e699561afbb46ff76021587ce7fb7beb5 Mon Sep 17 00:00:00 2001 From: Ignacio Rodriguez Date: Thu, 5 Nov 2020 19:24:59 +0700 Subject: [PATCH 2/6] changelog --- ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ChangeLog b/ChangeLog index 722836e9e..b48a08993 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +=========== +Bug fixes: +- #6831 Incorporating Sonar's major + +Enhancements: + v1.12.x-snapshot =========== Bug fixes: From af221bd94ffb9a3bdf4f07267b81ca810d54cd6d Mon Sep 17 00:00:00 2001 From: Ignacio Rodriguez Date: Mon, 9 Nov 2020 19:43:19 +0700 Subject: [PATCH 3/6] increasing coverage --- src/test/unittests/synergy/ArgParserTests.cpp | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/test/unittests/synergy/ArgParserTests.cpp b/src/test/unittests/synergy/ArgParserTests.cpp index 8b1211427..7069d1ad6 100644 --- a/src/test/unittests/synergy/ArgParserTests.cpp +++ b/src/test/unittests/synergy/ArgParserTests.cpp @@ -15,8 +15,11 @@ * along with this program. If not, see . */ +#include + #include "synergy/ArgParser.h" #include "synergy/ArgsBase.h" +#include "synergy/ToolArgs.h" #include "test/global/gtest.h" @@ -205,3 +208,21 @@ TEST(ArgParserTests, assembleCommand_stringArrayWithSpace_returnCommand) EXPECT_EQ("\"stub1 space\" stub2 \"stub3 space\"", command); } +TEST(ArgParserTests, parseToolArgs_matches_correspondingly) +{ + ArgParser parser(nullptr); + std::map> tests = { + {"--get-active-desktop", [](ToolArgs const &a){ return a.m_printActiveDesktopName; }}, + {"--get-installed-dir", [](ToolArgs const &a){ return a.m_getInstalledDir; }}, + {"--get-profile-dir", [](ToolArgs const &a){ return a.m_getProfileDir; }}, + {"--get-arch", [](ToolArgs const &a){ return a.m_getArch; }} + }; + for (auto const &test: tests) { + ToolArgs toolArgs; + EXPECT_FALSE(test.second(toolArgs)); + const char *twoArgs[2] {"syntool", test.first}; + EXPECT_TRUE(parser.parseToolArgs(toolArgs, 2, twoArgs)); + EXPECT_TRUE(test.second(toolArgs)); + } +} + From 455c2544620cca19eb93c22504a5f0f26e10745a Mon Sep 17 00:00:00 2001 From: Ignacio Rodriguez Date: Mon, 9 Nov 2020 21:13:11 +0700 Subject: [PATCH 4/6] adding last test branch --- src/test/unittests/synergy/ArgParserTests.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/unittests/synergy/ArgParserTests.cpp b/src/test/unittests/synergy/ArgParserTests.cpp index 7069d1ad6..b7d3b6df1 100644 --- a/src/test/unittests/synergy/ArgParserTests.cpp +++ b/src/test/unittests/synergy/ArgParserTests.cpp @@ -224,5 +224,8 @@ TEST(ArgParserTests, parseToolArgs_matches_correspondingly) EXPECT_TRUE(parser.parseToolArgs(toolArgs, 2, twoArgs)); EXPECT_TRUE(test.second(toolArgs)); } + ToolArgs toolArgs; + const char *twoArgs[2] {"syntool", "--garbage"}; + EXPECT_FALSE(parser.parseToolArgs(toolArgs, 2, twoArgs)); } From d9e656db9758a4d6cead2cea0ec4e9f59e278d11 Mon Sep 17 00:00:00 2001 From: Ignacio Rodriguez Date: Mon, 9 Nov 2020 21:46:56 +0700 Subject: [PATCH 5/6] accepted more suggestions from sonarcloud --- src/lib/platform/XWindowsScreen.cpp | 5 ----- src/test/unittests/synergy/ArgParserTests.cpp | 8 ++++---- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/lib/platform/XWindowsScreen.cpp b/src/lib/platform/XWindowsScreen.cpp index d6a883158..7bd0ba8c7 100644 --- a/src/lib/platform/XWindowsScreen.cpp +++ b/src/lib/platform/XWindowsScreen.cpp @@ -848,12 +848,7 @@ void XWindowsScreen::fakeMouseRelativeMove(SInt32 dx, SInt32 dy) const { // FIXME -- ignore xinerama for now - // if (false && m_xinerama && m_xtestIsXineramaUnaware) { - // XWarpPointer(m_display, None, m_root, 0, 0, 0, 0, x, y); - // } - // else { XTestFakeRelativeMotionEvent(m_display, dx, dy, CurrentTime); - // } XFlush(m_display); } diff --git a/src/test/unittests/synergy/ArgParserTests.cpp b/src/test/unittests/synergy/ArgParserTests.cpp index b7d3b6df1..b35e39340 100644 --- a/src/test/unittests/synergy/ArgParserTests.cpp +++ b/src/test/unittests/synergy/ArgParserTests.cpp @@ -220,12 +220,12 @@ TEST(ArgParserTests, parseToolArgs_matches_correspondingly) for (auto const &test: tests) { ToolArgs toolArgs; EXPECT_FALSE(test.second(toolArgs)); - const char *twoArgs[2] {"syntool", test.first}; - EXPECT_TRUE(parser.parseToolArgs(toolArgs, 2, twoArgs)); + std::array twoArgs {"syntool", test.first}; + EXPECT_TRUE(parser.parseToolArgs(toolArgs, 2, twoArgs.data())); EXPECT_TRUE(test.second(toolArgs)); } ToolArgs toolArgs; - const char *twoArgs[2] {"syntool", "--garbage"}; - EXPECT_FALSE(parser.parseToolArgs(toolArgs, 2, twoArgs)); + std::array twoArgs {"syntool", "--garbage"}; + EXPECT_FALSE(parser.parseToolArgs(toolArgs, 2, twoArgs.data())); } From c2c952fe11ae761e3138bf77595bc850809f6e50 Mon Sep 17 00:00:00 2001 From: Ignacio Rodriguez Date: Mon, 9 Nov 2020 21:55:46 +0700 Subject: [PATCH 6/6] adding missing include --- src/test/unittests/synergy/ArgParserTests.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/unittests/synergy/ArgParserTests.cpp b/src/test/unittests/synergy/ArgParserTests.cpp index b35e39340..d7176b360 100644 --- a/src/test/unittests/synergy/ArgParserTests.cpp +++ b/src/test/unittests/synergy/ArgParserTests.cpp @@ -16,6 +16,7 @@ */ #include +#include #include "synergy/ArgParser.h" #include "synergy/ArgsBase.h"