From 6c32205e1be369cbadf752c77eff68d1a2f963e1 Mon Sep 17 00:00:00 2001 From: Marek Niepieklo Date: Tue, 27 Jul 2021 16:03:05 +0200 Subject: [PATCH] [CP-371] Updater miscelanous developer mode and logs changes This reverts commit cb93d58d85fc9bc0e136ff7fb6fc58e092837159. --- module-os/board/linux/portmacro.h | 10 ++-- .../service-desktop/CMakeLists.txt | 2 - .../service-desktop/endpoints/BaseHelper.hpp | 34 +++++------ .../service-desktop/endpoints/Context.cpp | 29 ---------- .../service-desktop/endpoints/Context.hpp | 16 +++++- .../developerMode/DeveloperModeEndpoint.cpp | 21 ++----- .../developerMode/DeveloperModeEndpoint.hpp | 13 ++++- .../developerMode/DeveloperModeHelper.hpp | 2 +- .../developerMode/Mode/LogHelper.cpp | 57 ------------------- .../developerMode/Mode/LogHelper.hpp | 28 --------- .../developerMode/Mode/UI_Helper.hpp | 2 +- .../developerMode/Mode/UpdateHelper.hpp | 2 +- .../endpoints/security/SecurityEndpoint.hpp | 3 +- .../security/SecurityEndpointHelper.hpp | 2 +- .../service-desktop/parser/ParserFSM.cpp | 10 ++-- module-sys/SystemManager/SystemManager.cpp | 2 +- module-utils/board/cross/log_rt1051.cpp | 12 ++++ module-utils/board/linux/log_linux.cpp | 5 ++ module-utils/log/Logger.cpp | 27 --------- module-utils/log/Logger.hpp | 18 +++--- test/get_os_log.py | 8 +-- test/pytest/conftest.py | 11 +++- test/pytest/test_updater.py | 2 - test/requirements.txt | 2 - tools/requirements.txt | 3 - 25 files changed, 94 insertions(+), 227 deletions(-) delete mode 100644 module-services/service-desktop/endpoints/Context.cpp delete mode 100644 module-services/service-desktop/endpoints/developerMode/Mode/LogHelper.cpp delete mode 100644 module-services/service-desktop/endpoints/developerMode/Mode/LogHelper.hpp delete mode 100644 tools/requirements.txt diff --git a/module-os/board/linux/portmacro.h b/module-os/board/linux/portmacro.h index bfa222472b6f71cb82458d7350032f1e3cb68257..3234aeeed551a4cb069a6fc5219b710de519d8e5 100644 --- a/module-os/board/linux/portmacro.h +++ b/module-os/board/linux/portmacro.h @@ -58,7 +58,7 @@ extern "C" { #endif #include -#include +#include /*----------------------------------------------------------- * Port specific definitions. @@ -149,7 +149,7 @@ extern void vPortExitCritical( void ); #if configUSE_PORT_OPTIMISED_TASK_SELECTION == 1 #error We are not supporting configUSE_PORT_OPTIMISED_TASK_SELECTION in the Linux Simulator. -#endif +#endif /* Task function macros as described on the FreeRTOS.org WEB site. */ @@ -170,9 +170,9 @@ extern void vPortAddTaskHandle( void *pxTaskHandle ); #define SIG_SUSPEND SIGUSR1 #define SIG_RESUME SIGUSR2 -/* Enable the following hash defines to make use of the real-time tick where time progresses at real-time.*/ +/* Enable the following hash defines to make use of the real-time tick where time progresses at real-time.*/ #define SIG_TICK SIGALRM -#define TIMER_TYPE ITIMER_REAL +#define TIMER_TYPE ITIMER_REAL /* Enable the following hash defines to make use of the process tick where time progresses only when the process is executing. #define SIG_TICK SIGVTALRM #define TIMER_TYPE ITIMER_VIRTUAL */ @@ -180,8 +180,6 @@ extern void vPortAddTaskHandle( void *pxTaskHandle ); #define SIG_TICK SIGPROF #define TIMER_TYPE ITIMER_PROF */ -#define xPortIsInsideInterrupt() isIRQ() - #ifdef __cplusplus } #endif diff --git a/module-services/service-desktop/CMakeLists.txt b/module-services/service-desktop/CMakeLists.txt index 548758f7e3d0a3cae263fc13cace7363ae7fcdb7..4d4614b1369441111a2dd445579a151d71c5abb1 100644 --- a/module-services/service-desktop/CMakeLists.txt +++ b/module-services/service-desktop/CMakeLists.txt @@ -5,7 +5,6 @@ option(ENABLE_DEVELOPER_MODE_ENDPOINT "Enable developer mode endpoint in service set(SOURCES endpoints/BaseHelper.cpp - endpoints/Context.cpp endpoints/backup/BackupEndpoint.cpp endpoints/backup/BackupRestore.cpp endpoints/bluetooth/BluetoothEndpoint.cpp @@ -20,7 +19,6 @@ set(SOURCES endpoints/developerMode/DeveloperModeHelper.cpp endpoints/developerMode/Mode/UI_Helper.cpp endpoints/developerMode/Mode/UpdateHelper.cpp - endpoints/developerMode/Mode/LogHelper.cpp endpoints/developerMode/event/DomRequest.cpp endpoints/developerMode/event/ATRequest.cpp endpoints/deviceInfo/DeviceInfoEndpoint.cpp diff --git a/module-services/service-desktop/endpoints/BaseHelper.hpp b/module-services/service-desktop/endpoints/BaseHelper.hpp index 66c8fe3acdc501f0254a1d2ee38ca835471636ad..7e355bef6eadcb2848f6605a099b940c5013eb41 100644 --- a/module-services/service-desktop/endpoints/BaseHelper.hpp +++ b/module-services/service-desktop/endpoints/BaseHelper.hpp @@ -5,7 +5,6 @@ #include #include -#include namespace sys { @@ -36,24 +35,6 @@ namespace parserFSM public: using ProcessResult = std::pair>; - explicit BaseHelper(const std::string &name, sys::Service *p) : owner(p), p_name(name) - {} - - /// generall processing function - /// - /// we should define processing functions, not copy switch cases - /// as we are super ambiguous how we should really handle responses - /// here we can either: - /// return true - to mark that we responded on this request - /// return false - and optionally respond that we didn't handle the request - /// pre and post processing is available on pre/post process method override - [[nodiscard]] auto process(http::Method method, Context &context) -> ProcessResult; - - [[nodiscard]] auto name() const -> const std::string & - { - return p_name; - } - protected: sys::Service *owner = nullptr; /// by default - result = not sent @@ -69,7 +50,18 @@ namespace parserFSM /// post processing action - in case we want to do something after processing request virtual void postProcess(http::Method method, Context &context){}; - private: - std::string p_name; + public: + explicit BaseHelper(sys::Service *p) : owner(p) + {} + + /// generall processing function + /// + /// we should define processing functions, not copy switch cases + /// as we are super ambiguous how we should really handle responses + /// here we can either: + /// return true - to mark that we responded on this request + /// return fale - and optionally respond that we didn't handle the request + /// pre and post processing is available on pre/post process method override + [[nodiscard]] auto process(http::Method method, Context &context) -> ProcessResult; }; }; // namespace parserFSM diff --git a/module-services/service-desktop/endpoints/Context.cpp b/module-services/service-desktop/endpoints/Context.cpp deleted file mode 100644 index 785655b3be0be36668272c2bac40d9f0d7c66c68..0000000000000000000000000000000000000000 --- a/module-services/service-desktop/endpoints/Context.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. -// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md - -#include "Context.hpp" - -namespace parserFSM -{ - auto Context::createSimpleResponse(const std::string &entryTitle) -> std::string - { - json11::Json::object contextJsonObject = - json11::Json::object{{json::endpoint, static_cast(getEndpoint())}, - {json::status, static_cast(responseContext.status)}, - {json::uuid, getUuid()}}; - if (!responseContext.body.is_null()) { - contextJsonObject[json::body] = responseContext.body; - } - - const json11::Json responseJson{std::move(contextJsonObject)}; - - return buildResponseStr(responseJson.dump().size(), responseJson.dump()); - } - - auto Context::createErrorResponse(http::Code code, const std::string &text) -> std::string - { - setResponseStatus(code); - setResponseBody(std::map{{"error", text}}); - return createSimpleResponse(); - } -} // namespace parserFSM diff --git a/module-services/service-desktop/endpoints/Context.hpp b/module-services/service-desktop/endpoints/Context.hpp index 953e609e9e72306737cb69b0f1770655ac6bc163..ab8c3b040050e88ffd8c61f11f40f899c60868b9 100644 --- a/module-services/service-desktop/endpoints/Context.hpp +++ b/module-services/service-desktop/endpoints/Context.hpp @@ -82,8 +82,20 @@ namespace parserFSM } virtual ~Context() noexcept = default; - virtual auto createSimpleResponse(const std::string &entryTitle = json::entries) -> std::string; - auto createErrorResponse(http::Code code, const std::string &text) -> std::string; + virtual auto createSimpleResponse(const std::string &entryTitle = json::entries) -> std::string + { + json11::Json::object contextJsonObject = + json11::Json::object{{json::endpoint, static_cast(getEndpoint())}, + {json::status, static_cast(responseContext.status)}, + {json::uuid, getUuid()}}; + if (!responseContext.body.is_null()) { + contextJsonObject[json::body] = responseContext.body; + } + + const json11::Json responseJson{std::move(contextJsonObject)}; + + return buildResponseStr(responseJson.dump().size(), responseJson.dump()); + } auto setResponse(endpoint::ResponseContext r) { diff --git a/module-services/service-desktop/endpoints/developerMode/DeveloperModeEndpoint.cpp b/module-services/service-desktop/endpoints/developerMode/DeveloperModeEndpoint.cpp index ff5b2fa606263ab65f4b247c25c64e7c18107acd..a2e0b47eb8f380345523bb7b8cbd50740b50c7cb 100644 --- a/module-services/service-desktop/endpoints/developerMode/DeveloperModeEndpoint.cpp +++ b/module-services/service-desktop/endpoints/developerMode/DeveloperModeEndpoint.cpp @@ -9,15 +9,6 @@ using namespace parserFSM; -DeveloperModeEndpoint::DeveloperModeEndpoint(sys::Service *_ownerServicePtr) : Endpoint(_ownerServicePtr) -{ - debugName = "DeveloperModeEndpoint"; - helpers.emplace_back(std::make_unique("base", ownerServicePtr)); - helpers.emplace_back(std::make_unique("ui", ownerServicePtr)); - helpers.emplace_back(std::make_unique("update", ownerServicePtr)); - helpers.emplace_back(std::make_unique("log", ownerServicePtr)); -} - auto DeveloperModeEndpoint::handle(Context &context) -> void { auto &p = helperSwitcher(context); @@ -43,11 +34,11 @@ auto DeveloperModeEndpoint::handle(Context &context) -> void auto DeveloperModeEndpoint::helperSwitcher(parserFSM::Context &ctx) -> parserFSM::BaseHelper & { - std::string name = ctx.getBody().string_value(); - if (auto s = std::find_if( - std::begin(helpers), std::end(helpers), [&name](const auto &val) { return val->name() == name; }); - s != std::end(helpers)) { - return **s; + if (ctx.getBody()["ui"] == true) { + return *uiHelper; + } + if (ctx.getBody()["update"] == true) { + return *updateHelper; } - return **helpers.begin(); + return *helper; } diff --git a/module-services/service-desktop/endpoints/developerMode/DeveloperModeEndpoint.hpp b/module-services/service-desktop/endpoints/developerMode/DeveloperModeEndpoint.hpp index f7d9ad8bbfdb1f32097e884b3c390625bd900a9d..4edbf60bae5020c59f87340a63c8b2bb53418609 100644 --- a/module-services/service-desktop/endpoints/developerMode/DeveloperModeEndpoint.hpp +++ b/module-services/service-desktop/endpoints/developerMode/DeveloperModeEndpoint.hpp @@ -6,7 +6,6 @@ #include "DeveloperModeHelper.hpp" #include "Mode/UI_Helper.hpp" #include "Mode/UpdateHelper.hpp" -#include "Mode/LogHelper.hpp" #include #include @@ -27,10 +26,18 @@ namespace sys class DeveloperModeEndpoint : public parserFSM::Endpoint { private: - std::list> helpers; + const std::unique_ptr helper; + const std::unique_ptr uiHelper; + const std::unique_ptr updateHelper; public: - explicit DeveloperModeEndpoint(sys::Service *_ownerServicePtr); + explicit DeveloperModeEndpoint(sys::Service *_ownerServicePtr) + : Endpoint(_ownerServicePtr), helper(std::make_unique(ownerServicePtr)), + uiHelper(std::make_unique(ownerServicePtr)), + updateHelper(std::make_unique(ownerServicePtr)) + { + debugName = "DeveloperModeEndpoint"; + } auto handle(parserFSM::Context &context) -> void override; diff --git a/module-services/service-desktop/endpoints/developerMode/DeveloperModeHelper.hpp b/module-services/service-desktop/endpoints/developerMode/DeveloperModeHelper.hpp index d34a024907bb8b39f90fb889c3a1eaac530b40ad..60cd7134dd57db21b6ba017c9e2733a75ec92d03 100644 --- a/module-services/service-desktop/endpoints/developerMode/DeveloperModeHelper.hpp +++ b/module-services/service-desktop/endpoints/developerMode/DeveloperModeHelper.hpp @@ -34,7 +34,7 @@ namespace parserFSM auto prepareSMS(Context &context) -> ProcessResult; public: - explicit DeveloperModeHelper(const std::string &name, sys::Service *p) : BaseHelper(name, p) + explicit DeveloperModeHelper(sys::Service *p) : BaseHelper(p) {} private: diff --git a/module-services/service-desktop/endpoints/developerMode/Mode/LogHelper.cpp b/module-services/service-desktop/endpoints/developerMode/Mode/LogHelper.cpp deleted file mode 100644 index 8146bc284beb6be732ae851b73025d0d5823a6c0..0000000000000000000000000000000000000000 --- a/module-services/service-desktop/endpoints/developerMode/Mode/LogHelper.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. -// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md - -#include "LogHelper.hpp" -#include "Logger.hpp" - -namespace parserFSM -{ - auto LogHelper::processPost(Context &context) -> ProcessResult - { - const auto &body = context.getBody(); - - if (body["service"].is_string() and body["level"].is_number()) { - return setLogLevel(body["service"].string_value(), body["level"].number_value()); - } - else if (body["device"].is_string()) { - return setLogDevice(body["device"].string_value()); - } - - return {sent::no, std::nullopt}; - } - - auto LogHelper::processGet(Context &context) -> ProcessResult - { - const auto &body = context.getBody(); - if (body["service"].is_string()) { - return getLogLevel(body["service"].string_value()); - } - return {sent::no, std::nullopt}; - } - - BaseHelper::ProcessResult LogHelper::setLogLevel(const std::string &serviceName, double level) - { - if (Log::Logger::get().setLogLevel(serviceName, static_cast(level))) { - return {sent::no, endpoint::ResponseContext{.status = http::Code::OK}}; - } - else { - return {sent::no, endpoint::ResponseContext{.status = http::Code::InternalServerError}}; - } - return {sent::no, std::nullopt}; - } - - BaseHelper::ProcessResult LogHelper::setLogDevice(const std::string & /*device*/) - { - return { - sent::no, - endpoint::ResponseContext{http::Code::InternalServerError, - std::map{{"cause", "Logger is badly implemented"}}}}; - } - - BaseHelper::ProcessResult LogHelper::getLogLevel(const std::string &serviceName) - { - auto level = Log::Logger::get().getLogLevel(serviceName); - return {sent::no, endpoint::ResponseContext{http::Code::OK, std::map{{"level", level}}}}; - } - -} // namespace parserFSM diff --git a/module-services/service-desktop/endpoints/developerMode/Mode/LogHelper.hpp b/module-services/service-desktop/endpoints/developerMode/Mode/LogHelper.hpp deleted file mode 100644 index 99b149eec958dcc2cc66a1a39f6556ee7e613563..0000000000000000000000000000000000000000 --- a/module-services/service-desktop/endpoints/developerMode/Mode/LogHelper.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. -// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md - -#pragma once - -#include -#include -#include - -namespace parserFSM -{ - - class LogHelper : public BaseHelper - { - - public: - explicit LogHelper(const std::string &name, sys::Service *p) : BaseHelper(name, p) - {} - - auto processPost(Context &context) -> ProcessResult final; - auto processGet(Context &context) -> ProcessResult final; - - private: - [[nodiscard]] auto setLogLevel(const std::string &, double) -> ProcessResult; - [[nodiscard]] auto setLogDevice(const std::string &dev) -> ProcessResult; - [[nodiscard]] auto getLogLevel(const std::string &) -> ProcessResult; - }; -} // namespace parserFSM diff --git a/module-services/service-desktop/endpoints/developerMode/Mode/UI_Helper.hpp b/module-services/service-desktop/endpoints/developerMode/Mode/UI_Helper.hpp index 0bace42f7d028f7e87aebb159ddc3aed1f4ae875..38d75ac772a5a48cc726fc1bd82062eb86cbb87c 100644 --- a/module-services/service-desktop/endpoints/developerMode/Mode/UI_Helper.hpp +++ b/module-services/service-desktop/endpoints/developerMode/Mode/UI_Helper.hpp @@ -14,7 +14,7 @@ namespace parserFSM { public: - explicit UI_Helper(const std::string &name, sys::Service *p) : BaseHelper(name, p) + explicit UI_Helper(sys::Service *p) : BaseHelper(p) {} /// returns DOM async diff --git a/module-services/service-desktop/endpoints/developerMode/Mode/UpdateHelper.hpp b/module-services/service-desktop/endpoints/developerMode/Mode/UpdateHelper.hpp index b75ad9adb31eebebaf9c2efbc154fd5751dc9247..196295d03a1cd5522f68c35fad21621ad8898486 100644 --- a/module-services/service-desktop/endpoints/developerMode/Mode/UpdateHelper.hpp +++ b/module-services/service-desktop/endpoints/developerMode/Mode/UpdateHelper.hpp @@ -14,7 +14,7 @@ namespace parserFSM { public: - explicit UpdateHelper(const std::string &name, sys::Service *p) : BaseHelper(name, p) + explicit UpdateHelper(sys::Service *p) : BaseHelper(p) {} auto processPost(Context &context) -> ProcessResult final; diff --git a/module-services/service-desktop/endpoints/security/SecurityEndpoint.hpp b/module-services/service-desktop/endpoints/security/SecurityEndpoint.hpp index 7304a24cc8d5debdaa83a0a826e71a9609f4a276..2e62cca1bec1662b53648d950521b6b7e9e6fc3a 100644 --- a/module-services/service-desktop/endpoints/security/SecurityEndpoint.hpp +++ b/module-services/service-desktop/endpoints/security/SecurityEndpoint.hpp @@ -28,8 +28,7 @@ class SecurityEndpoint : public parserFSM::Endpoint public: explicit SecurityEndpoint(sys::Service *ownerServicePtr) - : Endpoint(ownerServicePtr), - helper(std::make_unique("security", ownerServicePtr)) + : Endpoint(ownerServicePtr), helper(std::make_unique(ownerServicePtr)) { debugName = "SecurityEndpoint"; } diff --git a/module-services/service-desktop/endpoints/security/SecurityEndpointHelper.hpp b/module-services/service-desktop/endpoints/security/SecurityEndpointHelper.hpp index d025c3d2ded0f8a5bb270e7c0b3c7e025b20b3f9..51c6470d95c80ba54eda9e901b96c618b9287eb4 100644 --- a/module-services/service-desktop/endpoints/security/SecurityEndpointHelper.hpp +++ b/module-services/service-desktop/endpoints/security/SecurityEndpointHelper.hpp @@ -19,7 +19,7 @@ namespace parserFSM class SecurityEndpointHelper : public BaseHelper { public: - explicit SecurityEndpointHelper(const std::string &name, sys::Service *p) : BaseHelper(name, p) + explicit SecurityEndpointHelper(sys::Service *p) : BaseHelper(p) {} static constexpr auto PasscodeLength = 4; diff --git a/module-services/service-desktop/parser/ParserFSM.cpp b/module-services/service-desktop/parser/ParserFSM.cpp index 10f90412df056e17f0adef008e556a9b2cb28e00..74233c75701eb8ce5ff19995609c372c62dec251 100644 --- a/module-services/service-desktop/parser/ParserFSM.cpp +++ b/module-services/service-desktop/parser/ParserFSM.cpp @@ -58,9 +58,7 @@ void StateMachine::parseHeader() auto messageStart = receivedMsg.find(message::endpointChar); if (messageStart == std::string::npos) { - std::string message = "This is not a valid endpoint message! Type=" + receivedMsg.at(0); - LOG_ERROR("%s", message.c_str()); - messageHandler->putToSendQueue(Context().createErrorResponse(http::Code::BadRequest, message)); + LOG_ERROR("This is not a valid endpoint message! Type=%c", receivedMsg.at(0)); return; } @@ -75,13 +73,13 @@ void StateMachine::parseHeader() payloadLength = message::calcPayloadLength(header); if (payloadLength == 0) // failed to obtain payload length from msg { - std::string message = "Damaged header!"; - LOG_ERROR("%s", message.c_str()); - messageHandler->putToSendQueue(Context().createErrorResponse(http::Code::BadRequest, message)); + LOG_ERROR("Damaged header!"); state = State::NoMsg; return; } + LOG_DEBUG("Payload length: %lu", payloadLength); + message::removeHeader(receivedMsg); parseNewMessage(); } diff --git a/module-sys/SystemManager/SystemManager.cpp b/module-sys/SystemManager/SystemManager.cpp index b43bd50341d7a3af55af51be4711b2a4c4ae5494..36bb4d0d45f7a1dbece2bfa69b7e09b32c5190f0 100644 --- a/module-sys/SystemManager/SystemManager.cpp +++ b/module-sys/SystemManager/SystemManager.cpp @@ -190,7 +190,7 @@ namespace sys LOG_INFO("Order of system services initialization:"); for (const auto &service : sortedServices) { - LOG_DEBUG("\t> %s", service.get().getName().c_str()); + LOG_INFO("\t> %s", service.get().getName().c_str()); } std::for_each(sortedServices.begin(), sortedServices.end(), [this](const auto &service) { const auto startTimeout = service.get().getStartTimeout().count(); diff --git a/module-utils/board/cross/log_rt1051.cpp b/module-utils/board/cross/log_rt1051.cpp index dbac8aeff4bd8915eb59b15017e8dfa992ee2fe1..fdc88396f0495740a0bd6ea10fbdb6473e88b1ae 100644 --- a/module-utils/board/cross/log_rt1051.cpp +++ b/module-utils/board/cross/log_rt1051.cpp @@ -13,6 +13,13 @@ /// - in critical seciton - return CRIT /// - in interrupt return - IRQ /// - else return thread name +static inline const char *getTaskDesc() +{ + return xTaskGetCurrentTaskHandle() == nullptr + ? Log::Logger::CRIT_STR + : xPortIsInsideInterrupt() ? Log::Logger::IRQ_STR : pcTaskGetName(xTaskGetCurrentTaskHandle()); +} + namespace Log { void Logger::addLogHeader(logger_level level, const char *file, int line, const char *function) @@ -36,6 +43,11 @@ namespace Log logColors->resetColor.data()); } + bool Logger::filterLogs(logger_level level) + { + return getLogLevel(getTaskDesc()) <= level; + } + void Logger::logToDevice(const char *fmt, va_list args) { loggerBufferCurrentPos = 0; diff --git a/module-utils/board/linux/log_linux.cpp b/module-utils/board/linux/log_linux.cpp index 7654a57c80f8f6b74c8183248a2dd3e7ccea5c53..6808506b69ad051c78bd2ca6f502f197b36d515f 100644 --- a/module-utils/board/linux/log_linux.cpp +++ b/module-utils/board/linux/log_linux.cpp @@ -28,6 +28,11 @@ namespace Log logColors->resetColor.data()); } + bool Logger::filterLogs(logger_level _level) + { + return _level >= level; + } + void Logger::logToDevice(const char *, va_list) { assert(false && "Not implemented"); diff --git a/module-utils/log/Logger.cpp b/module-utils/log/Logger.cpp index 6e00f57a5b42f927ab26c4da0ee0085293345f01..d07e150ec1ca7f44bc4db0fff8120b661044a98b 100644 --- a/module-utils/log/Logger.cpp +++ b/module-utils/log/Logger.cpp @@ -6,7 +6,6 @@ #include #include "LockGuard.hpp" #include -#include #include "macros.h" namespace Log @@ -20,8 +19,6 @@ namespace Log {"ServiceFota", logger_level::LOGINFO}, {"ServiceEink", logger_level::LOGINFO}, {"ServiceDB", logger_level::LOGINFO}, - {"ServiceDesktop_w2", logger_level::LOGINFO}, - {"SysMgrService", logger_level::LOGERROR}, {CRIT_STR, logger_level::LOGTRACE}, {IRQ_STR, logger_level::LOGTRACE}}; const char *Logger::levelNames[] = {"TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL"}; @@ -29,13 +26,6 @@ namespace Log Logger::Logger() : circularBuffer(circularBufferSize) {} - const char *Logger::getTaskDesc() - { - return xTaskGetCurrentTaskHandle() == nullptr - ? Log::Logger::CRIT_STR - : xPortIsInsideInterrupt() ? Log::Logger::IRQ_STR : pcTaskGetName(xTaskGetCurrentTaskHandle()); - } - void Logger::enableColors(bool enable) { LockGuard lock(mutex); @@ -50,26 +40,9 @@ namespace Log auto Logger::getLogLevel(const std::string &name) -> logger_level { - LockGuard lock(mutex); - if (auto it = filtered.find(name); it != std::end(filtered)) { - return it->second; - } - filtered[name] = logger_level::LOGTRACE; return filtered[name]; } - bool Logger::setLogLevel(const std::string &name, logger_level level) - { - LockGuard lock(mutex); - filtered[name] = level; - return true; - } - - bool Logger::filterLogs(logger_level level) - { - return getLogLevel(getTaskDesc()) <= level; - } - auto Logger::getLogs() -> std::string { LockGuard lock(mutex); diff --git a/module-utils/log/Logger.hpp b/module-utils/log/Logger.hpp index fb4ac387432e87c6cd251a136ee6a87e8d18295a..87c78eafa1ab0a26ee86d0c6aeaf40158de3e571 100644 --- a/module-utils/log/Logger.hpp +++ b/module-utils/log/Logger.hpp @@ -39,25 +39,21 @@ namespace Log static constexpr auto CRIT_STR = "CRIT"; static constexpr auto IRQ_STR = "IRQ"; - /// Filter out not interesting logs via thread Name - /// its' using fact that: - /// - TRACE is level 0, for undefined lookups it will be always trace - /// - it will be one time init for apps which doesn't tell what level they should have - /// - for others it will be o1 lookup so it's fine - /// this function appends to logged services list! - [[nodiscard]] auto getLogLevel(const std::string &name) -> logger_level; - bool setLogLevel(const std::string &name, logger_level); - void logToDevice(const char *fmt, va_list args); - private: Logger(); - const char *getTaskDesc(); void addLogHeader(logger_level level, const char *file = nullptr, int line = -1, const char *function = nullptr); [[nodiscard]] bool filterLogs(logger_level level); + /// Filter out not interesting logs via thread Name + /// its' using fact that: + /// - TRACE is level 0, for unedfined lookups it will be alvways trace + /// - it will be one time init for apps which doesn't tell what level they should have + /// - for others it will be o1 lookup so it's fine + [[nodiscard]] auto getLogLevel(const std::string &name) -> logger_level; + void logToDevice(const char *fmt, va_list args); void logToDevice(Device device, std::string_view logMsg, size_t length); [[nodiscard]] size_t loggerBufferSizeLeft() const noexcept { diff --git a/test/get_os_log.py b/test/get_os_log.py index 3839c2c246d9cc348f84be21d0ce4737a6866906..2803ba380bb2dc4dd8e115fb81357126a6d700ab 100755 --- a/test/get_os_log.py +++ b/test/get_os_log.py @@ -6,7 +6,6 @@ import sys import os.path import atexit -from harness import log from harness.harness import Harness from harness.interface.error import TestError, Error from harness.api.developermode import PhoneModeLock @@ -22,13 +21,14 @@ def set_passcode(harness: Harness, flag: bool): def main(): if len(sys.argv) == 1: - log.error(f'Please pass log storage directory as the parameter: \'python {sys.argv[0]} \' ') + print( + f'Please pass log storage directory as the parameter: \'python {sys.argv[0]} \' ') raise TestError(Error.OTHER_ERROR) log_dir = str(sys.argv[1]) if (not os.path.exists(log_dir)): - log.error(f'Log storage directory {log_dir} not found') + print(f'Log storage directory {log_dir} not found') raise TestError(Error.OTHER_ERROR) harness = Harness.from_detect() @@ -43,5 +43,5 @@ if __name__ == "__main__": try: main() except TestError as err: - log.error(err) + print(err) exit(err.get_error_code()) diff --git a/test/pytest/conftest.py b/test/pytest/conftest.py index 7f1f5c20d5a94eac61c7c56b745a39ec237dde64..31cae82464458f7802925bdb63f9aceb3a50e135 100644 --- a/test/pytest/conftest.py +++ b/test/pytest/conftest.py @@ -16,7 +16,6 @@ from harness import utils from harness.interface.error import TestError, Error from harness.interface.CDCSerial import Keytype, CDCSerial as serial from harness.interface.defs import key_codes -from harness.rt_harness_discovery import get_rt1051_harness simulator_port = 'simulator' @@ -69,8 +68,16 @@ def harness(request): try: if port_name is None: log.warning("no port provided! trying automatic detection") - harness = get_rt1051_harness(TIMEOUT) + harness = None + with utils.Timeout.limit(seconds=TIMEOUT): + while not harness: + try: + harness = Harness.from_detect() + except TestError as e: + if e.get_error_code() == Error.PORT_NOT_FOUND: + log.info(f"waiting for a serial port… ({TIMEOUT- int(time.time() - timeout_started)})") + time.sleep(RETRY_EVERY_SECONDS) else: assert '/dev' in port_name or simulator_port in port_name diff --git a/test/pytest/test_updater.py b/test/pytest/test_updater.py index e8333c00fadfe7db41a9bea5c8e5405f85120d48..8c2fa42fdf324949117fff42e290dcb46e8984a2 100644 --- a/test/pytest/test_updater.py +++ b/test/pytest/test_updater.py @@ -33,8 +33,6 @@ def disable_some_logs(harness: Harness): def test_update(harness: Harness): filename = "update.tar" - disable_some_logs(harness) - log.info(get_version(harness)) PhoneModeLock(False).run(harness) put_file(harness, filename, "/sys/user/") diff --git a/test/requirements.txt b/test/requirements.txt index 70ea3796fe08cb0e90d5d819b3e75d2c8c26e696..f1e0b10d7de59e1f819a722f896a596084ef57d8 100644 --- a/test/requirements.txt +++ b/test/requirements.txt @@ -8,5 +8,3 @@ pyserial==3.5 pytest==6.1.2 six==1.15.0 toml==0.10.2 -tqdm=4.59.0 -dataclass_json=1.3.7 diff --git a/tools/requirements.txt b/tools/requirements.txt deleted file mode 100644 index 53803e5f14ddb022f2399d43578f843ad4c80fcd..0000000000000000000000000000000000000000 --- a/tools/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -gitdb==4.0.5 -requests==2.25.1 -tqdm==4.59.0