diff --git a/ChangeLog b/ChangeLog index 255869bb7..c7f518cd1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ v1.13.1-snapshot =========== Bug fixes: -- #6900 Remaining SonarCloud reported bug items +- #6900 Remaining SonarCloud reported bug items (test fixed) - #6889 Systray Icon on Ubuntu Auto Start (take 2) - #6910 Don't use the word “Version” for release names because it can lead to errors during update checking. =========== diff --git a/src/lib/synergy/ArgParser.cpp b/src/lib/synergy/ArgParser.cpp index 94dc94cdf..8ec5c29e7 100644 --- a/src/lib/synergy/ArgParser.cpp +++ b/src/lib/synergy/ArgParser.cpp @@ -45,12 +45,15 @@ ArgParser::parseServerArgs(lib::synergy::ServerArgs& args, int argc, const char* int i = 1; while ( i < argc) { if (parsePlatformArg(args, argc, argv, i)) { + ++i; continue; } else if (parseGenericArgs(argc, argv, i)) { + ++i; continue; } else if (parseDeprecatedArgs(argc, argv, i)) { + ++i; continue; } else if (isArg(i, argc, argv, "-a", "--address", 1)) { @@ -87,12 +90,15 @@ ArgParser::parseClientArgs(lib::synergy::ClientArgs& args, int argc, const char* int i {1}; while (i < argc) { if (parsePlatformArg(args, argc, argv, i)) { + ++i; continue; } else if (parseGenericArgs(argc, argv, i)) { + ++i; continue; } else if (parseDeprecatedArgs(argc, argv, i)) { + ++i; continue; } else if (isArg(i, argc, argv, NULL, "--camp")) { diff --git a/src/test/unittests/server/ConfigTests.cpp b/src/test/unittests/server/ConfigTests.cpp index 4f432e732..d661cbc5b 100644 --- a/src/test/unittests/server/ConfigTests.cpp +++ b/src/test/unittests/server/ConfigTests.cpp @@ -73,8 +73,12 @@ TEST(ServerConfigTests, serverconfig_will_deem_equal_configs_with_same_cell_name b.getInputFilter()->addFilterRule(InputFilter::Rule{new OnlySystemFilter()}); a.addAlias("screenA", "aliasA"); b.addAlias("screenA", "aliasA"); - a.setSynergyAddress(NetworkAddress(8080)); - b.setSynergyAddress(NetworkAddress(8080)); + NetworkAddress addr1("localhost", 8080); + addr1.resolve(); + NetworkAddress addr2("localhost", 8080); + addr2.resolve(); + a.setSynergyAddress(addr1); + b.setSynergyAddress(addr2); EXPECT_TRUE(a == b); EXPECT_TRUE(b == a); diff --git a/src/test/unittests/synergy/ArgParserTests.cpp b/src/test/unittests/synergy/ArgParserTests.cpp index d7176b360..2442dd7f2 100644 --- a/src/test/unittests/synergy/ArgParserTests.cpp +++ b/src/test/unittests/synergy/ArgParserTests.cpp @@ -21,6 +21,8 @@ #include "synergy/ArgParser.h" #include "synergy/ArgsBase.h" #include "synergy/ToolArgs.h" +#include "synergy/ServerArgs.h" +#include "synergy/ClientArgs.h" #include "test/global/gtest.h" @@ -230,3 +232,37 @@ TEST(ArgParserTests, parseToolArgs_matches_correspondingly) EXPECT_FALSE(parser.parseToolArgs(toolArgs, 2, twoArgs.data())); } +TEST(ArgParserTests, parseServerArgs_parses_each_category) +{ + ArgParser parser(nullptr); + lib::synergy::ServerArgs args; + args.m_daemon = false; + char const *argv[] = {"synergy", "--help" +#if WINAPI_MSWINDOWS +,"--exit-pause" +#elif WINAPI_XWINDOWS +,"--no-xinitthreads" +#endif +, "--res-w", "888" + }; + EXPECT_TRUE(parser.parseServerArgs(args, sizeof(argv)/sizeof(argv[0]), argv)); + EXPECT_EQ(args.m_shouldExit, true); +} + +TEST(ArgParserTests, parseClientArgs_parses_single_help) +{ + ArgParser parser(nullptr); + lib::synergy::ClientArgs args; + args.m_daemon = false; + char const *argv[] = {"synergy", "--help" +#if WINAPI_MSWINDOWS + ,"--exit-pause" +#elif WINAPI_XWINDOWS + ,"--no-xinitthreads" +#endif + , "--res-w" + , "888" + , "127.0.0.1" }; + EXPECT_TRUE(parser.parseClientArgs(args, sizeof(argv)/sizeof(argv[0]), argv)); + EXPECT_EQ(args.m_shouldExit, true); +}