From c79056b32f256eb3d9bc8c1dd03b5dbff3d4515f Mon Sep 17 00:00:00 2001 From: Joao Mario Lago Date: Mon, 24 Feb 2025 10:10:41 -0300 Subject: [PATCH] test: Add port validation check after openURL --- src/hal/link/desktop/abstract-link.cpp | 3 +++ test/test-device-ping1d.cpp | 4 ++++ test/test-device-ping360.cpp | 4 ++++ test/test-device.cpp | 4 ++++ 4 files changed, 15 insertions(+) diff --git a/src/hal/link/desktop/abstract-link.cpp b/src/hal/link/desktop/abstract-link.cpp index 9d2ddc2..b897413 100644 --- a/src/hal/link/desktop/abstract-link.cpp +++ b/src/hal/link/desktop/abstract-link.cpp @@ -17,6 +17,7 @@ const char* AbstractLink::_urlStringRegex = R"((?Pudp|serial):(?P.*) std::shared_ptr AbstractLink::openUrl(const std::string& url) { if (url.empty()) { + std::cerr << "Empty URL was provided when trying to open a link" << std::endl; return {}; } @@ -30,6 +31,7 @@ std::shared_ptr AbstractLink::openUrl(const std::string& url) } urlStruct; if (!regex_search(url, match, regex)) { + std::cerr << "Invalid URL provided, should be in format `type:host:config`" << std::endl; return {}; } @@ -46,5 +48,6 @@ std::shared_ptr AbstractLink::openUrl(const std::string& url) return std::make_shared(urlStruct.host, urlStruct.config); } + std::cerr << "Unknown link type provided" << std::endl; return {}; } diff --git a/test/test-device-ping1d.cpp b/test/test-device-ping1d.cpp index 785f8ff..17d8faa 100644 --- a/test/test-device-ping1d.cpp +++ b/test/test-device-ping1d.cpp @@ -18,6 +18,10 @@ int main(int argc, char* argv[]) } auto port = AbstractLink::openUrl(CommandLine::self()->connectionString); + if (!port) { + std::cerr << "Failed to open communication link with device" << std::endl; + return -1; + } Ping1d device = Ping1d(*port.get()); // Basic information diff --git a/test/test-device-ping360.cpp b/test/test-device-ping360.cpp index 62aca39..7e03247 100644 --- a/test/test-device-ping360.cpp +++ b/test/test-device-ping360.cpp @@ -18,6 +18,10 @@ int main(int argc, char* argv[]) } auto port = AbstractLink::openUrl(CommandLine::self()->connectionString); + if (!port) { + std::cerr << "Failed to open communication link with device" << std::endl; + return -1; + } Ping360 device = Ping360(*port.get()); // Basic information diff --git a/test/test-device.cpp b/test/test-device.cpp index 660eb6b..9ca7dab 100644 --- a/test/test-device.cpp +++ b/test/test-device.cpp @@ -19,6 +19,10 @@ int main(int argc, char* argv[]) } auto port = AbstractLink::openUrl(CommandLine::self()->connectionString); + if (!port) { + std::cerr << "Failed to open communication link with device" << std::endl; + return -1; + } PingDevice device = PingDevice(*port.get()); // Basic information