From c168721d2f93dd28fc0c78efb5791939c4833e05 Mon Sep 17 00:00:00 2001 From: XinyuHou Date: Wed, 6 May 2015 11:57:42 +0100 Subject: [PATCH] Added deprecated args handling #4570 --- src/lib/synergy/ArgParser.cpp | 18 +++++++ src/lib/synergy/ArgParser.h | 1 + .../synergy/DeprecatedArgsParsingTests.cpp | 50 +++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 src/test/unittests/synergy/DeprecatedArgsParsingTests.cpp diff --git a/src/lib/synergy/ArgParser.cpp b/src/lib/synergy/ArgParser.cpp index bec60632..0e108298 100644 --- a/src/lib/synergy/ArgParser.cpp +++ b/src/lib/synergy/ArgParser.cpp @@ -44,6 +44,9 @@ ArgParser::parseServerArgs(ServerArgs& args, int argc, const char* const* argv) else if (parseGenericArgs(argc, argv, i)) { continue; } + else if (parseDeprecatedArgs(argc, argv, i)) { + continue; + } else if (isArg(i, argc, argv, "-a", "--address", 1)) { // save listen address args.m_synergyAddress = argv[++i]; @@ -79,6 +82,9 @@ ArgParser::parseClientArgs(ClientArgs& args, int argc, const char* const* argv) else if (parseGenericArgs(argc, argv, i)) { continue; } + else if (parseDeprecatedArgs(argc, argv, i)) { + continue; + } else if (isArg(i, argc, argv, NULL, "--camp")) { // ignore -- included for backwards compatibility } @@ -297,6 +303,18 @@ ArgParser::parseGenericArgs(int argc, const char* const* argv, int& i) return true; } +bool +ArgParser::parseDeprecatedArgs(int argc, const char* const* argv, int& i) +{ + if (isArg(i, argc, argv, NULL, "--crypto-pass")) { + LOG((CLOG_NOTE "--crypto-pass is deprecated")); + i++; + return true; + } + + return false; +} + bool ArgParser::isArg( int argi, int argc, const char* const* argv, diff --git a/src/lib/synergy/ArgParser.h b/src/lib/synergy/ArgParser.h index 3ed3c025..a4b636c4 100644 --- a/src/lib/synergy/ArgParser.h +++ b/src/lib/synergy/ArgParser.h @@ -36,6 +36,7 @@ public: bool parsePlatformArg(ArgsBase& argsBase, const int& argc, const char* const* argv, int& i); bool parseToolArgs(ToolArgs& args, int argc, const char* const* argv); bool parseGenericArgs(int argc, const char* const* argv, int& i); + bool parseDeprecatedArgs(int argc, const char* const* argv, int& i); void setArgsBase(ArgsBase& argsBase) { m_argsBase = &argsBase; } static bool isArg(int argi, int argc, const char* const* argv, diff --git a/src/test/unittests/synergy/DeprecatedArgsParsingTests.cpp b/src/test/unittests/synergy/DeprecatedArgsParsingTests.cpp new file mode 100644 index 00000000..ebc6ff01 --- /dev/null +++ b/src/test/unittests/synergy/DeprecatedArgsParsingTests.cpp @@ -0,0 +1,50 @@ +/* + * synergy -- mouse and keyboard sharing utility + * Copyright (C) 2015 Synergy Si, Inc. + * + * This package is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * found in the file COPYING that should have accompanied this file. + * + * This package is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "synergy/ArgParser.h" + +#include "test/global/gtest.h" + +using namespace synergy; + +TEST(DeprecatedArgsParsingTests, parseDeprecatedArgs_cryptoPass_returnTrue) +{ + int i = 1; + const int argc = 3; + const char* kCryptoPassCmd[argc] = { "stub", "--crypto-pass", "mock_pass" }; + + ArgParser argParser(NULL); + + bool result = argParser.parseDeprecatedArgs(argc, kCryptoPassCmd, i); + + EXPECT_EQ(true, result); + EXPECT_EQ(2, i); +} + +TEST(DeprecatedArgsParsingTests, parseDeprecatedArgs_cryptoPass_returnFalse) +{ + int i = 1; + const int argc = 3; + const char* kCryptoPassCmd[argc] = { "stub", "--mock-arg", "mock_value" }; + + ArgParser argParser(NULL); + + bool result = argParser.parseDeprecatedArgs(argc, kCryptoPassCmd, i); + + EXPECT_EQ(false, result); + EXPECT_EQ(1, i); +}