From 5e02adc772f5cd8c7eb37b62b9555e6644ab6977 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Fri, 22 Aug 2025 18:39:42 -0400 Subject: [PATCH] refactor: deskflow-core take over --version arg for App class change the serverAppTest to not call version --- src/lib/deskflow/App.cpp | 12 ----------- src/lib/deskflow/App.h | 4 +--- src/lib/deskflow/ArgParser.cpp | 5 ----- src/lib/deskflow/CoreArgParser.cpp | 10 +++++++-- src/lib/deskflow/CoreArgParser.h | 1 + src/unittests/deskflow/ServerAppTests.cpp | 26 +++-------------------- src/unittests/deskflow/ServerAppTests.h | 2 +- 7 files changed, 14 insertions(+), 46 deletions(-) diff --git a/src/lib/deskflow/App.cpp b/src/lib/deskflow/App.cpp index c32e81a8f..f39a816e3 100644 --- a/src/lib/deskflow/App.cpp +++ b/src/lib/deskflow/App.cpp @@ -66,18 +66,6 @@ App::~App() delete m_args; } -void App::version() -{ - const auto kBufferLength = 1024; - std::vector buffer(kBufferLength); - std::snprintf( // NOSONAR - buffer.data(), kBufferLength, "%s v%s, protocol v%d.%d\n%s", // - argsBase().m_pname, kDisplayVersion, kProtocolMajorVersion, kProtocolMinorVersion, kCopyright - ); - - std::cout << std::string(buffer.data()) << std::endl; -} - int App::run(int argc, char **argv) { #if MAC_OS_X_VERSION_10_7 diff --git a/src/lib/deskflow/App.h b/src/lib/deskflow/App.h index 12bd75710..b45bfbdf4 100644 --- a/src/lib/deskflow/App.h +++ b/src/lib/deskflow/App.h @@ -58,7 +58,6 @@ public: virtual const char *daemonInfo() const = 0; virtual std::string configSection() const = 0; - virtual void version(); void setByeFunc(void (*bye)(int)) override { m_bye = bye; @@ -142,8 +141,7 @@ constexpr static auto s_helpGeneralArgs = // " --tls-cert specify the path to the TLS certificate file.\n"; constexpr static auto s_helpVersionArgs = // - " -h, --help display this help and exit.\n" - " --version display version information and exit.\n"; + " -h, --help display this help and exit.\n"; constexpr static auto s_helpCommonArgs = // " [--name ]" diff --git a/src/lib/deskflow/ArgParser.cpp b/src/lib/deskflow/ArgParser.cpp index f35419b51..4513c47f2 100644 --- a/src/lib/deskflow/ArgParser.cpp +++ b/src/lib/deskflow/ArgParser.cpp @@ -145,11 +145,6 @@ bool ArgParser::parseGenericArgs(int argc, const char *const *argv, int &i) cons m_app->help(); } argsBase().m_shouldExitOk = true; - } else if (isArg(i, argc, argv, nullptr, "--version")) { - if (m_app) { - m_app->version(); - } - argsBase().m_shouldExitOk = true; } else if (isArg(i, argc, argv, nullptr, "--server")) { // HACK: stop error happening when using portable (deskflowp) } else if (isArg(i, argc, argv, nullptr, "--client")) { diff --git a/src/lib/deskflow/CoreArgParser.cpp b/src/lib/deskflow/CoreArgParser.cpp index b0dc4bba3..cefb14059 100644 --- a/src/lib/deskflow/CoreArgParser.cpp +++ b/src/lib/deskflow/CoreArgParser.cpp @@ -10,8 +10,10 @@ #include "common/Constants.h" #include "common/ExitCodes.h" #include "common/Settings.h" +#include "deskflow/ProtocolTypes.h" -const QString CoreArgParser::s_headerText = QStringLiteral("%1-core: %2\n").arg(kAppId, kDisplayVersion); +const QString CoreArgParser::s_appName = QStringLiteral("%1-core").arg(kAppId); +const QString CoreArgParser::s_headerText = QStringLiteral("%1: %2\n").arg(s_appName, kDisplayVersion); CoreArgParser::CoreArgParser(const QStringList &args) { @@ -61,7 +63,11 @@ QString CoreArgParser::helpText() const QString CoreArgParser::versionText() const { - return QStringLiteral("%1%2\n").arg(s_headerText, kCopyright); + const static auto vString = QStringLiteral("%1 v%2, protocol v%3.%4\n%5\n"); + return vString.arg( + s_appName, kDisplayVersion, QString::number(kProtocolMajorVersion), QString::number(kProtocolMinorVersion), + kCopyright + ); } QString CoreArgParser::errorText() const diff --git a/src/lib/deskflow/CoreArgParser.h b/src/lib/deskflow/CoreArgParser.h index 45b7bc32c..025c5e50a 100644 --- a/src/lib/deskflow/CoreArgParser.h +++ b/src/lib/deskflow/CoreArgParser.h @@ -40,5 +40,6 @@ private: QString m_helpText; bool m_clientMode = false; bool m_serverMode = false; + static const QString s_appName; static const QString s_headerText; }; diff --git a/src/unittests/deskflow/ServerAppTests.cpp b/src/unittests/deskflow/ServerAppTests.cpp index 7fb4f7ce8..764dd4e8f 100644 --- a/src/unittests/deskflow/ServerAppTests.cpp +++ b/src/unittests/deskflow/ServerAppTests.cpp @@ -10,31 +10,11 @@ #include "deskflow/ServerApp.h" #include "deskflow/ServerArgs.h" -#include - -class MockServerApp : public ServerApp +void ServerAppTests::section() { -public: - MockServerApp() : ServerApp(nullptr) - { - } -}; - -void ServerAppTests::version() -{ - MockServerApp app; + ServerApp app(nullptr); QVERIFY(!app.args().m_config); - - std::stringstream buffer; - std::streambuf *old = std::cout.rdbuf(buffer.rdbuf()); - - app.version(); - - std::cout.rdbuf(old); - - static QRegularExpression yearReg(".*[0-9]{4}-[0-9]{4} Deskflow Devs.*"); - auto result = yearReg.match(QString::fromLatin1(buffer.str())); - QVERIFY(result.hasMatch()); + QCOMPARE(app.configSection(), "server"); } QTEST_MAIN(ServerAppTests) diff --git a/src/unittests/deskflow/ServerAppTests.h b/src/unittests/deskflow/ServerAppTests.h index 7942a2d6f..0eea17af3 100644 --- a/src/unittests/deskflow/ServerAppTests.h +++ b/src/unittests/deskflow/ServerAppTests.h @@ -11,5 +11,5 @@ class ServerAppTests : public QObject Q_OBJECT private Q_SLOTS: // Test are run in order top to bottom - void version(); + void section(); };